1

ポイント(x、Y、Z)で特徴付けられる2Dグリッド上のデータがあります。X と Y の値は各ポイントの位置を示し、Z は各ポイントの「高さ」または「強度」です。

私の問題は、X 軸に沿ったデータ座標の間隔が非常に狭い (~1000 ポイント) のに対して、Y 座標が広がっている (~50 ポイント) ことです。これは、散布図にプロットすると、隣接する行の間に等量の空白スペースがあるデータ行が基本的にあることを意味します。

散布図でのデータの間隔の例:

ooooooooooooooooooooooooooooooo


ooooooooooooooooooooooooooooooo


ooooooooooooooooooooooooooooooo

これらのポイントを補間して、連続したサーフェスを取得したいと考えています。この面の任意の位置で「高さ」を評価できるようにしたい。すべての scipy 補間方法のように見えるものを試しましたが、最も「インテリジェントな」方法が何であるかはわかりません。データの各垂直スライスを補間してから、それらをつなぎ合わせる必要がありますか?

表面をできるだけ滑らかにしたいのですが、形状を維持する方法が必要です。補間されたサーフェスが入力データをオーバーシュートすることは望ましくありません。

あなたが提供できるどんな助けも非常に役に立ちます。

編集:

この問題についてさらに考えてみると、垂直方向のスライスを補間してからそれらをつなぎ合わせてもうまくいかないようです。これにより、垂直スライスに沿った値がそのスライスによってのみ影響を受けることになります。不正確なサーフェスになるのではないでしょうか?

4

2 に答える 2

3

このチュートリアルをお勧めし ます。その根性は次のとおりです(リンクから持ち上げられます):

>>> grid_x, grid_y = np.mgrid[0:1:100j, 0:1:200j]
>>> from scipy.interpolate import griddata
>>> grid_z0 = griddata(points, values, (grid_x, grid_y), method='nearest')
>>> grid_z1 = griddata(points, values, (grid_x, grid_y), method='linear')
>>> grid_z2 = griddata(points, values, (grid_x, grid_y), method='cubic')

これにより、データ(doc)の 3 つの異なるレベルの補間が得られます。

于 2013-01-01T01:50:23.370 に答える
0

表面を探している場合は、垂直スライスを使用して、入力されたデータをプロットすることで取得できると思います。

于 2013-01-01T00:11:03.753 に答える