繁体   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