Python +从不均匀间隔的1D纬度和经度数组构造1度x 1度的2D矩阵

时间:2018-06-27 19:09:19

标签: python-3.x zoom

我有三个长度相同的一维数组(31)。其中两个代表地理位置(纬度和经度),第三个(M)是这些位置中的测量变量。我想将这三个1D数组合并为一个2D矩阵,然后将其重塑为1度x 1度的网格,其中维度为经度和纬度,而gridbox值为M值。

在此示例(下面的示例代码)中,LAT范围为-3.0至3.0,LON范围为14.7至27.3,我想将M值放置在1度x 1度网格中,范围为3S-3N和14E-27E分别位于纬度和纵向域。在每个1度x 1度的网格框中,我想要该网格框中所有累加的M值之和。空的网格框(没有任何对应的M值的网格框)可以为空,带掩码,NaN或某些填充值。我怎样才能做到这一点?

(我从一个同事那里得到了从scipy.ndimage.interpolation导入缩放的建议,但是在我看来,该缩放功能仅在希望放大均匀间隔的网格步长时才起作用,并且您可以从中看到我下面的示例代码,我的纬度和经度点间距不均匀。)

import numpy as np
# Create the fake parameters
LAT = [-3.0, -2.7, -2.4, -2.1, -1.8, -1.5, -1.3, -1.1, -0.9, -0.7, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.7, 0.9, 1.1, 1.3, 1.5, 1.8, 2.1, 2.4, 2.7, 3.0]
LON = [14.7, 15.4, 16.1, 16.8, 17.4, 18.0, 18.5, 19.0, 19.4, 19.8, 20.1, 20.4, 20.6, 20.8, 20.9, 21.0, 21.1, 21.2, 21.4, 21.6, 21.9, 22.2, 22.6, 23.0, 23.5, 24.0, 24.6, 25.2, 25.9, 26.6, 27.3]
M = np.random.randint(11, size=31)

0 个答案:

没有答案