Scipy interp2d插值遮罩填充值

2024-09-25 10:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

为了得到输出数据(1200*1200),我想插值数据(120*120)。在

这样我就使用了^{}。在

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

Input data

我使用以下代码:

tck = interp2d(np.linspace(0, 1200, data.shape[1]),
               np.linspace(0, 1200, data.shape[0]),
               data,
               fill_value=255)
data = tck(range(1200), range(1200))
data = np.ma.MaskedArray(data, data == 255)

我得到以下结果:

Output data

填充值已插值。在

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


Tags: 数据代码datavaluenprangefill插值
1条回答
网友
1楼 · 发布于 2024-09-25 10:23:53

我用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

相关问题 更多 >