【问题标题】:Failed to concatenate global layer netCDF data using NCO使用 NCO 连接全局层 netCDF 数据失败
【发布时间】:2021-10-22 03:14:49
【问题描述】:

我正在使用来自 1958-2020 年 TerraClimate 的每月全球潜在蒸散量数据(每年 1 个 nc),并计划将所有数据连接到单个 nc 文件中。 数据有一个变量pet和三个维度ppt(time,lat,lon)

我设法使用cod mergetime TerraClimate_*.nc 合并所有数据并生成大约 100GB 的输出文件。

为了在 Windows 机器上进行分析,我需要单个 netCDF 文件,顺序为 lat,lon,time。我所做的如下:

  1. 使用ncpdq 命令将维度从time,lat,lon 重新排序为lat,lon,time
for fl in *.nc; do ncpdq -a lat,lon,time $fl ../pet2/$fl; done
  1. 循环文件夹中的所有文件,以便使用ncks 命令将时间用作用于连接文件的记录维度/变量
for fl in *.nc; do ncks -O --mk_rec_dmn time $fl $fl; done
  1. 使用ncrcat 命令将文件夹中的所有 nc 文件连接成一个 nc 文件
ncrcat -h TerraClimate_*.nc -O TerraClimate_pet_1958_2020.nc

它成功了,但结果不是我所期望的,它生成了 458KB 大小的文件,当我使用 Panoply 检查结果时,它提供了错误的信息,所有值都是 -3276.7。见下图。

我检查了第 1 步和第 2 步中的文件,一切都正确。

我也尝试仅连接 2 个文件,使用 19581959 数据(每个文件 103MB),但结果仍然不是我的预期。

ncrcat -h TerraClimate_pet_1958.nc TerraClimate_pet_1959.nc -O ../TerraClimate_pet_1958_1959.nc

我是否遗漏了代码中的某些内容或编写了错误的代码?有什么解决问题的建议吗?

更新 1(2021 年 10 月 22 日):

这是从上述链接下载的原始数据的元数据。

更新 2(2021 年 10 月 23 日):

根据 Charlie 的建议,我使用以下命令解压了上面第 2 点的所有数据。

for fl in *.nc4; do ncpdq --unpack $fl ../unpack/$fl; done

这是解包过程中的示例元数据。

以及使用 Panoply 可视化的数据。

然后我使用解包过程(1958 年和 1959 年)中的 2 个数据进行了测试以再次连接

ncrcat -h TerraClimate_pet_1958.nc TerraClimate_pet_1959.nc -O ../TerraClimate_pet_1958_1959.nc

不幸的是,结果保持不变,我得到的结果大小为 1MB。以下是元数据

并使用 Panoply 可视化 ncrcat 结果

【问题讨论】:

    标签: netcdf nco


    【解决方案1】:

    您的命令似乎是正确的,但我怀疑输入文件中的数据已打包。正如ncrcat 文档here 中所解释的那样,在连接所有输入文件之前,应将输入数据解包(例如,使用ncpdq --unpack)(除非它们都共享相同的scale_factoradd_offset 值) .如果这不能解决问题,那么 (1) _FillValue 可能存在问题,并且 (2) 请从示例输入文件中发布 pet 元数据。

    【讨论】:

    • 谢谢,我已经编辑了我的问题并添加了原始宠物的元数据截图。
    • 数据确实是打包的。正如我的回答所建议的那样,首先解压缩它们然后将它们连接起来。
    • 好的,我已经测试解压 1 个数据 ncpdq --unpack TerraClimate_pet_1958.nc ../TerraClimate_pet_1958.nc,并且工作正常。在我继续之前,请告知:我应该解压缩哪些数据?原始数据?还是第 2 点的数据导致了我上面的问题?
    • 任何一个都没有关系。就在 ncrcat 之前做。
    • 我已经根据您的解包建议更新了上述问题的进度,然后使用 ncrcat 进行连接。不幸的是,结果保持不变。有什么想法吗?
    猜你喜欢
    • 2020-04-30
    • 1970-01-01
    • 2020-01-29
    • 2018-09-02
    • 2021-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    相关资源
    最近更新 更多