ですから、これは私の以前の質問に対するちょっとしたフォローアップの質問です:ポリゴン内の座標を生成し、私の答えhttps://stackoverflow.com/a/15243767/1740928 実際、ポリゴンデータを通常のグリッドにビニングしたいと思います。したがって、ポリゴン内のいくつかの座標を計算し、それらの緯度/経度の組み合わせをグリッドのそれぞれの列/行の組み合わせに変換します。
現在、行/列の情報は、データポリゴンの数に対応する行数と、ポリゴン内の座標に対応する列数を含むnumpy配列に格納されています。
コード全体の所要時間は1秒未満ですが、現時点でのボトルネックはこのコードです(約7秒)。
for ii in np.arange(len(data)):
for cc in np.arange(data_lats.shape[1]):
final_grid[ row[ii,cc], col[ii,cc] ] += data[ii]
final_grid_counts[ row[ii,cc], col[ii,cc] ] += 1
配列「data」には、各ポリゴン(80000、)のデータ値が含まれているだけです。配列「row」と「col」には、ポリゴン内の座標の行番号と列番号が含まれています(形状:(80000,16))。ご覧のとおり、各グリッドセル内のすべてのデータ値を合計し、一致数をカウントしています。したがって、異なるポリゴンがグリッドセルと交差する場合の各グリッドセルの平均がわかります。それでも、これら2つのforループには約7秒かかるのでしょうか。もっと速い方法を考えられますか?