【问题标题】:Extract and sum certain layers of NetCDF variable提取和求和 NetCDF 变量的某些层
【发布时间】:2018-01-15 15:38:13
【问题描述】:

我有一个 NetCDF 文件,这里是 ncdump -h 的截断输出:

dimensions:
    lat = 720 ;
    lon = 1440 ;
    cft = 64 ;
    natpft = 14 ;
double PCT_CFT(cft, lat, lon) ;
    PCT_CFT:long_name = "percent cft" ;
    PCT_CFT:units = "unitless" ;
    PCT_CFT:_FillValue = -9999. ;
    PCT_CFT:coordinates = "LON LAT" ;
double PCT_NAT_PFT(natpft, lat, lon) ;
    PCT_NAT_PFT:long_name = "percent pft" ;
    PCT_NAT_PFT:units = "unitless" ;
    PCT_NAT_PFT:_FillValue = -9999. ;
    PCT_NAT_PFT:coordinates = "LON LAT" ;

我需要的是从变量PCT_CFT 沿维度cft 的第3、4、61 和62 层提取和求和值,然后将几乎所有剩余层(即5-60, 63, 64) 并将这两个结果添加到变量PCT_NAT_PFT 中,分别作为沿维度natpft 的第16 层和第15 层。

如果可能,我想使用 NCO(或 CDO)来实现这一点,我想避免使用 Python 或 R 等其他工具...我只知道如何在整个维度上对变量求和,而不是跨选定层求和仅 - 因此我可能可以解决这个问题,但我想知道是否有更好、更清洁的方法。

【问题讨论】:

  • 您能否添加指向示例文件的链接,以便我们测试我们的潜在解决方案?

标签: extract netcdf nco cdo-climate


【解决方案1】:

我会假设你的输入文件是 in.nc
而且您的 cft 层是基于一层的!?

1) 沿 cft 层求和,3-4,61-62

ncks --msa_usr_rdr -v PCT_CFT -d cft,2,3 -d cft,60,61  in.nc in_1.nc   
ncwa -a cft -y sum  in_1.nc sum_1.nc

2) 沿 cft 层求和,5-60,63-64

ncks --msa_usr_rdr -v PCT_CFT -d cft,4,59 -d cft,62,63 in.nc in_2.nc            
ncwa -a cft -y sum  in_2.nc sum_2.nc

3) 向 PCT_NAT_PFT 添加两个新层

ncks -v PCT_NAT_PFT --msa_usr_rdr -d natpft,0,13 -d natpft,0,1 in.nc in_3.nc

4) 将 1)、2) 的和加到 PCT_NAT_PFT

ncap2 -v -A -s 'PCT_NAT_PFT(15,:,:)=PCT_CFT(:,:);'  sum_1.nc in_3.nc
ncap2 -v -A -s 'PCT_NAT_PFT(14,:,:)=PCT_CFT(:,:);'  sum_2.nc in_3.nc

【讨论】:

  • 如果添加 -F(或 --fortran)参数 nco.sf.net/nco.html#-F,ncks 的维度 hyperslab 参数 (-d ...) 可以直接使用从 1 开始的索引。然后你不必记住从给 ncks 或 ncwa 的所有索引中减去一个,但是 -F 选项不适用于 ncap2,所以要小心。
  • 谢谢。前两个步骤工作正常。但我不确定我的文件尺寸的索引。添加两个新层时显然存在一些问题。我在 Panoply 中查看了结果 (in_3.nc),它正确地有 16 层。但是,索引从 0 变为 13,最后两个是 0 和 1(因此显示原始的前两层而不是总和)。另外,您介意解释一下--msa_usr_rdr 选项吗?我从来没有遇到过。 [另外 4) PC_NAT_PFT 中有一个错字,但我无法编辑它,因为它只是一个非常小的改动。]
猜你喜欢
  • 2013-07-10
  • 1970-01-01
  • 2021-03-27
  • 1970-01-01
  • 2022-01-09
  • 2020-12-27
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
相关资源
最近更新 更多