Scipy interp2d内插屏蔽填充值

时间:2016-12-23 08:49:36

标签: python arrays numpy scipy interpolation

我想插入数据(120 * 120)以获取输出数据(1200 * 1200)。

通过这种方式我使用scipy.interpolate.interp2d

下面是我的输入数据,其中255对应于填充值,我在插值之前屏蔽这些值。

Input data

我使用以下代码:

pc

我得到以下结果:

Output data

已填充填充值。

如何在没有插值填充值的情况下插入数据?

1 个答案:

答案 0 :(得分:0)

我找到了scipy.interpolate.griddata的解决方案,但我不确定这是最好的解决方案。

我使用nearest方法参数插入数据,该参数返回最接近插值点的数据点的值。

points = np.meshgrid(np.linspace(0, 1200, data.shape[1]),
                     np.linspace(0, 1200, data.shape[0]))
points = zip(points[0].flatten(), points[1].flatten())
xi = np.meshgrid(np.arange(1200), np.arange(1200))
xi = zip(xi[0].flatten(), xi[1].flatten())

tck = griddata(np.array(points), data.flatten(), np.array(xi), method='nearest')
data = tck.reshape((1200, 1200))

Output data