2011-05-04 76 views
2

我正在一個項目中,我有一套已知的測量(x,y,z,a)和一個輸入(z,a)。我需要插入(x,y,z),以便從給定的z中獲得可能的(x,y)座標列表。非規則網格的雙三次插值?

我在尋找雙三次插值,但我只能找到有關常規網格的示例,而我的(x,y)對肯定不是常規的。

基本上我正在尋找一些關於算法/模型的指導來實現這個目標。我正在考慮一個三角形的不規則網絡,這是非常有吸引力的,因爲它分解成易於從給定的Z確定(x,y)的平面。但是我想要更多一點技巧。

我知道它聽起來像作業,它不是。

效率不是問題。

謝謝!

回答

3

我實際上最終使用Delauney Triangulation將字段分解爲具有標識符的3維X,Y,Z表面。然後給定一組(Identity,Z)對,我從每個表面形成一個場線,並從這些線計算由線之間最短邊形成的多邊形。這給了我一個潛在的x,y座標區域。

1

看看Kd-tree。 這些首先採用2d或3d或10d中的一組散點,然後回答如「找到最接近P的3個點」的查詢。

您的查詢z a雙? 例如,給定地圖上的一串彩色針,x y size color, 表可以將所有[x y]置於kd樹中,然後在給定的附近詢問針腳。
或者,可以將所有的[size color[放在樹中,然後詢問具有相似尺寸和顏色的銷。 (注意,大多數kd樹實現使用歐幾里德度量, 這樣的sqrt((大小 - size2個)^ 2 +(顏色 - 顏色2)^ 2)應有意義)

在Python中,我強烈建議scipy.spatial.cKDTree

另請參閱SO questions/tagged/kdtree

+0

這可能會有幫助,我基本上會收集像[x,y,size,identifier]這樣的數據,然後給定一組(大小,標識符)對:獲得相似的(x,y)對。我會看看,並讓你知道它是如何結果,謝謝!嗯,很多齒輪剛開始轉動,雙倍感謝! – FlyingStreudel 2011-05-06 19:14:42

+0

縮放大小和ID大致相同的範圍,以便sqrt((size - size2)^ 2 +(id - id2)^ 2)有意義。並打印最近的說3 xy s到(大小,id)s,並確保*他們*有道理。 – denis 2011-05-07 12:41:07