2009-12-29 83 views
0

我意識到有一個NumPy通過Matplotlib griddata,但是有一個griddata3(同樣有griddata,但對於更高的尺寸)? (x,y,z),其中(x,y,z)形成一個不規則網格,d(x,y,z)是一個標量三個變量的函數。我需要使用某種插值處理原始(x,y,z)數據的不均勻性來爲一組新的(xi,yi,zi)點生成d(xi,yi,zi)。最終,(xi,yi,zi,d(xi,yi,zi))數據將不得不以某種方式呈現爲表面,但這對於以後來說是個問題。我也沒有d(。)函數的解析表單;我只是有它的數據。NumPy的MATLAB的griddata3?

回答

1

SciPy 0.9(目前,第一個測試版已發佈)具有可處理N維數據的新函數griddata

+0

耶!做得好! – reckoner 2011-01-12 23:40:11

0

我對griddata3並不熟悉,但您可能需要查看meshgrid和此相關的post

1

不知道你打算如何渲染3個變量的標量函數的表面,除了可能使用cutplanes或類似的東西。 Mayavi(實際上是VTK,其強大Mayavi)通過enthought.mayavi.mlab.pipeline.delaunay3d支持高效的Delaunay三角剖分,這是griddata3使用的算法的核心。請參閱the 2D example已發佈的代碼,只需添加一個維度(並使用delaunay3d代替)。我不知道如何明確獲取用於渲染表面的內插值,但是可能有方法通過Mayavi對其進行採樣,您可以通過文檔挖掘或者查詢Enthought郵件列表中的一個。

或者,NCAR natgrid庫中的C函數之一可能是有用的,即dsgrid3d。有一個部分包裝器作爲matplotlib toolkit實施。

+0

謝謝!我會研究這些。 – reckoner 2010-01-03 13:38:01