基本上,我想知道 0.25°lat 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

我从这里采取了方法:How to calculate the area of a polygon on the earth's surface using python?

现在的问题是,为了使多边形具有可比较的面积大小,我应该选择哪个等面积投影。小块的面积始终相同,无论它在这种投影中位于地球上的哪个位置。

采用 Albers 等面积投影 (aea) 会产生三个多边形的这些区域:
  • 240993868.90978813
  • 699931593.1047173
  • 212092562.5238676

  • 采用兰伯特方位角等面积投影 (laea) 可得到相同多边形的这些区域:
  • 148709452.69292444
  • 409253749.5468254
  • 106218747.36092758

  • 为什么两个投影中面积的关系不同?第一个 1:3 = 0.344;第二个 1:3 = 0.363;它们应该相同,因为它们都是等面积投影?!

    这让我怀疑将小块与任一投影中的多边形区域进行比较是否合理。你有什么建议吗?

    最佳答案

    如果你关心实际的相对面积,计算瓷砖不会给你正确的答案。
    如果您需要实际表面积,请使用椭球或球面几何,或以下想法。

    蛮力矢量方法:将全局范围内的 0.25 度网格生成为多边形,与多边形相交,计算结果。每个多边形可以是笛卡尔正方形或实际的椭球正方形。为每个瓦片创建自定义理想投影,然后计算面积并将其存储为每个瓦片的属性。你只需要做一次:)

    关于python - 在 Python 中从经纬度多边形计算面积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13148037/

    10-12 15:24