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)