基本上,我想知道 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) 会产生三个多边形的这些区域:
采用兰伯特方位角等面积投影 (laea) 可得到相同多边形的这些区域:
为什么两个投影中面积的关系不同?第一个 1:3 = 0.344;第二个 1:3 = 0.363;它们应该相同,因为它们都是等面积投影?!
这让我怀疑将小块与任一投影中的多边形区域进行比较是否合理。你有什么建议吗?
最佳答案
如果你关心实际的相对面积,计算瓷砖不会给你正确的答案。
如果您需要实际表面积,请使用椭球或球面几何,或以下想法。
蛮力矢量方法:将全局范围内的 0.25 度网格生成为多边形,与多边形相交,计算结果。每个多边形可以是笛卡尔正方形或实际的椭球正方形。为每个瓦片创建自定义理想投影,然后计算面积并将其存储为每个瓦片的属性。你只需要做一次:)
关于python - 在 Python 中从经纬度多边形计算面积,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13148037/