在Python中重新调用NetCDF4

时间:2014-10-30 04:44:56

标签: python numpy

我正在使用各种气候模型,但现在我正在努力将这些文件的纬度和经度从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模块。

1 个答案:

答案 0 :(得分:0)

一个简单的选项是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])