如何在 R 中使用双线性插值降低 netCDF 的分辨率(Regrid)?

How to reduce the resolution (Regrid) of netCDF using bi-linear interpolation in R?

我从 here. They are at 0.5*0.5 resolution. I want to re-grid these files at a coarser resolution of 1*1. I found some links. First link talks about re-grid in R, but without using bi-linear interpolation. The second link deals with bi-linear interpolation, but using climate data operator (to which I am not very much familiar). Then I came across an R package HiClimR 下载了 netCDF 文件。在这个包中,命令 coarseR 降低了数据的分辨率。我将 netCDF 文件转换为 excel 文件并使用 coarseR。但是得到结果后我发现这个命令实际上以某种方式跳过了经度纬度并将分辨率降低到1*1。简而言之 shell,我的问题是

(1) 使用coarseR降低分辨率是否正确? (2) 如何使用双线性变换解决我在 R 中的具体问题?

非常感谢。

CDO 内置了一些非常好的重新网格化功能,您现在可以使用包 climate operators. 在 R 中直接访问

安装后
devtools::install_github("markpayneatwork/ClimateOperators")

你加载它

library(ClimateOperators)

例如,按照您的要求使用双线性插值重新网格化为 1x1 规则网格,您只需从 linux 命令行执行以下操作:

cdo remapbil,r720x360 in.nc out.nc

使用 R 中的气候运算符包,将转化为

cdo("remapbil,r720x360","in.nc","out.nc") 

(您可以在没有 运行 的情况下使用调用中的选项“debug=True”查看命令是如何构建的。

但是,如果您要转换为较粗糙的网格,那么建议使用保守的重新映射技术,否则您可能会在重新映射过程中漏掉一些点。这对于降水等高度异质性场尤其重要。在这种情况下,CDO 提供一阶和二阶保守重映射技术。使用一阶技术

cdo remapcon,r720x360 in.nc out.nc

(请注意,如果数据被“打包”,有时您可能会发现 CDO 在转换过程中由于精度损失而摇摆不定,在这种情况下,它会建议您使用选项“-b f32”或“- b f64".)

要考虑的常见重新网格化选项是:

  • remapbil:双线性插值
  • remapnn:最近的邻居 插值(即从最近的单元格中获取值)
  • 重新映射:首先 顺序保守重映射
  • remapcon2:二阶保守重映射

我的 youtube video guide on climate unboxed.

中更详细地介绍了重新网格化技术以及如何使用 CDO 实现它们