2つのグリッド間の補間に苦労しています。Scipy - 1つの不規則なグリッドから別の不規則な間隔を置いたグリッドへのデータ補間
私は2つの異なる2Dグリッドを持っています。そのうちのノードポイントはX座標とY座標で定義されています。グリッド自体は長方形ではなく、多少の平行四辺形を形成する(したがって、(i、j)のX座標は(i、j + 1)と同じではなく、(i、j)のY座標は(i + 1、j)のY座標とは異なる 両方のグリッドは37 * 5の形をしており、それらはほぼ完全に重複しています。
最初のグリッドでは、X座標、座標値と圧力値を入力します。この第1グリッドの圧力分布を第2グリッド上で補間したいと思います(XとYは各点で知られています)。
私はさまざまな補間方法を試みましたが、 interp2dまたはgriddataとしての関数は、次のように必要です。 1D配列を入力しますが、これを行うと、補間された解は間違っています(たとえ元のグリッドから元のグリッドの圧力値を再び補間しても、新しい圧力値は元の値から数マイル離れています)。
私が使用する異なる不規則グリッド上の1D補間のため:私はgriddataを使用する方が簡単だろうと思っ
def interpolate(X, Y, xNew):
if xNew<X[0]:
print 'Interp Warning :', xNew,'is under the interval [',X[0],',',X[-1],']'
yNew = Y[0]
elif xNew>X[-1]:
print 'Interp Warning :', xNew,'is above the interval [',X[0],',',X[-1],']'
yNew = Y[-1]
elif xNew == X[-1] : yNew = Y[-1]
else:
ind = numpy.argmax(numpy.bitwise_and(X[:-1]<=xNew,X[1:]>xNew))
yNew = Y[ind] + ((xNew-X[ind])/(X[ind+1]-X[ind]))*(Y[ind+1]-Y[ind])
return yNew
が、2D用。誰かが私の入力がメッシュとデータの2D配列である補間の経験がありますか?
'griddata'は入力配列を' ravel'するだけです。あなたはスクリーンショットを使ってグリッドデータがどのように失敗しているかを記述できますか? – keflavich