gribやnetcdf形式のグリッドデータを簡単に処理できるcdoの使い方について。初心者レベルなので、覚えたことをかいていく。
gribやnetcdf形式のグリッドデータを簡単に処理できるcdoの使い方について。初心者レベルなので、覚えたことをかいていく。
なんと!condaでインストールできる。
$ conda install cdo
コマンド1つであら簡単。(参考:http://kodama.fubuki.info/wiki/wiki.cgi/CDO/tips?lang=jp)
$ cdo mergetime sfc.monthlyave.????01.nc out.nc
ただ、上記のコマンドだとエラー(Error (cdf_put_vara_double): NetCDF: Numeric conversion not representable)がでるわ、はじめの2つしかマージされてないわ、で上手くできない。いくつか調べたところ、下のように"-b F64"というオプションをつけるとよいようだ。勝手に桁が足りなくなったのかな〜っと考えている。
$ cdo -b F64 mergetime ../org/monthly/sfc.monthlyave.198?${MO}.nc tmp.nc
参考:https://code.mpimet.mpg.de/boards/1/topics/1433
$ cdo merge tppn.nc evap.nc t2m.nc out.nc
3変数のデータが含まれたout.ncが作成される。
鉛直層が異なるデータをmergeする際には、少し挙動が異なる模様。今度調べておく。
ファイルfDatの空間解像度を、fBaseの空間解像度に合わせる。tmp.ncが解像度変換したファイル。
# Bilinear interpolation
cdo remapbil,${fBase} ${fDat} tmp.nc
ただし、上記のコマンドだと時間情報がおかしくなるので(西暦1年からスタートなど)、下記のコマンドで時間情報を戻す。
# Adjust time axis
cdo replace ${fBase} tmp.nc ${fOut}cdo timmean tmp.nc out.nc