假设我有 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 https://www.dropbox.com/sh/0vdfn20p355st3i/AABKYO4do_raGHC34VnsXGPqa?dl
是否可以采用不同的方法,例如双线性插值或三次插值?
这对于 ArcGIS 和其他软件来说非常容易,但是有没有办法对具有大型数据集的大型 netCDF 文件执行此操作。
假设这只是数据的一个子集。我稍后要转换的是一整套年度数据。
生成的文件应该是一个 .nc 文件,其网格大小已更改(由用户定义)。
您可以使用 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 上的“重新网格化和插值”视频指南。 https://youtu.be/79o6DXr_3zM
一般来说,如果您从高分辨率插值到低分辨率(“粗网格”)超过 2 倍,则don't想要使用双线性插值,因为它本质上会对字段进行二次采样。这对于非平滑、高度异质的场(例如降水)来说尤其成问题。在这些情况下,我总是建议使用保守方法(remapcon 或 remapcon2)。有关详细信息,请参阅我的视频指南。
另一个提高速度的技巧是,如果您对许多输入文件执行相同的插值过程具有相同的分辨率,然后您可以使用 genbil、gencon 等计算插值权重一次,然后使用文件循环中的权重执行重新映射函数。这要快得多,因为权重的生成是 remapcon 的缓慢部分
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)