【发布时间】:2011-01-24 00:15:55
【问题描述】:
我有两个大的多边形列表。
使用 python,我想获取列表 1 中的每个多边形,并找到它与列表 2 中的多边形的几何交集的结果(我正在使用 shapely 来执行此操作)。
所以对于列表 1 中的多边形 i,列表 2 中可能有几个多边形会与其相交。
问题是两个列表都很大,如果我只是嵌套两个循环并为每个循环运行交集命令 可能的一对多边形,这需要很长时间。我不确定在交集之前进行布尔测试是否会显着加快速度(例如,如果相交:返回交集)。
对我来说,排序或组织这两个多边形列表以形成交叉点的好方法是什么? 更高效?是否有适合这种情况的排序算法,我可以用 python 制作?
我对编程比较陌生,没有离散数学背景,所以如果你知道现有的算法 我应该使用,(我假设存在这些情况),请链接或给出一些可以帮助我的解释 在 python 中实现它。
另外,如果有更好的 StackExchange 站点来解决这个问题,请告诉我。我觉得它有点像一般 Python 编程、gis 和几何学的桥梁,所以我不太确定。
【问题讨论】:
-
多边形是凸的吗?
-
它们的顶点可能形成凸角或凹角,它们也有孔,但如果有帮助的话,我可以很容易地使用它们的边界框。
-
空间分区!边界框上的四叉树或体积 kd 树。
标签: python sorting geometry gis