2

特にscipy pchipルーチンを使用して、いくつかの補間手法を実装しようとしています。

私が判断しようとしているのは、各座標を個別に補間することにより、規則的な空間の 2D データの補間を実行できるかどうかです。

たとえば、私が持っている場合:

(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 行列の各列に対して pchip(X,Z) を実行する必要がありますか? 次に、最初の補間から得られた行列の各行で pchip(Y,Z*) を計算しますか?

お手伝いありがとう。pchip を使用した tensor rpoduct 補間の実行に関する pv の投稿を見たことがありますが、github での彼の更新があっても、取り除くことができない厄介なゼロ除算エラーが発生します。

編集:

pchip を使用している警告に関して投稿されたこのチケットを見つけました: http://projects.scipy.org/scipy/ticket/1838

「そのように生成された infs/nans は、ブール条件マスクを適用することによって除外されますが、警告を完全に回避するために除算の前にマスクを適用することができます。」

警告を回避するためにこれを適用するにはどうすればよいですか?

4

1 に答える 1

0

バイリニア補間の一番上の図を見てください 。
y、x に最も近い行 y1、y2 を見つけて
pchipR1 R2 (青) を取得し、それらを
線形補間して P (緑) を取得します。
(これを別の順序で実行して、値 x-then-y、y-then-x を平均することもできます。)

ただし、pchipノット間でほぼ線形である場合 (データ用ですか?)、scipy BivariateSpline または scipy.ndimage.interpolation.map_coordinates ( ... order=1 ) および ( ahem
を使用して、直接双線形を行う方が簡単 です。 ) ラッパー Intergrid

于 2013-03-14T16:19:47.900 に答える