用途:GeoPandas 用于在 Python 中处理地理空间矢量数据,核心类 GeoDataFrame(继承 pandas.DataFrame)和 GeoSeries(继承 pandas.Series)通过 Shapely 做几何运算、pyproj 管理坐标系、pyogrio/fiona 做文件 IO。
主要能力:读写 Shapefile、GeoJSON、GeoPackage、GeoParquet、FlatGeobuf、GML、GPX、PostGIS 等;空间连接 sjoin()、最近邻连接 sjoin_nearest()、叠加 overlay()、裁剪 clip()、融合 dissolve()、炸开 explode();几何谓词 intersects/contains/within 等、度量 distance/area/length;投影变换 set_crs()/to_crs()、estimate_utm_crs();缓冲区、简化、仿射变换;matplotlib 静态绘图与 folium 交互地图;空间索引 sindex 加速查询。
使用方式:import geopandas as gpd;用 gpd.read_file() 读数据,gpd.GeoDataFrame() 或 gpd.points_from_xy() 构造数据,gdf.to_file()/to_parquet()/to_postgis() 输出。核心依赖 pandas>=2.2.0、shapely>=2.1.0、pyproj>=3.7.0、pyogrio>=0.8、numpy>=2;可选 matplotlib、folium、mapclassify、fiona、pyarrow、geopy、SQLAlchemy+GeoAlchemy2、xyzservices。许可为 BSD-3-Clause。
限制与注意:set_crs() 仅标记 CRS 不转换坐标,to_crs() 才实际变换;面积/距离计算需先投影到适当投影坐标系,否则结果异常。sjoin 前需统一两表 CRS。Shapefile 字段名限 10 字符且不支持空值/日期时间,建议用 GeoPackage。多个 geometry 列名会报错。二元操作默认按索引对齐,可能产生意外 NaN。具体版本要求与 API 细节以官方文档为准。