既存このように座標に境界を追加します。
ncap2 -O -s '[email protected]="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
これは、ここで
[email protected]:~$ 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
素晴らしい!ありがとう、これは素晴らしい作品! – user308827
FYI ncap2の最新のスナップショットには、CF準拠の境界を作成するための新しい機能があります。 defdim( "bnd_dmn"、2); bounds_var = make_bounds(crd_var、$ bnd_dmn、 "bounds_var_nm"); 「bounds_var_nm」はオプションです。それを渡すとmake_bounds()に が追加され、属性crd_var @ bounds = "bounds_var_nm"が追加されます。 http://nco.sf.net/nco.html#make_bounds –