NCO:是否可以在不修改坐标属性的情况下删除尺寸?

时间:2018-11-26 11:00:13

标签: netcdf nco

我有一个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 但这意味着我必须循环访问变量名,这太长了!

先谢谢您

萝拉

1 个答案:

答案 0 :(得分:0)

正如您所发现的,ncwa自动从coordinates属性中删除平均尺寸。没有开关可以关闭此功能。包含此功能需要大量工作,因此具有讽刺意味的是某些用户想要禁用此功能:)您已经发现并拒绝了ncatted的明显解决方法。更长的解决方法是在使用ncwa之前重命名所有坐标属性,然后再重命名,例如

ncrename -a .coordinates,impeachment in.nc
ncwa -a lon in.nc out.nc
ncrename -a .impeachment,coordinates out.nc