ログイン

CDOのTips

Top / CDO / tips

Japanese / English

基本

基本文法

cdo options operator1 -operator2 -operator3 ... 
  • options は必ず operator の前に置く必要がある。
  • 2つ以上の operator を使う場合、2つ目以降の operator の前に - を付けることで他の operator の結果を受け取れるようにする(パイプライン:後述)。

パイプライン

以下、cdoのマニュアルに掲載されている例:

cdo timavg infile1 tmp1
cdo dayavg infile2 tmp2
cdo sub tmp2 tmp1 outfile
rm tmp1 tmp2

これを、

cdo sub -dayavg infile2 -timavg infile1 outfile

のように一度に処理することができる。イメージとしては(以下は実行できないが)、

cdo sub (-dayavg infile2) (-timavg infile1) outfile

のような形になる。すなわち、sub の第一引数として "dayavg infile2" の出力が、第2引数として "-timavg infile1" の出力が与えられる。任意の数の入力を持つ operator ではパイプラインを使用できない。

メタデータ

タイムステップ数を取得する

cdo ntime filename

データの基本的な統計情報を表示する

cdo info filename

変数の名前を変更する

cdo chname,old-name,new-name input-filename output-filename
  • cdo chname,sa_lwu_toa,olr sa_lwu_toa.nc test.nc
    

時間の単位を変更する

cdo settunits,[seconds|minutes|days|months|years] input-filename output-filename
  • GrADSで "gadsdf: Time increment too large for 'minutes since' time units attribute" などというエラーが出る際にも有効。

データの取り出し

任意の時間ステップのデータを取り出す

cdo settimestep,tstep input-filename output-filename

未定義値

指定した値を未定義値とする

cdo setctomiss,val input-filename output-filename

指定した範囲の値を未定義値とする

cdo setrtomiss,min,max input-filename output-filename

指定した範囲以外の値を未定義値とする

cdo setvrange,min,max input-filename output-filename

全ての未定義値を指定した値(一定値)へ置き換える

cdo setmisstoc,val input-filename output-filename

全ての未定義値を近傍の非未定義値で置き換える

cdo setmisstonn input-filename output-filename

演算

2つのファイルの値を加算する

cdo add input1-filename input2-filename output-filename
  • メタデータは input1-filename のものが引き継がれる。

統計

時間

cdo operator input-filename output-filename
  • operator は以下に示す通り
  • 新しい時間座標は、平均に用いたすべてのデータの時間の中央(平均?)になる

月毎の統計値

operator 意味 詳細
monmean 月平均

Tips: 複数ファイルの時間平均

cdo mergetime hoge*.nc hoge_merge.nc
cdo timmean hoge_merge.nc hoge_mean.nc
  • パイプラインでは記述できないので注意。

内挿

Tips: データ間の格子系を合わせる

以下、一次保存内挿(元格子内でデータ一様を仮定して面積重み付き平均)の例

cdo remapcon,data1.nc data2.nc data2_remapped.nc

リンク