4

假设我有 2 个 netCDF 数据文件,其中包含同一地区(如南美、非洲等)的数据,但网格大小不同,分别为 0.5 度 x 0.5 度和 1.0 度 x 1.0 度。我想将其网格大小增加或减少到不同的值,例如 0.25 x 0.25 或 1.0 x 1.0,以便我可以轻松地将其用于栅格计算和比较等。

有没有一种方法可以使用任何 bash 脚本、CDO 等来执行此操作?

样本数据可以从这里下载。https://www.dropbox.com/sh/0vdfn20p355st3i/AABKYO4do_raGHC34VnsXGPqa?dl

是否可以采用不同的方法,例如双线性插值或三次插值?使用 ArcGIS 和其他软件很容易做到这一点,但是对于具有大型数据集的大型 netCDF 文件,有没有办法做到这一点。假设这只是数据的一个子集。我稍后将转换的是一整套年度数据。

结果文件应该是一个 .nc 文件,其网格大小由用户定义。

4

2 回答 2

10

您可以使用 cdo 重新映射网格,例如您可以使用的常规 1 度网格:

cdo remapcon,r360x180 input.nc output.nc

除了保守的一阶重映射 (remapcon) 之外,其他选项还有:

remapbil : bilinear interpolation
remapnn  : nearest neighbour interpolation
remapcon2 : 2nd order conservative remapping

如果您愿意,也可以将一个文件重新映射到另一个文件中使用的网格:

cdo remapcon,my_target_file.nc in.nc out.nc 

编辑 2021:新视频可用...

要回答下面询问使用哪种方法的评论,有关这些插值方法的完整指南以及粗粒度数据时必须注意的关于二次采样的问题,您可以参考我在 youtube 上的“重新网格化和插值”视频指南.

一般来说,如果您从高分辨率到低分辨率(“粗网格”)插值超过 2 倍,则您不想使用双线性插值,因为它本质上会对场进行二次采样。这对于非光滑、高度异质的领域(如降水)尤其成问题。在这些情况下,我总是建议使用保守的方法(remapcon 或 remapcon2)。有关详细信息,请参阅我的视频指南。

另一个速度提示是,如果您对许多具有相同分辨率的输入文件执行相同的插值过程,那么您可以使用 genbil、gencon 等计算插值权重,然后使用循环中的那些进行重新映射函数文件。这要快得多,因为权重的生成是 remapcon 的缓慢部分

于 2019-04-18T14:24:51.563 回答
6

NCO 的ncremap也有一个单线解决方案。考虑重新a.nc网格化与b.nc. 我们将命名答案c.nc(这是 regridded a.nc)。

ncremap -d b.nc a.nc c.nc

要选择保守而不是双线性插值(默认),请使用-a

ncremap -a conserve -d b.nc a.nc c.nc
于 2019-05-03T14:19:14.790 回答