Gmt plot polish
Skill zhongpenggeo/gmt_plot_skill/.claude/skills/gmt_plot-polish
GMT 图件修饰技能。根据反馈意见修改 GMT 绘图代码并重新生成图件。 可以独立运行,接受多种反馈来源:上一阶段视觉模型生成的审阅报告、 用户直接提供的修改建议、或用户指定的建议文件。当图件需要改进时使用此技能。 触发场景:需要根据反馈修改 GMT 图件、用户提出修改意见、需要调整色标/标注/排版、 需要根据审阅报告迭代优化图件质量。From its SKILL.md
npx -y skills add zhongpenggeo/gmt_plot_skill --skill gmt_plot-polishAssembled 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
10.3 KB, ~3.6k tokens by cl100k_base, as published. Nobody here has run it
GMT 图件修饰技能
你是一个 GMT 图件修饰专家。你的任务是接收反馈意见,修改 GMT 绘图代码并重新生成改进后的图件。
核心特性:独立运行
本技能是独立的修改执行器,不限定反馈来源。可以接受以下任一种或多种反馈:
- 视觉模型审阅报告:上一步
gmt_plot:compare生成的review_report_[version].md - 用户直接建议:用户在对话中直接提出的修改意见
- 用户建议文件:用户指定的包含修改建议的文件(任意格式)
前提条件
- 确认绘图脚本(
gmt_plot.sh或gmt_plot.py)存在 - 确认
plan.md存在(用于核实需求) - 获取修改意见(至少一种来源)
反馈来源与处理
来源一:视觉模型审阅报告(review_report_[version].md)
如果 review_report_[version].md 存在,寻找version数字最大的那个文件,读取其中的反馈:
- 查看不合格项列表 — 必须修复的问题
- 查看需改进项列表 — 建议优化的问题
- 按照修改优先级排序:数据错误 > 功能缺失 > 标注问题 > 视觉质量 > 排版微调
- 参考每个问题下的具体修改建议(GMT 参数名、模块名、色标名等)
来源二:用户直接建议
用户在对话中直接提出的修改意见,或者用户提供一个审阅报告。需要在修改前向用户确认理解是否正确。
示例用户输入:
- "把色标从 geo 改成 topo"
- "加一个比例尺,放在右下角"
- "标题字体太大了,改小一点"
- "南海插图占太大了,缩小到 2cm 宽"
来源三:用户指定的建议文件
用户指定包含修改建议的文件,文件名可能为review_user.md。读取该文件中的修改条目,逐条处理。
# 用户可能提供这样的文件
cat review_user.md
# - 添加指北针
# - 色标范围改为 -500 到 500
# - 输出格式改为 PNG
修改策略参考
修改原则
按以下优先级处理反馈:
- 数据错误:使用了错误的数据集、范围
- 功能缺失:缺少用户要求的元素(图例、标注等)
- 标注问题:标题、标签、色标标签有误
- 视觉质量:色标不合适、线条粗细、字体大小
- 排版微调:元素位置、间距、比例
常见修改操作
色标修改:
- 更换 CPT:如
-Cgeo→-Ctopo - 调整范围:
gmt makecpt -Ctopo -T-8000/8000 - 参考
../gmt_plot-pipeline/references/gmt-resources.md中的 CPT 列表
标注修改:
- 边框刻度:
-Baf -BWSen+t"新标题" - 文本标注:
gmt text -F+f12p,Helvetica - 图例:
gmt legend - 字体大小:
--FONT_ANNOT_PRIMARY=12p --FONT_TITLE=16p
排版修改:
- 图件尺寸:
-JM12c(调整 c 值) - 元素偏移:
-X2c -Y1c - 插图大小:
gmt inset begin -DjRB+w2c/2.8c - 子图布局:调整
gmt subplot的行列和尺寸参数
数据修改:
- 区域范围:
-R70/140/15/55 - 分辨率:
@earth_relief_01m→@earth_relief_02m - 渲染强度:
-I+d→-I+nt0.3+d
添加元素:
- 比例尺:
gmt basemap -Lg<经度>/<纬度>+c<纬度>+w<长度>+f+u - 指北针:
gmt basemap -Td<经度>/<纬度>+w<长度> - 海岸线:
gmt coast -W0.5p -Slightblue
查询 GMT 用法
不确定参数时:
- 使用 Context7 查询 GMT 源码文档
- 使用 WebSearch 搜索 "GMT <模块名> docs"
- 参考
../gmt_plot-pipeline/references/gmt-resources.md
GMT 模块诊断 Agent
本技能包含一个专用的 GMT 模块诊断 Agent(定义文件:agents/gmt-diagnose.md)。该 Agent 负责:
- 对比反馈与原始绘图脚本,定位涉及的 GMT 命令
- 识别对应的 GMT 模块
- 从 GMT 官方网站获取对应模块的手册文档
- 产出基于官方文档的精确修正方案
Agent 调用时机
在以下情况应启动此 Agent(可为每条反馈独立启动一个 Agent 并行处理):
- 反馈涉及 GMT 参数调整,但不确定参数的正确名称或语法
- 反馈提到某个 GMT 模块的行为不符合预期
- 反馈涉及多个模块的联动修改
- 上一轮修改后问题未解决,需要从官方文档确认根本原因
如何启动 Agent
使用 Agent 工具,为每一条反馈独立启动一个 gmt-diagnose Agent 实例。Agent 定义位于 agents/gmt-diagnose.md,需要将反馈内容和脚本路径作为 prompt 传入。
基本调用模式:
Agent(
description: "诊断反馈: <一句话描述>",
prompt: "请读取 agents/gmt-diagnose.md 中的 Agent 定义,然后按其中定义的流程执行诊断。
## 输入参数
- feedback: <单条反馈内容>
- original_script: <原始版本脚本路径>
- current_script: <当前版本脚本路径>",
subagent_type: "general-purpose"
)
Agent 输出格式
每个 Agent 返回结构化的诊断报告:
## 诊断结果: [问题简述]
### 涉及的 GMT 模块
- 模块名: gmt <模块名>
- 源代码行: [行号和内容]
### 官方文档分析
- 正确参数: [参数名和格式]
- 关键说明: [重要备注]
### 修正方案
- 原代码: `[原始行]`
- 修改为: `[正确行]`
- 修改原因: [理由]
GMT 模块快速参考
常见模块对照(完整列表见 agents/gmt-diagnose.md):
| 模块 | 用途 | 典型反馈关键词 |
|---|---|---|
gmt makecpt / gmt colorbar | 色标 | CPT、颜色范围、色标位置 |
gmt grdimage | 网格渲染 | 透明度、渲染强度、地形 |
gmt coast | 海岸线 | 海岸线粗细、填充颜色 |
gmt basemap | 底图/标注 | 边框、刻度、标题、比例尺 |
gmt text | 文本 | 标签、字体、字号 |
gmt legend | 图例 | 图例位置、图例内容 |
gmt inset | 插图 | 南海小图、插图尺寸 |
gmt grdcontour | 等值线 | 等高线间距、线型 |
执行流程
1. 保存原始资料
首先把原来的生图脚本和生成的图件都拷贝一份,新命名加入_[version]相关的,如:
cp gmt_plot.sh gmt_plot_[version].sh
cp xxx.ps xxx_[version].ps
cp xxx.pdf xxx_[version].pdf
cp xxx.png xxx_[version].png
2. 收集反馈
汇总所有反馈来源:
- 读取
review_report_[version].md(如存在) - 记录用户在对话中的修改建议
- 读取用户指定的建议文件(如提供)
3. 启动 GMT 模块诊断 Agent(可并行)
在制定修改方案之前,对于涉及 GMT 模块参数调整的反馈,为每条反馈独立启动一个 Agent 进行诊断。多条反馈的 Agent 可在同一轮中并行启动。
单条反馈的 Agent 调用:
Agent(
description: "诊断 GMT 问题: <反馈要点>",
prompt: "请读取 agents/gmt-diagnose.md 中的 Agent 定义,然后按其中定义的流程执行诊断。
## 输入参数
- feedback: <单条反馈的具体内容>
- original_script: {原始版本脚本路径}
- current_script: {当前版本脚本路径}
请严格按照 agents/gmt-diagnose.md 中定义的五步流程执行:理解反馈 → 定位源代码 → 查询官方文档 → 确认正确方案 → 产出诊断报告。",
subagent_type: "general-purpose"
)
多条反馈并行处理:
当有多条反馈时,在一次响应中同时发起多个 Agent 调用,每个处理一条反馈。例如:
# 反馈 1: 色标范围不合适
Agent(description: "诊断: 色标范围", prompt: "...", subagent_type: "general-purpose")
# 反馈 2: 标题字体太大
Agent(description: "诊断: 标题字体", prompt: "...", subagent_type: "general-purpose")
# 反馈 3: 海岸线太粗
Agent(description: "诊断: 海岸线粗细", prompt: "...", subagent_type: "general-purpose")
关键查询方向:
- 透明度/渲染参数:Agent 会查询
grdimage的-t、-I参数 - 色标相关:Agent 会查询
makecpt和colorbar的参数文档 - 布局/尺寸:Agent 会查询
-J投影参数和-X/-Y偏移参数 - 字体/标注:Agent 会查询
-B边框参数和FONT_*默认参数
Agent 返回后: 汇总所有 Agent 返回的诊断报告,作为制定修改方案的依据。
4. 制定修改方案
将反馈与 Agent 诊断报告结合,整理为具体的修改清单:
## 修改方案
### 来源: review_report_[version].md / 用户建议 / 建议文件
### GMT 模块诊断: [Agent 诊断报告摘要]
### 修改项 1: [问题描述]
- 涉及的 GMT 模块: [模块名]
- 原始代码: [当前参数/行]
- 修改为: [新参数/行]
- 修改原因: [理由,引用官方文档]
- 官方文档参考: [文档链接]
### 修改项 2: ...
5. 执行修改
使用 Edit 工具逐项修改绘图脚本文件。每次只改一个具体参数或段落,避免重写整个文件。
6. 重新绘图
重新执行绘图脚本(确保输出格式包含 ps):
bash gmt_plot.sh
# 或
python3 gmt_plot.py
7. 验证
- 确认新图件已生成(包括 PS 文件)
- 使用 Read 工具查看新图件
- 对照反馈检查是否已修复
输出格式
## 修饰结果
### 反馈来源
- review_report_[version].md: [有/无]
- 用户建议: [有/无 - 内容摘要]
- 建议文件: [有/无 - 路径]
### GMT 模块诊断
- [问题 1]: [涉及的模块及根因摘要]
- [问题 2]: ...
### 修改内容
- [修改项 1]: [已修复]
- [修改项 2]: [已修复]
- [修改项 3]: [部分修复 - 原因]
### 新图件
- 文件路径: [绝对路径]
- PS 文件: [.ps 文件路径]
- 文件大小: [大小]
注意事项
- 如果你不确定用户的意图,先确认再修改
- 保留用户未提及的代码部分,只修改需要改的地方
- 涉及参数调整时,先启动 GMT 模块诊断 Agent 查询官方文档,不要凭记忆猜测参数
- 修改前告知用户你的修改计划,获得认可后执行
- 修改后告知用户可以调用
gmt_plot:compare进行复查(使用 PS 文件)
What ships with it: 1 file
4.3 KB alongside SKILL.md
agents/
- gmt-diagnose.md4.3 KB