我正在使用
我尝试了一种简单的方法:
GeoPandas
,有两个具有相同坐标参照系CRS
的GeoDataframes
。其中一个包含了一个多边形geometry
列,另一个包含了一个点geometry
列。我想检查哪些点在多边形内部。我尝试了一种简单的方法:
shape.contains(points)
这让我感到
> The indices of the two GeoSeries are different
我不理解这个信息。当我查看文档时,它说:
我们还可以逐行检查两个GeoSeries之间的差异。上面的GeoSeries具有不同的索引。我们可以基于索引值对两个GeoSeries进行对齐,并使用align=True比较具有相同索引的元素,或者忽略索引并根据其匹配顺序比较元素,使用align=False:
这些索引是什么?为什么要相互检查而不是geometry columns
?
在网上阅读到,我必须将我的几何对象转换为shapely
几何对象。但使用GeoPandas
的整个意义不就是可以对数据执行地理操作吗?
我对此感到困惑。如何检查shape
中的geometries
是否包含points
中的任何一个geometries
?
contains()
。有没有关于如何计算多边形中有多少点并将该数字附加到多边形数据框中每一行的提示?类似于gpd.sjoin(dfp, df_poly).groupBy('OBJECTID').count()
这样的东西。 - four-eyesdf_poly.merge(gpd.sjoin(dfp, df_poly).groupby("index_right").size().rename("points"), left_index=True, right_index=True, how="left")
将把点的数量放回多边形地理数据框中。 - Rob Raymond