CDO(jp)
基本
基本文法
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 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