python怎么来算面积_如何使用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 Proj

pa = 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 shape

shape(cop).area # 268952044107.43506

这是非常接近于被调查的地区。对于更复杂的功能,您需要在顶点之间的边缘进行采样,以获得准确的值。关于数据线等上方的所有注意事项都适用。如果您只对区域感兴趣,则可以在投影之前将您的功能从日期线转换出去。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值