用途
本技能用于指导使用 GeoPandas 1.1.4(2026-06-26 发布)处理平面矢量数据的 Python 工作流。数据以类似 pandas 的 GeoSeries 和 GeoDataFrame 对象表示。技能明确针对稳定的 1.1.4 版本,而非未发布的 1.2 文档。
主要能力
- 提供可复现环境说明:GeoPandas 1.1.4 要求 Python 3.10+,其 tagged 源码要求 NumPy >=1.24、pandas >=2.0、Shapely >=2.0、pyproj >=3.5、pyogrio >=0.7.2 以及 packaging。资料给出一个经冒烟测试的 Python 3.12 快照安装命令。
- 安全与隐私契约:将精确坐标、地址、地块边界、轨迹和小区域连接视为敏感数据;默认报告仅输出计数、类别、粗略范围和脱敏标识符;发布前需泛化。禁止自动加载 URL、云 URI、GDAL /vsi* 路径、归档或对地址进行地理编码,需获得明确批准并验证来源与哈希后,在隔离工作区暂存解包后的本地文件。
- 正确性门禁:涵盖身份与来源、几何状态、CRS 语义、单位与操作、变换质量、拓扑与精度、基数、输出契约等检查项。
- CRS 与反经线规则:GeoPandas 以 pyproj.CRS 存储 CRS;坐标数组使用传统 GIS (x, y) 顺序;to_crs() 变换顶点并假设源 CRS 中每段为直线,不适用于测地弧;跨越 ±180° 或投影边界的几何可能被错误包裹;不应将 Web Mercator 作为通用测量 CRS。
- 核心 API 决策:数据结构(多几何列、active_geometry_name、按索引对齐)、几何有效性与精度(is_valid、make_valid、set_precision、union_all)、连接与叠加(sjoin 谓词方向性、dwithin、sjoin_nearest、overlay、clip、dissolve)、I/O 与 Arrow 及 PostGIS(默认 pyogrio、GeoPackage、WKB GeoParquet、schema 1.0.0 与 1.1.0 差异、参数化 SQL)。
- 迁移清单:从 GeoPandas 0.14 或更早版本迁移时的变更点,包括 Shapely >=2 要求、pyogrio 替代 Fiona、API 重命名与移除项等。
- 可视化与探索:地图作为分析输出需标注单位、分类方法、缺失数据、归一化分母和日期;explore() 可能暴露属性并连接瓦片/CDN 服务器,建议先泛化并使用 tiles=None、tooltip=False、popup=False。
使用方式
技能附带一组本地 CLI,均为确定性、拒绝网络/归档路径、限制输入字节与要素数量、延迟导入以便 --help 无依赖、输出不含坐标或记录标识符的 JSON。
| CLI | 用途 |
|---|---|
| scripts/vector_inventory.py | 脱敏的本地矢量/GeoParquet 技术盘点 |
| scripts/crs_reprojection_plan.py | CRS 单位、轴、候选变换与反经线规划 |
| scripts/geometry_validity_report.py | 试运行有效性审计;可选修复到新 GeoPackage |
| scripts/spatial_join_audit.py | 谓词语义、重复 ID 与连接基数 |
| scripts/export_plan.py | 非执行的矢量/GeoParquet 导出契约 |
| scripts/sensitive_coordinates_checklist.py | 隐私/泛化发布门禁 |
示例命令:
python skills/geopandas/scripts/vector_inventory.py --help
python skills/geopandas/scripts/crs_reprojection_plan.py
--source-crs EPSG:4326 --target-crs EPSG:32631
python skills/geopandas/scripts/geometry_validity_report.py data.gpkg
python skills/geopandas/scripts/spatial_join_audit.py points.gpkg zones.gpkg
--predicate within --left-id point_id --right-id zone_id
python skills/geopandas/scripts/export_plan.py data.gpkg result.parquet
--format geoparquet --schema-version 1.0.0
--stable-id-column feature_id --id-unique-verified
python skills/geopandas/scripts/sensitive_coordinates_checklist.py
--public-output --precise-points --contains-addresses
适用场景
适用于使用 GeoPandas 进行平面矢量数据分析的 Python 工作流,包括 CRS 管理与重投影、几何有效性检查与修复、空间连接与叠加分析、矢量数据读写与导出、以及地图可视化与探索。也适用于从旧版本迁移到 GeoPandas 1.x 的项目。
限制
- 技能针对 GeoPandas 1.1.4,不适用于未发布的 1.2 文档。
- GeoPandas 是平面工具,地理坐标是角度单位,不能直接用于缓冲、距离、面积、最近连接、精度网格或容差。
- 驱动可用性与语义取决于已安装的 GDAL,而非仅 GeoPandas。
- 原生代码(GDAL/OGR、GEOS、PROJ、pyogrio、Shapely、pyproj 及其 wheel)构成信任边界,建议使用官方 wheel/conda-forge、记录原生版本、限制驱动并在沙箱中处理不可信数据。
- 资料未提供收费、价格或平台相关信息。