不规则网格插入到规则网格

时间:2016-11-24 15:47:32

标签: python interpolation

我有一个相对较大(空间)的不规则网格。它由多个曲线网格组成(参见示例),其中包含各个单元格的x,y坐标和z值(高度)。

这些细胞可以是50m×50m的量级。

我想将其插入到1m x 1m的网格中,如何在python中有效地做这样的事情?

如果可能的话,我想不创建一个跨越没有网格单元格的区域的网格,因为我认为插值数据集可能非常大。

grid example

编辑:尝试在python中进行2D插值,但无法使其工作 我找到了这个脚本:http://scipy-cookbook.readthedocs.io/items/Matplotlib_Gridding_irregularly_spaced_data.html

从这个例子中我尝试做同样的事情,但只获得了nan值。脚本:

XZ2 = XZ[XZ != 0.].ravel()
YZ2 = YZ[YZ != 0.].ravel()
dps2 = dps[XZ != 0.].ravel()

# define grid.
xi = np.arange(math.floor(min(XZ2)), math.ceil(max(XZ2))+1, 1)
yi = np.arange(math.floor(min(YZ2)), math.ceil(max(YZ2))+1, 1)

# grid the data.
zi = griddata((XZ2, YZ2), dps, (xi[None,:], yi[:,None]), method='linear')

知道为什么吗?

我在QGis中没有这样做,因为我觉得我应该可以在python中做到这一点..

由于

1 个答案:

答案 0 :(得分:1)

上面的脚本确实有效,它只会创建大量的nan值,给人的印象是结果不正确..