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

标签 r geospatial netcdf cdo-climate

我从 here 下载了 netCDF 文件。它们的分辨率为 0.5*0.5。我想以 1*1 的较粗分辨率重新网格化这些文件。我找到了一些链接。 First link谈论 R 中的重新网格,但没有使用双线性插值。 second link处理双线性插值,但使用气候数据运算符(我对此不太熟悉)。然后我遇到了一个R包HiClimR 。在这个包中,命令coarseR降低了数据的分辨率。我将 netCDF 文件转换为 Excel 文件并使用 coarseR。但得到结果后我发现这个命令实际上以某种方式跳过了经度纬度并将分辨率降低到1*1。简而言之,我的问题是

(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:最近邻居 插值(即从最近的单元格获取值)
  • 重新映射 session :首先 顺序保守重映射
  • remapcon2:二阶保守重映射

我的 youtube video guide on climate unboxed. 中更详细地解释了重新网格化技术以及如何使用 CDO 实现它们。

关于r - 如何使用R中的双线性插值降低netCDF的分辨率(Regrid)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324819/

相关文章:

r - 使用 mapply 在 R/TraMineR 中创建序列对象?

javascript - 根据已知的纬度和经度点在图像上放置点的失败尝试

php - 使用 MySQL 'POINT' 和 PHP 通过表单插入经纬度点

sql - 选择最近点的最有效方法

fortran - Netcdf 和 Fortran 结构

javascript - R plotly : how to observe whether a trace is hidden or shown through legend clicks with multiple plots

javascript - Shiny 的数据表工具提示/弹出窗口不适用于分页

r - 如何更改 Shiny 的 actionButton 中标签和图标的顺序?

python - 如何在 PyPy 中导入 .so 模块?

python - 使用 nco 工具添加多个 netcdf 变量