SuperAPI AI 工具集

geopandas

数据与分析

查看项目

更新于 10-21 17:06

技能介绍

用途

本技能用于指导使用 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、记录原生版本、限制驱动并在沙箱中处理不可信数据。
  • 资料未提供收费、价格或平台相关信息。