GeoPandas 在 pandas 基础上加入几何类型,结合 shapely 实现地理空间数据分析,核心数据结构为 GeoSeries 与 GeoDataFrame。
主要能力:读写 Shapefile、GeoJSON、GeoPackage、PostGIS、Parquet 等格式,支持按 bbox 过滤读取;几何运算包括 buffer、simplify、centroid、convex hull 与仿射变换;空间分析包括 sjoin、sjoin_nearest、overlay、dissolve;提供静态图与交互式地图绘制,如 choropleth 与 explore。坐标参考系统(CRS)可查看、重投影与设置。
安装:uv pip install geopandas。可选依赖:folium(交互地图)、mapclassify(分级)、pyarrow(加速 I/O)、psycopg2 与 geoalchemy2(PostGIS)、contextily(底图)、cartopy(地图投影)。
基本用法示例:gdf = gpd.read_file("data.geojson") 读取数据,gdf.crs 查看坐标系,gdf.to_crs("EPSG:3857") 重投影,gdf.geometry.area 计算面积,gdf.to_file("output.gpkg") 保存。空间连接可用 gpd.sjoin(gdf1, gdf2, predicate='intersects'),叠置用 gpd.overlay(gdf1, gdf2, how='intersection'),按属性融合用 gdf.dissolve(by='region', aggfunc='sum')。绘制分级图:gdf.plot(column='population', cmap='YlOrRd', legend=True);交互地图:gdf.explore(column='population', legend=True).save('map.html')。
适用场景:地理数据加载与转换、空间连接与聚合、区域统计、地图可视化以及多源空间数据整合。
限制与注意事项:面积和距离计算应使用投影坐标系;空间操作前需检查并统一 CRS;操作前用 is_valid 校验几何;修改几何列时用 copy 避免副作用;简化时按需保留拓扑;建议使用 GeoPackage 替代 Shapefile;sjoin_nearest 应设置 max_distance 以提升性能。资料未提供收费、价格与平台信息。