geopandas.GeoSeries.make_valid#

GeoSeries.make_valid()[来源]#

修复无效几何图形。

返回一个 GeoSeries,其中包含有效的几何图形。 如果输入的几何图形已经有效,则将保留它。在许多情况下,为了创建有效的几何图形,输入的几何图形必须分成多个部分或多个几何图形。如果几何图形必须拆分成多个相同类型的部分以使其有效,则将返回一个多部分几何图形(例如 MultiPolygon)。如果几何图形必须拆分成多个不同类型的部分以使其有效,则将返回一个 GeometryCollection。

示例

>>> from shapely.geometry import MultiPolygon, Polygon, LineString, Point
>>> s = geopandas.GeoSeries(
...     [
...         Polygon([(0, 0), (0, 2), (1, 1), (2, 2), (2, 0), (1, 1), (0, 0)]),
...         Polygon([(0, 2), (0, 1), (2, 0), (0, 0), (0, 2)]),
...         LineString([(0, 0), (1, 1), (1, 0)]),
...     ],
... )
>>> s
0    POLYGON ((0 0, 0 2, 1 1, 2 2, 2 0, 1 1, 0 0))
1              POLYGON ((0 2, 0 1, 2 0, 0 0, 0 2))
2                       LINESTRING (0 0, 1 1, 1 0)
dtype: geometry
>>> s.make_valid()
0    MULTIPOLYGON (((1 1, 0 0, 0 2, 1 1)), ((2 0, 1...
1    GEOMETRYCOLLECTION (POLYGON ((2 0, 0 0, 0 1, 2...
2                           LINESTRING (0 0, 1 1, 1 0)
dtype: geometry