グリッドのないポイントのセットと、穴のあるグリッドがあります-NaNを含む配列で表されます(マスクされた配列?)。グリッドのないポイントをこのグリッドに「マッピング」してから、グリッドを横切って補間し、NaN 領域を境界として使用しようとしています。
griddata はこのデータを正常に補間しますが、NaN 値を無視し、NaN の「壁」の片側の値が反対側の値に影響します。(これが理にかなっていることを願っています)。
griddata に NaN を境界として強制し、NaN 領域の一方の側のポイントが他方に影響を与えないようにする方法があるかどうかは誰にもわかりませんか?
これまでのところ、私はこれを得ることができます:
左のプロットは、マスクされていない配列で実行された griddata であり、右のプロットは、マスクされた配列で実行された griddata です。補間がマスクされた領域を横切るのを見ないことを望んでいました。
これは単純化された例であり、私のマスクされた配列は実際にはもう少し複雑です (メッシュ/配列に一連の空白の島または「穴」があります)。この例)。
これは私がこれまでに持っているものです:
X = np.asarray(cfdx[1:])
Y = np.asarray(cfdy[1:])
Z = np.asarray(errors)
xi = np.linspace(X.min(),X.max(),100)
yi = np.linspace(Y.min(),Y.max(),100)
xii = xi
yii = yi
zii = griddata((X, Y), Z, (xii[None,:], yii[:,None]), method='cubic')
fig = plt.figure(figsize=plt.figaspect(0.5))
ax = fig.add_subplot(121)
CS = plt.contourf(xii,yii,zii,15)
xi[45:50] = np.NaN
yi[45:50] = np.NaN
zi = griddata((X, Y), Z, (xi[None,:], yi[:,None]), method='cubic')
ax2 = fig.add_subplot(122)
CS2 = plt.contourf(xi,yi,zi,15)
plt.show()
どんな助けでも大歓迎です!
FP