如何…#
删除所有情况下的重复几何#
在某些情况下,在几何列上使用标准的 Pandas drop_duplicates() 函数可能导致某些重复的几何图形未被删除。当用于几何列时,Pandas 函数比较每个几何对象的 WKB。这对几何的各个组成部分的顺序非常敏感——例如,一个从左到右的坐标的线应该等于一个从右到左的相同坐标的线,但它们的 WKB 表示将是不同的。对于多边形的环的顺序和多部分几何中的部分也是如此。
为了解决这个问题,首先使用normalize()方法将坐标按标准形式排序,然后使用标准的drop_duplicates()方法:
gdf["geometry"] = gdf.normalize()
gdf.drop_duplicates()
可以在以下示例中看到normalize()方法的效果:
>>> geopandas.GeoSeries([
... shapely.LineString([(0, 0), (1, 0), (2, 0)]),
... shapely.LineString([(2, 0), (1, 0), (0, 0)]),
... ]).normalize().to_wkt()
0 LINESTRING (0 0, 1 0, 2 0)
1 LINESTRING (0 0, 1 0, 2 0)
dtype: object