【问题标题】:Extract part of many netcdf files using dimensions from another file in unix使用 unix 中另一个文件的维度提取许多 netcdf 文件的一部分
【发布时间】:2016-08-14 17:58:48
【问题描述】:

我有几千个 .nc 文件,每个文件都需要修剪以匹配另一组文件的大小(纬度/经度)。我只想要 70-90N 的数据,但长文件包含全局数据。在 longFile1.nc 上运行 ncdump 给出了

    dimensions:
    altitude = 40
    dim = 55890;
    nv = 2;

在 shortFile1.nc 上运行 ncdump 会给出

    dimensions:
    fakeDim14 = 8111;
    fakeDim15 = 1;

longFile1.nc 需要被削减,以便 dim = 8111。每个文件的短文件尺寸长度都会发生变化。我知道我需要每个长文件的开头,但每次的结尾都会不同。

我可以用

修剪 longFile1.nc
    ncks -C -d it,0,8010 -v lat,lon,instant_cloud_phase longFile1.nc -o trimmedLongFile1.nc

但我不知道如何为所有文件执行此操作,尤其是因为每个文件的长度都会发生变化。我还必须从索引 0-8010 开始保持正确的纬度范围。有没有办法从每个短文件中读取第一维,然后在上面的 nco 命令中为每个相应的长文件使用它?那个 nco 命令甚至是最好的方法吗?

提前致谢!

【问题讨论】:

    标签: unix dimensions netcdf nco


    【解决方案1】:

    使用 NCO 过滤器 ncdmnsz 并将整个内容放在文件循环中:

    for fl in `ls longFile*.nc`; do
       dmnsz=`ncdmnsz fakeDim14 $fl`
       ncks -F -d it,,$dmnsz -v ...
    done
    

    注意 -F 用于从 1 开始的索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-26
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 2020-02-26
      • 2018-10-10
      • 1970-01-01
      • 2013-12-11
      相关资源
      最近更新 更多