Gmt plot verify
Skill zhongpenggeo/gmt_plot_skill/.claude/skills/gmt_plot-verify
GMT 图件布局校验技能。调用 `scripts/verify_plot.py` 脚本,对绘制完成的 GMT 图件进行两项核心检测: 图例/色标/比例尺是否覆盖主图框边框,以及是否放置在数据高密度区域。输出结构化的校验报告, 作为后续图件修饰的反馈指导。触发场景:GMT 图件已生成、需要检查图件布局质量、修饰前需要定位具体排版问题。From its SKILL.md
npx -y skills add zhongpenggeo/gmt_plot_skill --skill gmt_plot-verifyAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
5.2 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
GMT 图件布局校验技能
你是一个地学图件排版审阅专家。核心流程:调用 scripts/verify_plot.py 脚本,对 GMT 图件(PNG/JPG)进行两项核心检测:
- 图例/色标/比例尺是否覆盖了主图框边框
- 图例/色标/比例尺是否放置在数据高密度区域
设计理念
与 gmt_plot:compare(依赖视觉模型做整体质量评估)不同,本技能使用程序化图像分析做像素级检测,专注于布局层面的两个关键问题:边框重叠和密度遮挡。这两项是 GMT 图件最常见且最影响专业性的布局问题。
前提条件
- 确认 PNG/JPG 图件文件已生成且可访问
plan.md已由gmt_plot:plan生成(用于判断图中应有哪些组件)- 依赖安装:
pip install opencv-python-headless numpy Pillow
检测逻辑
计划驱动
脚本解析 plan.md,只检测计划中明确提到的元素,避免将地图特征误判为组件:
| 场景 | 行为 |
|---|---|
| plan 提到色标 | 检测色标,未找到则报告 ❌ |
| plan 提到图例 | 检测图例,未找到则报告 ❌ |
| plan 提到比例尺 | 检测比例尺,未找到则报告 ❌ |
| plan 未提到图例 | 跳过图例检测 |
| 未提供 plan | 检测所有元素(兼容模式) |
检测项一:边框覆盖检测
- 检测主图框(内容边界扫描法,识别图框四条边)
- 检测色标条(梯度分析法,搜索主图框外三个方向)
- 检测图例(轮廓拟合法,搜索主图框内部带边框的浅色矩形)
- 检测比例尺(水平梯度法,搜索图框底部交替黑白矩形模式)
- 逐一检查每个已检测到的组件是否与主图框边框重叠(含 3px 边框/刻度容差)
报告内容:
- ❌ 不合格:组件与图框边框重叠
- ✅ 通过:组件与图框边框间有间距
检测项二:密度放置检测
- 主图框内部划分为 8×8 网格
- 每格计算颜色方差(60%)+ 边缘密度(40%)
- 对每个已检测到的组件,计算其中心所在格的密度百分位
- 密度 > 80 百分位 → ❌ 高密度区,可能遮挡重要数据
- 密度 > 65 百分位 → ⚠️ 中等密度区,建议优化
- 密度 ≤ 65 百分位 → ✅ 稀疏区,位置合适
- 输出四角密度对比,推荐最佳放置角落
执行流程
第一步:运行 verify_plot.py
python3 scripts/verify_plot.py <image_path> --plan plan.md [--output REPORT.md] [--output-dir DIR]
参数说明:
| 参数 | 默认值 | 说明 |
|---|---|---|
image | (必填) | 待校验的 GMT 图件路径(png/jpg) |
--plan plan.md | 建议提供 | 绘图计划文件,用于确定预期元素 |
--output REPORT.md | verify_report.md | 校验报告输出路径 |
--output-dir DIR | . | 输出目录 |
示例:
python3 scripts/verify_plot.py ./output.png --plan plan.md --output verify_report.md
第二步:解读校验报告
脚本执行成功后,读取校验报告,重点关注:
- 检查一(边框覆盖):如有 ❌,说明组件贴住了图框,需要在 GMT 中调整偏移参数
- 检查二(密度放置):如有 ❌/⚠️,说明组件可能遮挡了重要数据,需要移到数据稀疏的角落
- 四角密度对比:报告会给出四个角的密度值和建议最佳位置
然后将校验结果告知用户,供 gmt_plot:polish 阶段修改。
校验报告格式
## 图件布局校验报告
### 基本信息
- 校验图件: <路径>
- 图件尺寸: WxH px
- 校验时间: <时间戳>
### 元素检测结果
| 元素 | 计划预期 | 检测结果 |
|------|----------|----------|
| 色标 | ✅/— | ✅/❌ |
| 图例 | ✅/— | ✅/❌ |
| 比例尺 | ✅/— | ✅/❌ |
### 检查一:组件是否覆盖主图框边框
✅ 通过 / ❌ <问题描述> + 修改建议
### 检查二:组件是否放置在数据高密度区域
✅ 通过 / ⚠️❌ <问题描述> + 修改建议
### 主图框信息密度分布(8×8 网格)
<ASCII 密度热力图>
四角密度 + 建议最佳放置位置
错误处理
如果脚本执行失败:
- 确认
pip install opencv-python-headless numpy Pillow已安装 - 检查图件是否存在且可读(支持 PNG/JPG)
- 如果主图框检测不到(无边框图件),脚本会使用保守的 fallback 边界
- 如果某组件未检测到,该组件对应的检查会被跳过
使用限制
- 仅适用于 GMT 标准单幅主图布局
- 多子图场景检测可能不完整
- 建议图件分辨率不低于 300×300 像素
- 图件应有可见的边框线,否则主图框检测精度下降
- 不检测指北针、标题、经纬度标注等其他元素
What ships with it: 1 file
29.2 KB alongside SKILL.md, 1 of them executable
scripts/
- verify_plot.pyruns29.2 KB