首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何利用R中的双线性插值降低netCDF的分辨率(Regrid)?

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

Stack Overflow用户
提问于 2016-02-10 20:04:02
回答 1查看 2.1K关注 0票数 6

我从netCDF下载了这里文件。它们的分辨率为0.5*0.5。我想重新网格这些文件在一个更粗的分辨率1*1。我找到了一些链接。第一环节讨论R中的重网格,但不使用双线性插值.第二环节处理的是双线性插值,但使用的是气候数据运算符(我对此并不十分熟悉)。然后我遇到了一个R包HiClimR。在这个包中,命令coarseR降低了数据的分辨率。我将netCDF文件转换为excel文件,并使用coarseR。但是在得到结果后,我发现这个命令实际上以某种方式跳过了经度纬度,并将分辨率降低到1*1。

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

在此之前,非常感谢您。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-17 09:22:57

CDO有一些非常好的正则化函数,您现在可以在安装后使用包气候操作员。直接从R内访问

代码语言:javascript
运行
复制
devtools::install_github("markpayneatwork/ClimateOperators")

你把它装上

代码语言:javascript
运行
复制
library(ClimateOperators)

例如,要按照您的要求使用双线性插值将1x1常规网格恢复到1x1,只需在linux命令行中这样做:

代码语言:javascript
运行
复制
cdo remapbil,r720x360 in.nc out.nc

使用R中的气候操作符包,将转换为

代码语言:javascript
运行
复制
cdo("remapbil,r720x360","in.nc","out.nc") 

(您可以看到命令是如何在不使用调用中的"debug=True“选项运行的情况下构建的)。

但是,如果您正在转换为一个更粗的网格,那么使用保守的重映射技术可能是明智的,否则您可能会在重映射过程中忽略点。这对于像降水这样的高度非均匀的场尤其重要。在这种情况下,CDO提供了一阶和二阶保守的重映射技术。使用一阶技术

代码语言:javascript
运行
复制
cdo remapcon,r720x360 in.nc out.nc

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

需要考虑的共同备选方案是:

  • 雷帕比勒:双线性插值
  • remapnn:最近邻插值(即从最近的单元中取值)
  • 一阶保守重映射
  • remapcon2:二阶保守重映射

在我的youtube关于气候的视频指南已解禁。中更详细地解释了网格化技术以及如何用CDO实现这些技术。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35324819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档