正确使用numpy插值

时间:2013-10-17 08:21:33

标签: python numpy scipy interpolation

我需要对python中的非均匀间隔网格执行一些过滤。因此,我通过griddata将非均匀网格插入到统一网格中:

zi = interpolate.griddata((xin, yin), zin, (xi[None,:], yi[:,None]), method='cubic')

然后,在zi被过滤后,我需要将网格插回到原始的xin,yin点。如果我这样做:

zout = interpolate.griddata((xi, yi), zi, (xin[None,:], yin[:,None]), method='cubic')

我得到一些我不理解的错误,与“qhull精确警告”和Delaunay三角测量中的“qhull错误”有关。

有谁知道如何解决这个问题?这与(xin,yin)没有订购的事实有关吗?感谢。

[UPDATE] 我将尝试澄清输入数据是什么。输入数据是笛卡尔网格,在中心(x轴和y轴)都经过细化。只要我想过滤它,我需要插入它的均匀采样版本,并执行另一个插值,从均匀采样返回到精化。

xin,yin,zin是1D数组,以及xi和yi。 zi(griddata的输出)是一个2D数组。

1 个答案:

答案 0 :(得分:1)

您对griddata的第二次通话不正确。它期望xiyi是每个点的坐标,zi[i,:]是与(xi[i], yi[i])点对应的值。

显然,您的xiyi数组恰好具有相同数量N的条目,因此您不会立即收到错误。这个函数无法猜测你真的希望它做其他事情。