Ep1*_*1aN 4 bash netcdf python-3.x netcdf4 cdo-climate
假设我有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
Run Code Online (Sandbox Code Playgroud)
除了保守的一阶重映射(remapcon)外,其他选项还有:
remapbil : bilinear interpolation
remapnn : nearest neighbour interpolation
remapcon2 : 2nd order conservative remapping
Run Code Online (Sandbox Code Playgroud)
如果您愿意,也可以将一个文件重新映射到另一个文件中使用的网格:
cdo remapcon,my_target_file.nc in.nc out.nc
Run Code Online (Sandbox Code Playgroud)
编辑:回答下面的评论。通常,如果您要从高分辨率插值到低分辨率(“粗网格化”),则不希望使用双线性插值,因为它实际上会对该字段进行二次采样。对于非光滑,高度非均质的领域(例如降水),这尤其成问题。在那些情况下,我总是建议使用保守的方法(remapcon或remapcon2)。这些方法要慢得多,所以我经常在测试脚本速度时使用双线性,然后切换到remapcon进行最终运行。
速度的另一个提示是,如果您对许多具有相同分辨率的输入文件执行相同的插值过程,则可以使用genbil,gencon等计算一次插值权重,然后使用循环中的那些执行重映射功能文件。这快得多,因为权重的生成是remapcon的缓慢部分
NCO的ncremap也具有单行解决方案。考虑重新a.nc网格化与在同一网格上b.nc。我们将命名答案c.nc(这是regridded a.nc)。
ncremap -d b.nc a.nc c.nc
Run Code Online (Sandbox Code Playgroud)
要选择保守而不是双线性插值(默认),请使用-a:
ncremap -a conserve -d b.nc a.nc c.nc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
390 次 |
| 最近记录: |