地球の小さな領域を表すテーブル形式(四隅の座標が与えられている)で何千ものポリゴンが格納されています。さらに、各ポリゴンにはデータ値があります。データビニング:不規則なポリゴンから規則的なメッシュ
lat1, lat2, lat3, lat4, lon1, lon2, lon3, lon4, data
57.27, 57.72, 57.68, 58.1, 151.58, 152.06, 150.27, 150.72, 13.45
56.96, 57.41, 57.36, 57.79, 151.24, 151.72, 149.95, 150.39, 56.24
57.33, 57.75, 57.69, 58.1, 150.06, 150.51, 148.82, 149.23, 24.52
56.65, 57.09, 57.05, 57.47, 150.91, 151.38, 149.63, 150.06, 38.24
57.01, 57.44, 57.38, 57.78, 149.74, 150.18, 148.5, 148.91, 84.25
...
ポリゴンの多くが交差または重なっ: ファイルは次のように例を探します。今度は、-90°から90°の緯度と-180°から180°の経度から、例えば0.25°x0.25°のステップで(面積加重)平均データを格納する* m行列を作成したいと思います各ピクセルに含まれるすべてのポリゴンの値。
したがって、通常のメッシュの1つのピクセルは、1つ以上のポリゴンの平均値を取得する(または、ポリゴンがピクセルと重なっていない場合はなし)。各ポリゴンは、このピクセル内の面積率によってこの平均値に寄与するはずです。
基本的には通常のメッシュとポリゴンは、次のようになります。
あなたは画素2を見れば、あなたは2つのポリゴンがこのピクセル内にあることがわかります。したがって、私は両方のポリゴンの平均データ値を面積分数を考慮して取る必要があります。その結果は通常のメッシュピクセルに格納されます。
私はウェブの周りを見渡し、これまでのところ満足のいくアプローチは見つけられませんでした。私はPython/Numpyを毎日の作業に使用しているので、それに固執したいと思います。これは可能ですか?パッケージshapelyは有望そうですが、私はどこから始めるべきか分かりません。 ポストギズのデータベースへのすべての移植は非常に手間がかかり、途中でかなりの障害があると思います。
に交差点の可能な数を設定しますあなたはグーグルでいますか?例えばhttp://pypi.python.org/pypi/Polygon/2.0.4 – katrielalex
実際、それはおそらく過剰です。ポリゴンが凸面に見えるので、交差部分が計算しやすくなります。例えば、 http://content.gpwiki.org/index.php/Polygon_Collision – katrielalex
各ピクセルの平均値はあまり明確ではありません...各ポリゴンに関連付けられた値はありますか?ポリゴンは、その総面積、またはそれらがカバーするピクセルの面積に基づいて加重平均されますか?あなたの問題は、余分なパッケージがなくてもnumpyで効率的に処理するのに十分単純です。不足している情報を入力してください。 – Jaime