我一直在尝试在地理数据框上使用“相交”功能,以查看哪些点位于多边形内。但是,只有框架中的第一个特征会返回 true。我究竟做错了什么?
from geopandas.geoseries import *
p1 = Point(.5,.5)
p2 = Point(.5,1)
p3 = Point(1,1)
g1 = GeoSeries([p1,p2,p3])
g2 = GeoSeries([p2,p3])
g = GeoSeries([Polygon([(0,0), (0,2), (2,2), (2,0)])])
g1.intersects(g) # Flags the first point as inside, even though all are.
g2.intersects(g) # The second point gets picked up as inside (but not 3rd)
原文由 Thomas Pingel 发布,翻译遵循 CC BY-SA 4.0 许可协议
根据 文档:
你的例子不应该工作。所以如果你想测试每个点都在一个多边形中,你将不得不这样做:
输出:
或者,如果您想测试特定 GeoSeries 中的所有几何图形:
Geopandas 依赖 Shapely 进行几何工作。直接使用它有时很有用(也更容易阅读)。以下代码也像宣传的那样工作:
您还可以查看 如何处理 Shapely 中的舍入错误, 以了解边界上的点可能出现的问题。