【发布时间】: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。我所做的如下:
- 使用
ncpdq命令将维度从time,lat,lon重新排序为lat,lon,time
for fl in *.nc; do ncpdq -a lat,lon,time $fl ../pet2/$fl; done
- 循环文件夹中的所有文件,以便使用
ncks命令将时间用作用于连接文件的记录维度/变量
for fl in *.nc; do ncks -O --mk_rec_dmn time $fl $fl; done
- 使用
ncrcat命令将文件夹中的所有 nc 文件连接成一个 nc 文件
ncrcat -h TerraClimate_*.nc -O TerraClimate_pet_1958_2020.nc
它成功了,但结果不是我所期望的,它生成了 458KB 大小的文件,当我使用 Panoply 检查结果时,它提供了错误的信息,所有值都是 -3276.7。见下图。
我检查了第 1 步和第 2 步中的文件,一切都正确。
我也尝试仅连接 2 个文件,使用 1958 和 1959 数据(每个文件 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 结果
【问题讨论】: