【问题标题】:NCO: can we remove dimension without modifying coordinates attribute?NCO:我们可以在不修改坐标属性的情况下删除维度吗?
【发布时间】:2018-11-26 11:00:12
【问题描述】:

我有一个 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 = "经纬度";

我可以再次更改它: ncatted -h -O -a 坐标,va925,m,c,"lon lat plev" out.nc 但这意味着我必须循环变量名,这太长了!

提前谢谢你,

萝拉

【问题讨论】:

    标签: netcdf nco


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-11-29
      • 2013-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-13
      • 2015-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多