我需要对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数组。
答案 0 :(得分:1)
您对griddata
的第二次通话不正确。它期望xi
和yi
是每个点的坐标,zi[i,:]
是与(xi[i], yi[i])
点对应的值。
显然,您的xi
和yi
数组恰好具有相同数量N
的条目,因此您不会立即收到错误。这个函数无法猜测你真的希望它做其他事情。