2013-03-11 65 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