2D 座標のリストと 3 番目の変数 (速度) から、サンプリングされた領域全体をカバーする 2D numpy 配列を作成しました。私の意図は、各ピクセルがその中にあるポイントの平均速度を含む画像を作成することです。その後、その画像をガウス フィルターでフィルター処理します。
問題は、領域が均一にサンプリングされていないことです。Nan
したがって、画像の中央に情報 ( ) のないピクセルがいくつかあります。配列をガウス フィルターでフィルター処理しようとすると、Nan
伝播が画像全体を台無しにします。
この画像をフィルタリングする必要がありますが、情報のないすべてのピクセルを拒否します。つまり、ピクセルに情報が含まれていない場合は、フィルタリングで考慮されません。
平均化のための私のコードの例を次に示します。
Mean_V = np.zeros([len(x_bins), len(y_bins)])
for i, x_bin in enumerate(x_bins[:-1]):
bin_x = (x > x_bins[i]) & (x <= x_bins[i+1])
for j, y_bin in enumerate(y_bins[:-1]):
bin_xy = (y[bin_x] > y_bins[j]) & (y[bin_x] <= y_bins[j+1])
if (sum(x > 0 for x in bin_xy) > 0) :
Mean_V[i,j]=np.mean(V[bin_x][bin_xy])
else:
Mean_V[i,j]=np.nan
編集:
2013 年に作成したこの質問に終わった Web サーフィン。この問題の解決策は、astropy ライブラリにあります。
http://docs.astropy.org/en/stable/convolution/
Astropy の畳み込みは、NaN ピクセルを隣接ピクセルからのカーネル加重補間に置き換えます。
ありがとうございます!