NetCDF 空间合并到全球数据
NetCDF spatially merging to global data
目前我使用全球降水量(ppt)和潜在蒸散量(pet)数据来计算SPEI。由于我的硬件资源有限,我将全球ppt和ppt数据分成了32个部分,每个文件覆盖45x45deg,包含756个数据——从1958年到2020年的每个月(tile01.nc, tile02.nc, ... tile32.nc)
- 例如,我使用
cdo sellonlatbox,-180,-135,45,90 in.nc out.nc
或 ncks -d lat,45.,90. -d lon,-180.,-135. in.nc -O out.nc
- 根据 SPEI 脚本的要求,我使用
ncpdq
和 ncks
. 重新排序并修复了从 time,lat,lon
到 lat,lon,time
的维度
- 从 SPEI 输出中,我得到了
lat,lon,time
中的输出。所以我确实重新排序维度,使其成为 time,lat,lon
使用 ncpdq
.
- 每个图块 SPEI 输出覆盖 45x45deg 并包含 756 个 SPEI 数据 - 从 1958 年到 2020 年每月
最后我需要将所有输出(32 个文件)合并为一个,所以我将获得全局 SPEI 输出。我尝试使用 cdo mergegrid
但结果不是我所期望的。 cdo
或 nco
是否有任何命令来解决这个问题,如果我们处理的是 geoTIFF 格式,其功能类似于 gdal_merge
?
下面是SPEI输出的例子
更新
我按照下面 Robert 的建议设法使用 cdo collgrid
合并了所有数据。结果如下:
我相信你想为此使用 CDO 的 distgrid 和 collgrid 方法。
首先,运行这个:
cdo distgrid,4,8 in.nc obase
这将按照您希望的方式拆分文件。
然后对文件进行必要的 post 处理。
然后使用collgrid合并文件:
cdo collgrid obase* out.nc
根据您拆分文件的方式,您可以在当前的工作流程中使用 collgrid 代替 mergegrid。
目前我使用全球降水量(ppt)和潜在蒸散量(pet)数据来计算SPEI。由于我的硬件资源有限,我将全球ppt和ppt数据分成了32个部分,每个文件覆盖45x45deg,包含756个数据——从1958年到2020年的每个月(tile01.nc, tile02.nc, ... tile32.nc)
- 例如,我使用
cdo sellonlatbox,-180,-135,45,90 in.nc out.nc
或ncks -d lat,45.,90. -d lon,-180.,-135. in.nc -O out.nc
- 根据 SPEI 脚本的要求,我使用
ncpdq
和ncks
. 重新排序并修复了从 - 从 SPEI 输出中,我得到了
lat,lon,time
中的输出。所以我确实重新排序维度,使其成为time,lat,lon
使用ncpdq
. - 每个图块 SPEI 输出覆盖 45x45deg 并包含 756 个 SPEI 数据 - 从 1958 年到 2020 年每月
time,lat,lon
到 lat,lon,time
的维度
最后我需要将所有输出(32 个文件)合并为一个,所以我将获得全局 SPEI 输出。我尝试使用 cdo mergegrid
但结果不是我所期望的。 cdo
或 nco
是否有任何命令来解决这个问题,如果我们处理的是 geoTIFF 格式,其功能类似于 gdal_merge
?
下面是SPEI输出的例子
更新
我按照下面 Robert 的建议设法使用 cdo collgrid
合并了所有数据。结果如下:
我相信你想为此使用 CDO 的 distgrid 和 collgrid 方法。
首先,运行这个:
cdo distgrid,4,8 in.nc obase
这将按照您希望的方式拆分文件。
然后对文件进行必要的 post 处理。
然后使用collgrid合并文件:
cdo collgrid obase* out.nc
根据您拆分文件的方式,您可以在当前的工作流程中使用 collgrid 代替 mergegrid。