如何使用python计算地球表面上多边形的面积?

如何使用python计算地球表面上多边形的面积?,第1张

如何使用python计算地球表面上多边形的面积?

假设您以GeoJSON格式表示了科罗拉多州

{"type": "Polygon",  "coordinates": [[   [-102.05, 41.0],    [-102.05, 37.0],    [-109.05, 37.0],    [-109.05, 41.0] ]]}

所有坐标均为经度,纬度。您可以使用pyproj投影坐标,并使用Shapely查找任何投影多边形的面积:

co = {"type": "Polygon", "coordinates": [    [(-102.05, 41.0),     (-102.05, 37.0),     (-109.05, 37.0),     (-109.05, 41.0)]]}lon, lat = zip(*co['coordinates'][0])from pyproj import Projpa = Proj("+proj=aea +lat_1=37.0 +lat_2=41.0 +lat_0=39.0 +lon_0=-106.55")

这是一个以关注区域为中心并包围其关注区域的等面积投影。现在制作新的投影GeoJSON表示形式,将其转换为Shapely几何对象,并采用以下区域:

x, y = pa(lon, lat)cop = {"type": "Polygon", "coordinates": [zip(x, y)]}from shapely.geometry import shapeshape(cop).area  # 268952044107.43506

这是与被调查区域非常接近的近似值。对于更复杂的特征,您需要沿顶点之间的边缘进行采样,以获取准确的值。上面有关日期变更线等的所有警告均适用。如果您仅对区域感兴趣,则可以在投影之前将特征从日期线移开。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5674178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存