2

我需要对 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')

我收到一些我不明白的错误,与 Delaunay 三角测量中的“qhull 精度警告”和“qhull 错误”有关。

有谁知道我该如何解决这个问题?这可能与 (xin,yin) 未排序有关吗?谢谢。

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

xin, yin, zin 是一维数组,还有 xi 和 yi。zi(griddata 的输出)是一个二维数组。

4

1 回答 1

1

您的第二次致电griddata不正确。它期望xi并且yi是每个点的坐标,并且zi[i,:]是对应于 point 的值(xi[i], yi[i])

显然,您的xiyi数组恰好具有相同数量N的条目,因此您不会立即收到错误消息。该函数无法猜测您实际上希望它执行其他操作。

于 2013-10-18T09:46:28.887 回答