在 Python 中从 MultiPolygon 中移除一个 Polygon
Remove a Polygon from a MultiPolygon with shapely in Python
我正在使用 shapely 库处理 Python 中的空间对象。给定一个 MultiPolygon,我想从中移除不包含障碍物的多边形。但是,我还没有找到一种方法来执行此操作,即使我可以仅通过使用 mapping 函数从 MultiPolygon 获取坐标。我已经知道要删除哪些多边形,因此识别它们没有问题。
您知道如何从给定的多边形中获取子多边形吗?
在此先感谢您的帮助!
MultiPolygon
可以直接从多边形列表中构建。此外,可以直接遍历包含给定多边形的多边形:
from shapely.geometry import Polygon, MultiPolygon
P1 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
P2 = Polygon([(2, 2), (3, 2), (3, 3), (2, 3)])
M = MultiPolygon([P1, P2])
for P in M:
print(P)
现在,这两个属性允许使用列表推导来过滤掉满足特定条件的多边形 some_condition
:
M2 = MultiPolygon([P for P in M if some_condition(P)])
我正在使用 shapely 库处理 Python 中的空间对象。给定一个 MultiPolygon,我想从中移除不包含障碍物的多边形。但是,我还没有找到一种方法来执行此操作,即使我可以仅通过使用 mapping 函数从 MultiPolygon 获取坐标。我已经知道要删除哪些多边形,因此识别它们没有问题。
您知道如何从给定的多边形中获取子多边形吗?
在此先感谢您的帮助!
MultiPolygon
可以直接从多边形列表中构建。此外,可以直接遍历包含给定多边形的多边形:
from shapely.geometry import Polygon, MultiPolygon
P1 = Polygon([(0, 0), (1, 0), (1, 1), (0, 1)])
P2 = Polygon([(2, 2), (3, 2), (3, 3), (2, 3)])
M = MultiPolygon([P1, P2])
for P in M:
print(P)
现在,这两个属性允许使用列表推导来过滤掉满足特定条件的多边形 some_condition
:
M2 = MultiPolygon([P for P in M if some_condition(P)])