让我们假设我有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=0
是否可以采用其他方法(例如双线性插值或三次插值)? 使用ArcGIS和其他软件,这非常容易,但是有一种方法可以对包含大型数据集的大型netCDF文件进行处理。 假设这只是数据的一个子集。我以后要转换的是一整套年度数据。
结果文件应为.nc文件,其网格大小由用户定义。
答案 0 :(得分:5)
您可以使用cdo重新映射网格,例如可以使用常规的1度网格:
cdo remapcon,r360x180 input.nc output.nc
除了保守的一阶重映射(remapcon)外,其他选项还有:
remapbil : bilinear interpolation
remapnn : nearest neighbour interpolation
remapcon2 : 2nd order conservative remapping
如果愿意,也可以将一个文件重新映射到另一个文件中使用的网格。
编辑:回答下面的评论。通常,如果您要从高分辨率插值到低分辨率(“粗网格化”),则不要使用双线性插值,因为它将本质上对场进行二次采样。对于非光滑,高度非均质的领域(例如降水),这尤其成问题。在那些情况下,我总是建议使用保守的方法(remapcon或remapcon2)。这些方法要慢得多,所以我经常在测试脚本速度时使用双线性,然后切换到remapcon进行最终运行。
另一个提高速度的技巧是,如果要对许多具有相同分辨率的输入文件 执行相同的插值过程,则可以使用genbil,gencon等计算一次插值权重,然后使用文件循环中的功能执行重新映射功能。这快得多,因为权重的生成是remapcon的缓慢部分
答案 1 :(得分:3)
NCO的ncremap也具有单行解决方案。考虑将a.nc
重新网格化为与b.nc
相同的网格。我们将答案命名为c.nc
(这是受人尊敬的a.nc
)。
ncremap -d b.nc a.nc c.nc
要选择保守而不是双线性插值(默认值),请使用-a
:
ncremap -a conserve -d b.nc a.nc c.nc