【发布时间】:2025-12-06 03:05:02
【问题描述】:
我有几个(M 的顺序)点 [(x0,y0),...,(xn,yn)]。我的六边形数量也有限。我想找到每个点落在哪个六边形中。使用 shapely 可以一次完成 1 个点,因此下面的循环可以完成这项工作。但是有没有其他方法可以更快地做到这一点?
from shapely.geometry import Point
from shapely.geometry.polygon import Polygon
zones = np.zeros(n)-1
for j,p in enumerate(points):
point = Point(p)
for i in range(len(poly_hex)): #poly_hex = list of hexagonal polygones
polygon = Polygon(poly_hex[i])
if polygon.contains(point):
zones[j] = int(i)
break
【问题讨论】:
-
这件事会被多次(并且经常)完成吗?
-
您可以使用
multiprocessing库并行运行多个进程,因为检查点是否在多边形内是一项独立的任务。 -
它们是正六边形吗?它们的大小都一样吗?它们在六边形网格中吗?它们可以相交吗?
-
是的。这是一个六边形网格。不,没有路口。
标签: python coordinates polygon point shapely