繁体   English   中英

在 Python 中重新网格化 NetCDF4

[英]Regridding NetCDF4 in Python

我正在使用各种气候模型,但现在我正在将这些文件的纬度和经度从 2.5x2.5 重新网格化到 0.5x0.5,我完全迷失了。 我一直在运行 Anaconda 包来满足我所有的 netCDF4 需求,而且我取得了很好的进展,只是重新网格让我完全困惑。 我有我正在使用的三个主要数组:

第一个是 data_array,一个包含降水信息的 numpy 数组。
第二个是 lan_array,一个包含纬度信息的 numpy 数组。
第三个是 lot_array,一个包含经度信息的 numpy 数组。
所有这些数据都来自 netCDF4 文件。

同样,我的数据目前为 2.5x2.5。 意思是,lonxlat 目前是 144x72。 我使用 np.meshgrid(lon_array,lat_array) 使 lonxlat 达到 72。我的 data_array 也包含 72 个元素,因此完美匹配。

这是我卡住的地方,我不知道如何继续。

我的想法:我希望我的 144x72 转换为 720x360,以便它是 0.5x0.5。 我知道创建我想要的 lonxlat 的一种方法是通过 np.arange(-89.75,90.25,0.5) 和 np.arange(-179.75,181.25,0.5)。 但我不知道如何匹配 data_array 以与之匹配。

任何人都可以提供任何帮助吗? 任何帮助深表感谢!

注意:我也有可用的 ESMF 模块。

一个简单的选择是 nctoolkit ( https://nctoolkit.readthedocs.io/en/latest/installing.html )。 这有一个名为to_latlon的内置方法,可以轻松实现您想要的。 只需对双线性插值执行以下操作(其他方法请参见用户指南):

import nctoolkit as nc
data = nc.open("infile.nc")
data.to_latlon(lon = [-179.75, 179.75], lat = [-89.75, 89.75], res = [0.5, 0.5])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM