geopandas.clip#

geopandas.clip(gdf, mask, keep_geom_type=False)#

将点、线或多边形几何体剪裁到遮罩范围。

这两个层必须位于相同的坐标系(CRS)中。这个 gdf 将被剪裁到剪裁对象的全部范围。

如果遮罩中有多个面,则数据来自 gdf 将被剪裁到遮罩中所有多边形的总边界。

如果 mask 是具有四个元素的列表形式 (minx, miny, maxx, maxy) ,将使用更快的矩形裁剪算法。请注意,在边缘情况下,这可能会导致略有不同的结果,例如,如果将一条线缩减为一点,则该点可能不会返回。几何体以一种快速但可能肮脏的方式进行剪裁。不能保证输出是有效的。对于拓扑错误不会引发任何异常。

参数
gdfGeoDataFrame或GeoSeries

要剪裁到蒙版的矢量层(点、线、面)。

maskGeoDataFrame、GeoSeries、(多)面、类似列表

用于剪裁的多边形矢量层 gdf 。掩膜的几何被分解为一个几何要素,并与 gdf 。如果掩码是具有四个元素的类似列表 (minx, miny, maxx, maxy)clip 将使用更快的矩形裁剪 (clip_by_rect() ),可能会导致结果略有不同。

keep_geom_type布尔值,默认为FALSE

如果为True,则在产生多个几何图形类型或GeometryCollection的情况下仅返回原始类型的几何图形。如果为False,则返回所有生成的几何图形(可能是混合类型)。

退货
GeoDataFrame或GeoSeries

来自的矢量数据(点、线、面) gdf 从遮罩剪裁到多边形边界。

参见

GeoDataFrame.clip

等价的GeoDataFrame方法

GeoSeries.clip

等价地级数方法

示例

剪贴点(全球城市)与多边形(南美大陆):

>>> world = geopandas.read_file(
...     geopandas.datasets.get_path('naturalearth_lowres'))
>>> south_america = world[world['continent'] == "South America"]
>>> capitals = geopandas.read_file(
...     geopandas.datasets.get_path('naturalearth_cities'))
>>> capitals.shape
(202, 2)
>>> sa_capitals = geopandas.clip(capitals, south_america)
>>> sa_capitals.shape
(12, 2)