SuperAPI AI 工具集

shapely-compute

数据与分析

查看项目

更新于 10-16 07:52

技能介绍

shapely-compute 是一个基于 Shapely 的计算几何命令行工具,用于在命令行中完成常见的几何计算任务。它通过一个 Python 脚本提供多个子命令,输入支持坐标字符串或 WKT 格式,输出统一为 JSON。

用途 该工具适用于需要快速进行几何创建、空间关系判断、测量和变换的场景,例如碰撞检测、点在多边形内判断、面积计算、缓冲区生成、形状组合与相减、边界框计算、路径简化等。

主要能力

  1. 创建几何对象:支持 point、line、polygon(可带孔洞)、multipoint、multilinestring、multipolygon。
  2. 布尔运算:intersection、union、difference、symmetric_difference、buffer、convex_hull、envelope、simplify。
  3. 空间谓词:contains、intersects、within、touches、crosses、disjoint、overlaps、equals、covers、covered_by,返回布尔值。
  4. 测量:area、length、centroid、bounds、exterior_ring,以及一次性返回全部测量的 all。
  5. 距离:计算两个几何对象之间的距离。
  6. 仿射变换:translate、rotate、scale、skew。
  7. 有效性校验与修复:validate 检查几何是否有效,makevalid 修复无效几何(如自相交)。
  8. 坐标提取:coords 提取几何坐标。
  9. WKT 解析:fromwkt 解析 WKT 并返回几何信息。

使用方式 所有命令通过 uv run python scripts/shapely_compute.py 调用。例如:

  • 创建多边形:uv run python scripts/shapely_compute.py create polygon --coords "0,0 1,0 1,1 0,1"
  • 求交集:uv run python scripts/shapely_compute.py op intersection --g1 "POLYGON(...)" --g2 "POLYGON(...)"
  • 判断包含:uv run python scripts/shapely_compute.py pred contains --g1 "POLYGON(...)" --g2 "POINT(0.5 0.5)"
  • 计算面积:uv run python scripts/shapely_compute.py measure area --geom "POLYGON(...)"
  • 计算距离:uv run python scripts/shapely_compute.py distance --g1 "POINT(0 0)" --g2 "POINT(3 4)"
  • 平移:uv run python scripts/shapely_compute.py transform translate --geom "..." --params "1,2"
  • 校验:uv run python scripts/shapely_compute.py validate --geom "POLYGON(...)"

输入格式支持坐标字符串(空格分隔的 x,y 对)和 WKT。输出 JSON 包含 wkt、type、bounds、is_valid、is_empty 以及测量相关字段。

适用场景

  • 碰撞检测:pred intersects
  • 点在多边形内:pred contains
  • 面积计算:measure area
  • 缓冲区:op buffer
  • 形状组合:op union
  • 形状相减:op difference
  • 边界框:op envelope 或 measure bounds
  • 路径简化:op simplify

限制 该工具依赖 Shapely 库,需通过 uv 运行 Python 脚本。具体安装步骤、依赖版本、平台兼容性、性能限制、错误处理细节以及是否支持三维坐标的完整操作等,资料中暂未提供。