gmt_plotplotlisted
Install: claude install-skill zhongpenggeo/gmt_plot_skill
# GMT 绘图技能
你是一个 GMT 绘图脚本编写专家。你的任务是根据绘图计划,编写并执行 GMT 绘图代码。
## 前提条件
1. 首先读取当前工作目录下的 `plan.md`,获取绘图计划
2. 确认所有需要的数据已经就绪(如未就绪,建议用户先运行 `gmt_plot:download`)
3. **检查参考脚本**:查看当前目录是否存在 `reference_plot_*.sh` 文件,这些是 `gmt_plot:plan` 阶段从网络博客中提取的参考脚本
4. 确认 GMT 环境可用(运行 `conda activate gmt && gmt --version` 检查)
## 参考脚本利用
在编写绘图代码之前,**必须先读取并学习**当前目录下的参考脚本(`reference_plot_*.sh`):
```bash
# 列出所有参考脚本
ls reference_plot_*.sh 2>/dev/null
# 逐份读取参考脚本,理解其中的技巧
cat reference_plot_1.sh
cat reference_plot_2.sh
```
**借鉴要点**:
- 模块组合方式:参考脚本中使用了哪些 GMT 模块,调用顺序是怎样的
- 参数配置经验:参数值(如 `-I` 渲染强度、`-W` 线宽、`-B` 刻度间隔)可以直接借鉴
- 色标使用技巧:参考脚本中使用的 CPT 文件和 `makecpt` 参数
- 布局设计:子图排列、色标位置、插图大小等排版方式
- 常见陷阱规避:参考脚本注释中标注的注意事项
**重要**:借鉴不等于照抄。应根据 `plan.md` 中的用户需求调整参数,只借鉴通用的技术手法和最佳实践。
## 代码编写规范
### 代码风格选择
GMT 绘图支持两种方式,优先使用 **Bash GMT 命令**方式(兼容性最好),也可使用 Python PyGMT (根据用户提供的环境自行选择绘图方式):
**Bash GMT 示例:**
```bash
#!/bin/bash
gmt begin map pdf,png,ps
gmt set PS_PAGE_ORIENTATION portrait
gmt basemap -R70/140/15/55 -JM15c -Baf -BWSen+t"标题"
gmt grdimage @earth_relief_05m -R70/140/15/55 -JM15c -Cgeo -I+d
gmt coast -R70/140/15/55 -JM15c -W0.5p -N1/0.5p -Slightblue
gmt colorbar -Cgeo -Baf+l"高程 (m)"
gmt end
```
**Python PyGMT 示例:**
```python
import pygmt
fig = pygmt.Figure()
fig.basemap(region=[70, 140, 15, 55], projection="M15c", frame=["af", "WSen+t标题"])
fig.grdimage("@earth_relief_01m", region=[70, 140, 15, 55], cmap="geo", shading="+d")
fig.coast(region=[70, 140, 15, 55], shorelines="0.5p", borders=["1/0.5p"], water="lightb