gpt4 book ai didi

python-3.x - 更改 netCDF 文件的网格大小

转载 作者:行者123 更新时间:2023-11-29 09:07:48 26 4
gpt4 key购买 nike

假设我有 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 文件,其中包含用户定义的更改后的网格大小。

最佳答案

您可以使用 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 

EDIT 2021:新视频可用...

要回答下面询问使用哪种方法的评论,有关这些插值方法的完整指南以及粗粒度数据时您必须注意的有关子采样的问题,you can refer to my "regridding and interpolation" video guide on youtube.

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

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

关于python-3.x - 更改 netCDF 文件的网格大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55746419/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com