3

基本的に、0.25°lat x 0.25°lon パッチが世界中にあるさまざまなポリゴンに何回収まるかを知りたいです。後者のサイズは、緯度 3° x 経度 10° または緯度 2° x 経度 4° です。

ポリゴンの角の緯度/経度の値があり、次のように面積を計算しています。

from pyproj import Proj
from shapely.geometry import shape

def getArea(coords):
    c = {"type": "Polygon",
    "coordinates": [[ (coords[0], coords[2]), (coords[1], coords[2]),
                      (coords[0], coords[3]), (coords[1], coords[3]) ]]}
    lon, lat = zip(*c['coordinates'][0])
    pro = Proj("+proj=aea")
    x, y = pro(lon, lat)
    poly = {"type": "Polygon", "coordinates": [zip(x, y)]}
    return shape(cop).area

私はここからアプローチを取りました: Pythonを使用して地球の表面上のポリゴンの面積を計算する方法は?

問題は、ポリゴンの面積サイズを同等にするために、どの等面積投影法を選択するかということです。小さなパッチの面積は、そのような投影で地球上のどこにあるかに関係なく、常に同じです。

Albers Equal Area Projection (aea) を使用すると、次の 3 つの多角形の領域が得られます。

  1. 240993868.90978813
  2. 699931593.1047173
  3. 212092562.5238676

Lambert Azimuthal Equal Area Projection (laea) を取得すると、同じポリゴンの次の領域が得られます。

  1. 148709452.69292444
  2. 409253749.5468254
  3. 106218747.36092758

2 つの図法で面積の関係が異なるのはなぜですか? 最初の 1:3 = 0.344; 秒 1:3 = 0.363; 両方とも等面積投影であるため、それらは同じである必要があります?!

そのため、小さなパッチをどちらかの投影のポリゴンの領域と比較することが正当かどうか疑問に思います。何かアドバイスはありますか?

4

1 に答える 1

2

実際の相対面積が気になる場合、タイルを数えても正しい答えは得られません。実際の表面積が必要な場合は、楕円体または球体のジオメトリ、または以下のアイデアを使用してください。

ブルート フォース ベクトル アプローチ: 世界規模の 0.25 度グリッドをポリゴンとして生成し、ポリゴンと交差し、結果をカウントします。各多角形は、デカルトの正方形または実際の楕円体の正方形にすることができます。タイルごとにカスタムの理想的な投影法を作成し、面積を計算して各タイルの属性として保存します。これは一度だけ行う必要があります:)

于 2012-11-03T09:34:32.430 に答える