《生态地理遥感云计算》做成了一个 AI Skill,开源了!
重磅发布:我把《生态地理遥感云计算》做成了一个 AI Skill,开源了!
从 504 千字的纸质书,到 Agent 可执行的技能包——一本遥感云计算技术书的现代化重生

一、缘起:一本书,一个痛点
作为一名在地理信息云计算领域深耕多年的研究者和技术博主,我经常收到读者的一个问题:
GEE 的文档太零散了,我想系统地学习,但不知道从哪里开始。"
这句话我一直记在心里。于是,我和马天跃博士、李晶教授、杨荻教授一起,花了很长时间编写了《生态地理遥感云计算》这本书。全书 8 章、504 千字,从 GEE 平台概述到 JavaScript/Python 双 API 实战,从基础语法到高级案例,从 UI 开发到常见问题排查,力求成为 GEE 学习者最全的入门指南。
但书出版后,我又思考了一个新问题:
在 AI Agent 时代,一本静态的书,如何变成随时可调用的"活知识"?
传统的书本知识是"被动"的——你需要主动翻阅、记忆、理解。而 AI Agent 需要的知识是"主动"的——当它遇到遥感数据处理任务时,应该能立刻调用相关的方法、参数和最佳实践。
这就是 book-to-skill 这个工具的由来。
二、什么是 book-to-skill?
book-to-skill 是一个开源工具,它能把任何书籍或文档转换成 AI Agent 可直接使用的 Skill。
简单来说,它做的事情是:
- 提取:从 PDF/EPUB/DOCX 等文档中提取全文
- 分析:识别章节结构、核心框架、关键技术
- 结构化:将提取的内容转化为 Agent 可理解的技能文件
- 可执行:Agent 在遇到相关任务时,能精准调用对应的知识片段
这个过程不是简单地"总结"一本书,而是提取结构——保留作者的方法论、命名体系和操作指南,让 Agent 能够像一位受过训练的助手那样回答问题。
三、我的实践:把《生态地理遥感云计算》变成 Skill
我使用 book-to-skill 工具,将我编著的《生态地理遥感云计算》PDF 完整转换成了一个 GEE Skill,并开源在 GitHub 上。
转换过程
整个过程可以分为几个步骤:
第一步:PDF 提取
使用 book-to-skill 的 extract.py 脚本,从 412 页、43MB 的 PDF 中提取了约 40 万字符的全文,检测到 8 个章节,约 48K tokens 的文本量。
python scripts/extract.py "生态地理遥感云计算.pdf"
提取结果:
- 源文件:43.08 MB
- 页数:412 页
- 字数:36,367 词
- 估算 Token:~48K
- 检测章节:8 章
第二步:内容分析
阅读提取的全文后,我识别出了这本书的核心结构:
| 维度 | 内容 |
|---|---|
| 核心框架 | GEE 双 API 体系(JavaScript + Python) |
| 工作流 | 数据加载 → 预处理 → 分析 → 可视化 → 导出 |
| 数据集 | Landsat / MODIS / Sentinel 系列 |
| 技术模式 | 影像筛选、聚合、可视化、导出 |
| 常见问题 | 21 类典型错误及解决方案 |
第三步:生成 Skill 文件
按照 book-to-skill 的标准结构,生成了以下文件:
yanxingguang-gee/
+-- SKILL.md # 主 Skill 文件(核心框架 + 索引)
+-- chapters/
| +-- ch01-cloud-platforms.md # 第1章:云平台概述
| +-- ch02-gee-platform.md # 第2章:GEE 平台简介
| +-- ch03-js-syntax.md # 第3章:GEE 基础语法
| +-- ch04-tutorials.md # 第4章:使用教程
| +-- ch05-python-api.md # 第5章:Python API
| +-- ch06-ui-app.md # 第6章:UI 和 APP
| +-- ch07-troubleshooting.md # 第7章:常见问题
| +-- ch08-datasets.md # 第8章:云平台数据集
+-- glossary.md # 术语表
+-- patterns.md # 技术模式
+-- cheatsheet.md # API 速查表
第四步:撰写 README
为 Skill 编写了完整的 README.md,包含:
- 适用场景说明
- 章节索引表格
- 核心框架详解
- 卫星数据集速查表
- JavaScript/Python 代码示例
- 推荐阅读顺序
成果展示
完整的 Skill 仓库地址:xingguangYan/yanxingguang-gee-skill
四、实战案例:用这个 Skill 解决一个真实的遥感问题
光说不练假把式。下面我用这个 Skill 来解决一个实际的遥感分析问题——计算长江三角洲地区 2024 年春季的 NDVI 植被指数。
问题背景
长江三角洲是中国最重要的经济区之一,也是生态研究的热点区域。假设我们需要:
- 加载 2024 年 3-5 月的 Sentinel-2 影像
- 筛选云量小于 20% 的影像
- 计算研究区域(长三角)的平均 NDVI
- 可视化结果
使用 Skill 的过程
当我告诉 AI Agent:"帮我计算长江三角洲 2024 年春季的 NDVI"时,Agent 会:
- 读取 SKILL.md:了解到这是 GEE 遥感数据处理任务
- 查阅主题索引:找到"指数计算"指向 ch04 和 ch05
- 查阅数据集:从 ch08 知道 Sentinel-2 的路径是 COPERNICUS/S2_SR_HARMONIZED
- 查阅技术模式:从 patterns.md 知道筛选、聚合的标准写法
- 查阅速查表:从 cheatsheet.md 知道 NDVI 计算公式
下面是 Agent 根据 Skill 知识生成的完整代码:
JavaScript 方案
// ============================================
// 长江三角洲 2024 春季 NDVI 分析
// ============================================
// 1. 定义研究区域(长三角 bounding box)
var region = ee.Geometry.Rectangle([115.5, 29.5, 122.5, 33.5]);
// 2. 加载 Sentinel-2 影像集合
var s2 = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
// 时间筛选:2024年春季(3-5月)
.filterDate('2024-03-01', '2024-05-31')
// 空间筛选:限定在长三角区域
.filterBounds(region)
// 云量筛选:小于20%
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20));
// 3. 计算 NDVI
// NDVI = (NIR - Red) / (NIR + Red)
// Sentinel-2: NIR=B8, Red=B4
var ndviCollection = s2.map(function(image) {
var ndvi = image.normalizedDifference(['B8', 'B4']).rename('NDVI');
return image.addBands(ndvi);
});
// 4. 聚合:取中位数
var ndviMedian = ndviCollection.median();
// 5. 可视化参数
var ndviVis = {
min: -1,
max: 1,
palette: [
'FFFFFF', 'CE7E45', 'DF923D', 'F1B555',
'FCD163', '99B718', '74A501', '66A000',
'529400', '3E8601', '207401', '056201',
'004C00', '023B01', '012E01', '011D01',
'011301'
]
};
// 6. 添加到地图
Map.setCenter(120.5, 31.5, 8);
Map.addLayer(ndviMedian.select('NDVI'), ndviVis, 'NDVI 2024 Spring');
// 7. 统计长三角区域的 NDVI 描述性统计
var stats = ndviMedian.select('NDVI').reduceRegion({
reducer: ee.Reducer.mean()
.combine({
reducer2: ee.Reducer.median(),
sharedInputs: true
})
.combine({
reducer2: ee.Reducer.stdDev(),
sharedInputs: true
}),
geometry: region,
scale: 10,
maxPixels: 1e10
});
print('NDVI Statistics:', stats);
// 8. 导出结果
Export.image.toDrive({
image: ndviMedian.select('NDVI'),
description: 'Yangtze_Delta_NDVI_2024Spring',
region: region,
scale: 10,
maxPixels: 1e13
});
Python 方案(使用 geemap)
# ============================================
# 长江三角洲 2024 春季 NDVI 分析
# Python 方案(geemap)
# ============================================
import ee
import geemap
# 1. 初始化 Earth Engine
ee.Initialize()
# 2. 定义研究区域
region = ee.Geometry.Rectangle([115.5, 29.5, 122.5, 33.5])
# 3. 加载 Sentinel-2 影像集合
s2 = (ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
.filterDate('2024-03-01', '2024-05-31')
.filterBounds(region)
.filter(ee.Filter.lt('CLOUDY_PIXEL_PERCENTAGE', 20)))
# 4. 计算 NDVI 并聚合
ndvi = s2.map(lambda img: img.normalizedDifference(['B8', 'B4']).rename('NDVI')).median()
# 5. 创建交互式地图
Map = geemap.Map(center=[31.5, 120.5], zoom=8)
# 6. 添加 NDVI 图层
ndvi_vis = {
'min': -1,
'max': 1,
'palette': [
'FFFFFF', 'CE7E45', 'FCD163', '99B718',
'74A501', '529400', '3E8601', '011301'
]
}
Map.add_layer(ndvi.select('NDVI'), ndvi_vis, 'NDVI 2024 Spring')
# 7. 显示统计信息
stats = ndvi.select('NDVI').reduceRegion(
reducer=ee.Reducer.mean(),
geometry=region,
scale=10,
maxPixels=1e10
)
print('Mean NDVI:', stats.getInfo())
# 8. 显示地图
Map
代码解读
这段代码体现了 Skill 中提炼的几个关键技术模式:
-
数据加载模式(来自 ch08-datasets.md):
- 使用 COPERNICUS/S2_SR_HARMONIZED 路径加载 Sentinel-2
- Harmonized 版本消除了 2022 年 1 月后的光谱偏移
-
筛选模式(来自 patterns.md):
- .filterDate() 时间范围筛选
- .filterBounds() 空间范围筛选
- .filter(ee.Filter.lt(CLOUDY_PIXEL_PERCENTAGE, 20)) 云量筛选
-
指数计算模式(来自 ch04-tutorials.md):
- normalizedDifference([B8, B4]) 计算 NDVI
- Sentinel-2 的 NIR 波段是 B8,Red 波段是 B4
-
聚合模式(来自 ch04-tutorials.md):
- .median() 中位数聚合,减少异常值影响
-
可视化模式(来自 ch04-tutorials.md):
- 使用 ndviVis 字典定义颜色映射
- 从蓝色(水体/裸地)到深绿色的渐变色板
-
导出模式(来自 patterns.md):
- 先聚合为中位数影像,再导出
- 设置合适的 scale 和 maxPixels 参数
结果解读
运行上述代码后,你会得到:
- 一张交互式地图:展示长三角地区 2024 年春季的 NDVI 空间分布
- 统计信息:区域的平均 NDVI 值、中位数、标准差
- 一张导出影像:保存在 Google Drive 中,可用于后续分析
NDVI 值范围从 -1 到 1:
- > 0.6:茂密植被(森林、农田)
- 0.2 - 0.6:中等植被(草地、灌木)
- 0 - 0.2:稀疏植被(裸地、城市建成区)
- < 0:水体、云层、冰雪
五、这个 Skill 的价值在哪里?
1. 对 AI Agent 而言
传统上,AI Agent 面对遥感问题时,可能会给出笼统的回答。有了这个 Skill 后:
- 精准调用:Agent 能根据具体问题定位到对应的章节和函数
- 代码生成:直接生成可运行的 JavaScript/Python 代码
- 错误预防:引用 ch07 中的 21 类常见错误,提前规避
- 数据选择:从 ch08 的数据集速查表中选择正确的数据集路径
2. 对人类学习者而言
- 快速参考:不用翻 400 多页的书,直接看对应章节的摘要
- 代码模板:patterns.md 和 cheatsheet.md 提供了即用型代码模板
- 结构化学习:按推荐阅读顺序循序渐进
3. 对科研工作者而言
- 工作流复用:提取的遥感云计算工作流(加载→预处理→分析→可视化→导出)可直接套用到各种研究中
- 数据集速查:ch08 整理了 Landsat/MODIS/Sentinel 等主流数据集的 GEE 路径和分辨率
- 问题排查:ch07 的 21 类常见问题覆盖了 90% 以上的 GEE 使用场景
六、book-to-skill 工具的其他应用场景
这次我把《生态地理遥感云计算》做成了 Skill,但这只是 book-to-skill 的一个应用场景。这个工具可以处理任何类型的文档:
技术文档
- API 文档 → Agent 可执行的编程指导
- 框架教程 → 结构化学习路径
- 最佳实践指南 → 可复用的代码模式
学术论文
- 方法论论文 → 可复现的实验步骤
- 综述论文 → 结构化知识图谱
- 实验报告 → 参数配置参考
业务手册
- 操作手册 → 自动化工具指令
- 培训材料 → 智能助教知识
- 合规指南 → 自动检查规则
书籍
- 编程书籍 → 代码生成 Skill
- 方法论书籍 → 思维模型 Skill
- 教材 → 交互式学习 Skill
七、如何获取和使用这个 Skill?
获取 Skill
# 方式一:直接克隆仓库
git clone https://github.com/xingguangYan/yanxingguang-gee-skill.git
# 方式二:使用 book-to-skill 安装
python scripts/install-skill-from-github.py --repo xingguangYan/yanxingguang-gee-skill --path .
在 GitHub Copilot CLI 中使用
将 Skill 放到 ~/.copilot/skills/ 目录下:
cp -r yanxingguang-gee ~/.copilot/skills/yanxingguang-gee
然后重启 Copilot CLI,你就可以用自然语言提问了:
“帮我用 GEE 计算某地区的 NDVI”
“Sentinel-2 云量怎么筛选?”
“Landsat 8 的真彩色波段是哪个?”
在 Claude Code 中使用
将 Skill 放到 ~/.claude/skills/ 目录下:
cp -r yanxingguang-gee ~/.claude/skills/yanxingguang-gee
在 Amp 中使用
将 Skill 放到 ~/.agents/skills/ 目录下:
cp -r yanxingguang-gee ~/.agents/skills/yanxingguang-gee
八、未来展望
持续更新
这本书还在持续迭代中。未来我会:
- 补充更多案例:森林监测、水体提取、城市热岛分析等
- 扩展数据集:添加高分、风云等国产卫星数据
- 增加深度:机器学习分类、深度学习解译等进阶内容
社区贡献
欢迎所有人贡献:
- 发现错误或不准确的地方?提 Issue 或 PR
- 有新的 GEE 案例想加入?提交新的 chapter 文件
- 想翻译到其他语言?fork 后国际化
book-to-skill 生态
我希望更多技术书籍的作者能尝试用 book-to-skill 将自己的作品转化为 AI 时代的 Skill,让知识不再是静态的文字,而是可执行的智慧。
九、致谢
感谢本书的共同作者:马天跃博士、李晶教授、杨荻教授。
感谢 book-to-skill 的开源贡献者 virgiliojr94。
感谢所有 GEE 学习者和遥感科研工作者的支持与反馈。
十、结语
从一本 412 页、504 千字的纸质书,到一个可在 AI Agent 中随时调用的 Skill——这个转变不仅仅是形式的变化,更是知识传播方式的变革。
在 AI 时代,最好的知识不是被阅读的,而是被使用的。
如果你正在学习 GEE,或者需要使用遥感云计算技术进行研究,希望这个 Skill 能帮到你。也欢迎你体验 book-to-skill 工具,把你喜欢的技术书变成一个 Skill。
打赏
《生态地理遥感云计算》:北京航空航天大学出版社,2025
**
期待大家买书支持一下工作!现在已经上线了京东、淘宝和当当等多个网站,请大家自行购买。
**
🔗 相关链接
- Skill 仓库:xingguangYan/yanxingguang-gee-skill
- book-to-skill 工具:virgiliojr94/book-to-skill
- 《生态地理遥感云计算》:北京航空航天大学出版社,2025
- GEE Code Editor:code.earthengine.google.com
- geemap 文档:geemap.org
- PIE-Engine:engine.piesat.cn
如果你觉得这篇文章有用,欢迎 Star 和 Fork,也欢迎分享给正在学习遥感云计算的朋友!
更多推荐



所有评论(0)