GeoPandas 地理空间分析
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/cn-geopandas。
技能介绍
要解决什么问题
做行政区叠加、点位落在哪个多边形、缓冲区与路网裁剪时,纯 pandas 只能处理属性表,几何关系与坐标系要么手写 shapely,要么在 GIS 桌面软件里点选导出。GeoPandas 把 GeoSeries / GeoDataFrame 和常见空间算子收进与 DataFrame 相近的 API,让加载、变换、分析、导出可以在同一套 Python 工作流里完成。
技能如何工作
- 数据结构:
GeoSeries存几何向量;GeoDataFrame在表格列里带几何列,其余列仍可按 pandas 方式筛选聚合。 - I/O:读写 Shapefile、GeoJSON、GeoPackage、PostGIS、Parquet 等;现代流程可优先 GeoPackage,大表读写可考虑
use_arrow=True。 - CRS:空间连接、叠加、面积/距离前需统一并检查 坐标参考系统;量测类计算宜在投影 CRS 下进行。
- 几何与空间分析:缓冲、简化、质心、凸包、仿射变换;
sjoin、叠加、融合、裁剪;可视化含静态图与交互式地图。 - 常见路径:加载 → CRS/几何校验 → 空间连接或聚合 → 导出;或多源矢量对齐后集成。
适用边界与注意点
- 空间操作前用
.is_valid检查几何;改几何列时用.copy()避免链式副作用。 - sjoin_nearest 建议设置
max_distance;读取阶段可用 bbox/mask 过滤,减少内存占用。 - 精度不敏感的分析可用
.simplify(),但需留意拓扑是否仍满足业务要求。
使用场景
- 将门店点位矢量与行政区划面做空间连接,批量判定每个点所属区县并写回属性表
- 从 PostGIS 拉取图层后在 Python 里做缓冲区、叠加与融合,再导出 GeoPackage 供下游使用
- 多供应商 Shapefile/GeoJSON 坐标系不一致时,先统一 CRS 再裁剪到同一研究区边界
- 按区划聚合指标后,用 GeoDataFrame 绘制分级统计图或交互式底图核对空间分布
适合人员
- 城市规划/交通分析岗,需在 notebook 里复现桌面 GIS 的叠加、裁剪而不反复手工导出
- 数据工程或 ETL 维护者,要把 Shapefile、GeoJSON、Parquet 与 PostGIS 在同一套 Python 流程里读写与转换
- 环境、公共卫生等研究岗,要对采样点或设施点做缓冲、空间连接并做面积距离等投影坐标下的量测
- 从 ArcGIS/QGIS 脚本化迁移的 GIS 分析人员,希望用 GeoDataFrame API 做 sjoin、overlay 与制图