NCO:我们可以在不修改坐标属性的情况下删除维度吗?
NCO: can we remove dimension without modifying coordinates attribute?
我有一个 netcdf 文件:
dimensions:
y = 453 ;
x = 453 ;
plev = 1 ;
time = UNLIMITED ; // (1460 currently)
variables:
double plev(plev) ;
plev:name = "plev" ;
plev:standard_name = "air_pressure" ;
plev:long_name = "pressure" ;
plev:units = "Pa" ;
plev:axis = "Z" ;
plev:positive = "down" ;
float va925(time, plev, y, x) ;
va925:_FillValue = 1.e+20f ;
va925:missing_value = 1.e+20f ;
va925:coordinates = "lon lat plev" ;
va925:grid_mapping = "Lambert_Conformal" ;
我想删除 plev 维度,但保留 plev 变量并且不修改 va925 坐标属性。
所以我想:
dimensions:
y = 453 ;
x = 453 ;
time = UNLIMITED ; // (1460 currently)
variables:
double plev;
plev:name = "plev" ;
plev:standard_name = "air_pressure" ;
plev:long_name = "pressure" ;
plev:units = "Pa" ;
plev:axis = "Z" ;
plev:positive = "down" ;
float va925(time, y, x) ;
va925:_FillValue = 1.e+20f ;
va925:missing_value = 1.e+20f ;
va925:coordinates = "lon lat plev" ;
va925:grid_mapping = "Lambert_Conformal" ;
我试过:
ncwa -a plev in.nc out.nc
但它修改了 va925 坐标,例如:
va925:coordinates = "lon lat ";
我可以再次更改它:
ncatted -h -O -a 坐标,va925,m,c,"lon lat plev" out.nc
但这意味着我必须在变量名上循环,这太长了!
提前谢谢你,
萝拉
如您所见,ncwa
会自动从 coordinates
属性中删除平均维度。没有开关可以关闭它。包含此功能需要做很多工作,所以具有讽刺意味的是,有些用户想要禁用它 :) 您已经发现并拒绝了 ncatted
的明显解决方法。一个更长的解决方法是在使用 ncwa
之前重命名所有坐标属性,然后再重命名,例如
ncrename -a .coordinates,impeachment in.nc
ncwa -a lon in.nc out.nc
ncrename -a .impeachment,coordinates out.nc
我有一个 netcdf 文件:
dimensions:
y = 453 ;
x = 453 ;
plev = 1 ;
time = UNLIMITED ; // (1460 currently)
variables:
double plev(plev) ;
plev:name = "plev" ;
plev:standard_name = "air_pressure" ;
plev:long_name = "pressure" ;
plev:units = "Pa" ;
plev:axis = "Z" ;
plev:positive = "down" ;
float va925(time, plev, y, x) ;
va925:_FillValue = 1.e+20f ;
va925:missing_value = 1.e+20f ;
va925:coordinates = "lon lat plev" ;
va925:grid_mapping = "Lambert_Conformal" ;
我想删除 plev 维度,但保留 plev 变量并且不修改 va925 坐标属性。
所以我想:
dimensions:
y = 453 ;
x = 453 ;
time = UNLIMITED ; // (1460 currently)
variables:
double plev;
plev:name = "plev" ;
plev:standard_name = "air_pressure" ;
plev:long_name = "pressure" ;
plev:units = "Pa" ;
plev:axis = "Z" ;
plev:positive = "down" ;
float va925(time, y, x) ;
va925:_FillValue = 1.e+20f ;
va925:missing_value = 1.e+20f ;
va925:coordinates = "lon lat plev" ;
va925:grid_mapping = "Lambert_Conformal" ;
我试过: ncwa -a plev in.nc out.nc 但它修改了 va925 坐标,例如: va925:coordinates = "lon lat ";
我可以再次更改它: ncatted -h -O -a 坐标,va925,m,c,"lon lat plev" out.nc 但这意味着我必须在变量名上循环,这太长了!
提前谢谢你,
萝拉
如您所见,ncwa
会自动从 coordinates
属性中删除平均维度。没有开关可以关闭它。包含此功能需要做很多工作,所以具有讽刺意味的是,有些用户想要禁用它 :) 您已经发现并拒绝了 ncatted
的明显解决方法。一个更长的解决方法是在使用 ncwa
之前重命名所有坐标属性,然后再重命名,例如
ncrename -a .coordinates,impeachment in.nc
ncwa -a lon in.nc out.nc
ncrename -a .impeachment,coordinates out.nc