簡體   English   中英

在Python中計算lat / lon多邊形的面積

[英]Calculating area from lat/lon polygons in Python

基本上,我想知道0.25°緯度x 0.25°lon貼片在世界各地的各種多邊形中適合多少次。 后者的尺寸約為3°lat x 10°lon或2°lat x 4°lon。

我有多邊形角的緯度/經度值,我正在計算它們的面積,如下所示:

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等面積投影(aea)會產生三個多邊形的這些區域:

  1. 240993868.90978813
  2. 699931593.1047173
  3. 212092562.5238676

采用Lambert Azimuthal等面積投影(laea)得到相同多邊形的這些區域:

  1. 148709452.69292444
  2. 409253749.5468254
  3. 106218747.36092758

為什么兩個投影中的區域之間的關系不同? 首先1:3 = 0.344; 第二個1:3 = 0.363; 它們應該是相同的,因為兩者都是相等的面積投影?!

這讓我想知道在任一投影中將小補丁與多邊形區域進行比較是否合理。 你有什么建議嗎?

如果你關心實際的相對面積,計算瓷磚將無法給你正確的答案。 如果您需要實際表面積,請使用橢圓體或球形幾何體,或下面的想法。

蠻力矢量方法:生成世界范圍的.25度網格作為多邊形,與多邊形相交,計算結果。 每個多邊形可以是笛卡爾方形或實際的橢圓形方形。 為每個圖塊創建自定義理想投影,然后計算並存儲該區域作為每個圖塊的屬性。 你只需要這樣做一次:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM