2013-03-11 78 views
2

我想实现一些插值技术 - 特别是使用scipy芯片例程。蟒蛇 - 二维插值,一次一维

我想确定的是,我是否可以通过分别插入每个坐标来执行有规律的空间二维数据插值。

例如,如果我有:

(1 x m) vector of X coordinates 
(1 x n) vector of Y coordinates 

(m x n) matrix of Z coordinates //Z value corresponding to (x,y) pair 

是否有可能在连续的每个维度进行pchip插值,因此创建内插表面?

Pchip预期数据的形式为pchip(X,Z) - 其中X和Z均为1D阵列。那么什么是插入每个维度的最佳方式?我应该怎么做,例如,我的Z矩阵的每一列的芯片(X,Z)?然后在第一次插值产生的矩阵的每一行上的pchip(Y,Z *)?

谢谢你的帮助。我已经看过关于用pchip执行张量插值插值的pv post,但是它导致了一个令人讨厌的零差错,即使他在github上有更新也无法摆脱。

编辑:

我发现这张票贴关于我已经用pchip警告: http://projects.scipy.org/scipy/ticket/1838

谁能告诉我,当它是这么说的产生 “的INF中/ NaN的这是什么意思是通过应用布尔条件掩码过滤掉的,但可以在分割之前应用掩码,以避免完全警告。“

我该如何得到有关应用此操作以避免警告的信息?

回答

0

看一看 Bilinear interpolation的前几张图。
查找的行Y1,Y2最近的Y,这些
pchip X得到R1 R2(蓝色),
然后线性插值那些获得P(绿色)。
(你也可以做的是,在另外的顺序和平均数值x-THEN-Y,Y-然后-X)。

但是,如果pchip几乎海里(是它为您的数据?)之间的线性,
那么这将是更简单的办双线性直接, 或者与 scipy BivariateSpline
scipy.ndimage.interpolation.map_coordinates(...顺序= 1) 和(啊哈)包装 Intergrid