为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中合并多边形形状文件

在 Python 中合并多边形形状文件

繁星淼淼 2022-09-27 10:52:52
我的 python3 脚本创建了一个变量,其值是形状文件列表,每个形状文件都是一个表示地理区域的多边形geometries_list[<shapefile.Shape at 0x7f060abfae48>, <shapefile.Shape at 0x7f05dcaf1cc0>, <shapefile.Shape at 0x7f060a86b278>, <shapefile.Shape at 0x7f05da470668>]我想“合并”多边形。我尝试了以下代码from functools import reducefrom shapely.geometry import Polygonunion = reduce(lambda x,y: x.union(y), geometries_list) 但它给出了结果:属性错误:“Shape”对象没有属性“并集”我看到另一种方法,它涉及创建一个形状文件编写器对象并连续覆盖列表上的每个多边形 https://gis.stackexchange.com/questions/103033/using-pyshp-to-merge-two-shapefiles 此方法可能有效,但每个覆盖都保存到磁盘
查看完整描述

1 回答

?
智慧大石

TA贡献1946条经验 获得超3个赞

也许值得一提的是,shapely.ops.unary_union是合并形状的更有效方法。


您可以通过对象的 GeoJSON 表示形式将对象转换为对象,并按如下方式合并它们。shapefile.Shapeshapely.Polygon


from shapely.geometry import shape

from shapely.geometry.ops import unary_union


union = unary_union([shape(s.__geo_interface__) for s in geometries_list])


查看完整回答
反对 回复 2022-09-27
  • 1 回答
  • 0 关注
  • 318 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信