既存の netCDF ファイルに緯度の境界を追加したいと考えています。http://www.cgd.ucar.edu/cms/eaton/netcdf/CF-20010629.htm#bnds境界の定義については、 を参照してください。
境界を自動的に追加できるコマンドはありますか? nco、netCDF4、または cdms ツールキットを使用した任意のソリューションを受け入れます。ただし、後処理ソリューションにすることをお勧めします。
次のように、既存の座標に境界を追加します。
ncap2 -O -s 'crd@bounds="crd_bnds";defdim("bnds",2);crd_bnds[$crd,$bnds]=0.0;*crd_dff=0.5*(crd(1)-crd(0));crd_bnds(:,0)=crd-crd_dff;crd_bnds(:,1)=crd+crd_dff;' in.nc out.nc
これにより、
zender@aerosol:~$ ncks --cdl -v crd ~/foo2.nc
netcdf foo2 {
dimensions:
bnds = 2 ;
crd = 10 ;
variables:
int crd(crd) ;
crd:bounds = "crd_bnds" ;
double crd_bnds(crd,bnds) ;
data:
crd = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ;
crd_bnds = -0.5, 0.5, 0.5, 1.5, 1.5, 2.5, 2.5, 3.5, 3.5, 4.5, 4.5, 5.5, 5.5, 6.5, 6.5, 7.5, 7.5, 8.5, 8.5, 9.5 ;
} // group /
ここでは、座標の名前は「crd」、境界の名前は「crd_bnds」です。境界値の式は、座標が固定値だけ変化する場合 (上記のように) 単純にすることも、変数の間隔を考慮してより複雑にすることもできます (読者の演習)。近い将来、これを自動的に行う ncap2 関数を追加します。
cz