首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >更改netCDF文件的网格大小

更改netCDF文件的网格大小
EN

Stack Overflow用户
提问于 2019-04-18 12:48:49
回答 2查看 3.6K关注 0票数 4

假设我有两个netCDF数据文件,其中包含相同区域(如南美洲、非洲等)的数据,但不同的网格大小分别为0.5度x0.5度和1.0度x1.0度。我希望将它的网格大小增加或减小到不同的值,例如0.25 x 0.25或1.0 x 1.0,这样我就可以很容易地使用它来进行光栅计算和比较,等等。

是否有一种方法可以使用任何bash脚本、CDO等来完成此操作?

可以从这里下载一个示例数据。raGHC34VnsXGPqa?dl

对于这种情况,可以采用不同的方法,如双线性插值或三次插值?对于ArcGIS和其他软件来说,这是相当容易的,但是对于一个大数据集的netCDF文件,有什么方法可以做到呢?假设这只是数据的一个子集。我稍后要转换的是一套完整的年度数据。

得到的文件应该是一个.nc文件,其网格大小由用户定义。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-18 14:24:51

您可以使用cdo重新映射网格,例如,将网格重新映射到常规的1度网格,您可以使用:

代码语言:javascript
运行
复制
cdo remapcon,r360x180 input.nc output.nc

除了保守的一阶重映射(remapcon)之外,其他选项包括:

代码语言:javascript
运行
复制
remapbil : bilinear interpolation
remapnn  : nearest neighbour interpolation
remapcon2 : 2nd order conservative remapping

如果您愿意,还可以将一个文件重新映射到另一个文件中使用的网格:

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

编辑2021:新视频可用..。

要回答下面关于使用哪种方法的评论,有关这些插值方法的完整指南,以及在粗粒度数据时需要注意的问题,你可以参考我在youtube上的“里脊和插值”视频指南。

一般来说,如果你要从高分辨率插值到低分辨率(“粗网格”)超过2倍,你不想使用双线性插值,因为它本质上将子采样场。对于非光滑、高度非均匀的场,如降水,这尤其成问题。在这种情况下,我总是建议使用保守的方法(remapcon或remapcon2)。详情请看我的视频指南。

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

票数 11
EN

Stack Overflow用户

发布于 2019-05-03 14:19:14

NCO的雀斑图也有一个单线解决方案.考虑将a.nc重新定位到与b.nc相同的网格上。我们将把答案命名为c.nc (这是a.nc)。

代码语言:javascript
运行
复制
ncremap -d b.nc a.nc c.nc

若要选择保守而不是双线性插值(默认值),请使用-a

代码语言:javascript
运行
复制
ncremap -a conserve -d b.nc a.nc c.nc
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55746419

复制
相关文章

相似问题

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