欢迎光临
我们一直在努力

从自然语言到科研报告:全自动Google Earth Engine遥感分析智能助手

从自然语言到科研报告:我用 Codex 打造了一个全自动遥感分析助手

引言:遥感分析的“最后一公里”困境

作为一名经常使用 Google Earth Engine(GEE)进行遥感研究的开发者,我深知这个平台有多么强大——海量的公开遥感数据、云端强大的计算能力、丰富的算法库……但与此同时在这里插入图片描述
,我也深刻体会到一个痛点:从“我有一个研究想法”到“拿到完整的分析结果和报告”,中间隔着太多重复性劳动。

每次开始一个新的分析任务,流程几乎是固定的:

  • 打开 GEE Code Editor,写一段 JavaScript 或 Python 代码
  • 加载数据集、定义 ROI(研究区域)、设置时间范围
  • 写云掩膜函数、做影像合成
  • 计算指数、跑分类器或做变化检测
  • 导出 GeoTIFF 和 CSV
  • 手动整理结果、写实验报告
  • 这套流程我重复了无数次。更让人沮丧的是,80% 的代码都是模板化的——换一个地点、换一个时间、换一种指数,本质上只是改几个参数而已。

    于是我开始思考:能不能让 AI 帮我完成这一切?

    这个念头最终催生了 GEE AutoLab——一个基于 Codex 开发的全自动遥感分析 Agent。

    什么是 GEE AutoLab?

    GEE AutoLab 是一个基于 Google Earth Engine 的全自动遥感分析流水线工具。它的核心理念极其简单:

    用户只需输入一句话(时间 + 地点 + 任务),系统自动完成数据检索 → GEE 脚本生成 → 指数/分类/变化检测分析 → GeoTIFF/CSV 导出 → 实验报告生成的全流程

    简单来说,从自然语言到完整的科研报告,一键完成。

    为什么选择 Codex?

    在决定如何构建这个工具时,我面临一个核心问题:如何将用户的自然语言描述,转化为可执行的 GEE 代码?

    传统的方法是写一个复杂的规则引擎,用正则表达式和关键词匹配来解析用户输入。但这种方法有两个致命缺陷:

  • 维护成本极高——每增加一种任务类型、每增加一个数据集,都要写一堆匹配规则
  • 泛化能力差——用户表达同一需求的自然语言千变万化,规则引擎根本覆盖不完
  • 而 Codex(以及后来的 GPT 系列模型)给了我一个全新的思路:与其手工编写解析规则,不如让 LLM 来理解用户的意图。

    Codex 的核心优势在于:

    • 代码生成能力:Codex 在大量公开代码上训练过,对 GEE 的 JavaScript/Python API 有很好的理解
    • 自然语言理解:能够从用户的自然语言描述中提取关键参数(地点、时间、任务类型、分类器选择等)
    • 灵活性:不需要为每种任务类型单独写解析器,模型本身就能理解任务的语义

    基于这些考虑,我决定以 Codex 作为 GEE AutoLab 的“大脑”,负责自然语言理解和 GEE 代码生成。

    核心功能

    1. 零代码操作:一句话启动科研

    GEE AutoLab 最核心的体验就是零代码。用户不需要写任何 GEE 代码,只需要用自然语言描述自己的研究需求:

    # 计算植被指数
    python scripts/run_pipeline.py "在武汉市,2023年,计算NDVI和EVI"

    # 土地覆盖分类
    python scripts/run_pipeline.py "黑龙江,2022年,土地覆盖分类,Random Forest"

    # 变化检测
    python scripts/run_pipeline.py "云南省,2018-2023年,森林变化检测"

    # 时间序列分析
    python scripts/run_pipeline.py "长江流域,2000-2023年,NDVI时间序列趋势分析"

    系统会自动完成参数补全——如果用户没有指定某些参数(比如云量阈值、分辨率、分类器类型等),系统会使用智能默认值。

    2. 12 大类分析任务全覆盖

    GEE AutoLab 目前支持 12 大类遥感分析任务:

    类别具体任务
    植被指数分析 NDVI, EVI, NDWI, MNDWI, NDBI, NDMI, SAVI, GCI, RECI, NBR, PSRI, SIPI, ARVI, GNDVI, NDRE, MSAVI(16+种指数)
    水体与湿地分析 水体提取、面积统计、湿地分类、岸线变化
    土地覆盖分类 Random Forest, CART, SVM, Gradient Boosted Trees,含精度评估
    变化检测 LandTrendr, CCDC, 双期差分检测, 光谱角, PCA 变化检测
    时间序列分析 年度/月度合成、趋势分析、异常检测、物候参数
    城市与夜光分析 城市扩张、不透水面、NPP-VIIRS 夜光分析、城市热岛
    森林与碳汇分析 森林覆盖、扰动检测、生物量估算、碳储量计算
    灾害监测 MODIS/VIIRS 火点检测、洪水制图、旱情监测、滑坡检测
    地形与DEM分析 高程、坡度/坡向、流域划分、地形指数
    气象与气候分析 降水、气温、蒸散量、干旱指数
    SAR 分析 Sentinel-1 GRD、洪水检测、船只检测、土壤湿度
    综合统计与导出 面积统计、分区统计、CSV 导出、图表生成

    3. 全面的数据源支持

    GEE AutoLab 完整支持 50+ 个 GEE 公开数据集,涵盖光学、SAR、气候、地形、夜光等各类数据:

    • 光学数据:Sentinel-2 MSI SR(10m)、Landsat 8-9 OLI/TIRS SR(30m)、MODIS(250-500m)
    • SAR 数据:Sentinel-1 GRD(10m)、ALOS PALSAR(25m)
    • 气候数据:GPM IMERG(10km)、ERA5(11km)、CHIRPS(5km)、GRIDMET(4km)
    • 土地覆盖:ESA WorldCover(10m)、Hansen Global Forest(30m)、JRC Global Surface Water(30m)
    • 地形数据:SRTM DEM(30m)、Copernicus DEM(30m)、NASADEM(30m)
    • 夜光数据:NPP-VIIRS(500m)、DMSP-OLS(1km)

    系统还会根据任务类型和分辨率需求智能自动选择最合适的数据集。

    4. 全自动导出与报告生成

    分析完成后,GEE AutoLab 会自动导出多种格式的结果:

    • GeoTIFF:云优化栅格导出
    • CSV:统计表格和时间序列数据
    • Shapefile/GeoJSON:矢量分析结果
    • PNG/JPG:可视化缩略图

    更重要的是,系统会自动生成一份完整的实验报告(Markdown/HTML 格式),包含:

    • 研究区域概述
    • 数据来源文档
    • 方法学描述
    • 参数配置记录
    • 结果统计与分析
    • 精度评估(分类任务)
    • 图表与可视化
    • 局限性与改进建议

    技术架构

    GEE AutoLab 的整体架构可以分为以下几个核心模块:

    用户输入(自然语言)

    task_parser ← 解析地点、时间、任务、参数

    generate_gee ← 生成 GEE JavaScript/Python 代码

    run_pipeline ← 协调全流程执行

    generate_report ← 生成 MD/HTML 报告

    最终输出:GeoTIFF + CSV + 精度评估 + 图表 + 实验报告

    核心模块详解

    1. task_parser(自然语言解析器)

    这是整个系统的“入口”。task_parser 负责从用户的自然语言输入中提取关键参数:

    • 地理位置(location)
    • 时间范围(start_date / end_date)
    • 任务类型(tasks)
    • 数据源(datasets)
    • 其他参数(分类器类型、云量阈值、分辨率等)

    解析器内置了丰富的关键词映射表,能够识别 12 大类任务和 50+ 数据集的别名。缺失的参数会自动使用默认值补全。

    2. generate_gee(GEE 代码生成器)

    这是 Codex 发挥核心作用的地方。generate_gee 根据解析后的参数,生成完整的 GEE Python 脚本。生成的脚本包含:

    • GEE 初始化和认证
    • ROI(研究区域)定义
    • 数据加载和预处理(云掩膜、滤波、合成)
    • 分析任务执行(指数计算、分类、变化检测等)
    • 结果导出(GeoTIFF、CSV)

    生成的代码是可直接在 GEE 环境中执行的完整脚本,用户也可以选择只生成代码而不执行(–code-only 模式)。

    3. run_pipeline(流水线协调器)

    run_pipeline 是整个系统的“指挥中心”,负责协调 7 个步骤的完整执行流程:

  • 解析用户输入
  • 确定研究区域(ROI)
  • 选择数据源
  • 预处理(云掩膜、裁剪、合成)
  • 生成分析计划
  • 生成 GEE 脚本
  • 生成实验报告
  • 4. generate_report(报告生成器)

    根据分析结果和参数配置,自动生成结构化的科研报告。报告模板位于 templates/report.md,用户可以自由定制。

    项目结构

    GEE-AutoLab/
    ├── SKILL.md # Skill 定义(Codex)
    ├── README.md / README_CN.md # 中英文文档
    ├── LICENSE / CITATION.cff
    ├── requirements.txt # Python 依赖
    ├── scripts/
    │ ├── run_pipeline.py # 主入口
    │ ├── task_parser.py # 自然语言解析器
    │ ├── generate_gee.py # GEE 代码生成器
    │ ├── generate_report.py # 报告生成器
    │ └── check_gee.py # 环境检查
    ├── templates/
    │ └── report.md # 报告模板
    ├── references/
    │ └── data_sources.md # 数据集参考(50+ 数据集)
    └── examples/
    ├── ndvi_analysis.md
    ├── classification.md
    ├── change_detection.md
    └── timeseries.md

    使用示例

    示例 1:植被指数分析

    python scripts/run_pipeline.py "在武汉市,2023年,计算NDVI和EVI" –output result_wuhan

    系统会自动:

    • 选择 Sentinel-2 SR(10m 分辨率)作为数据源
    • 加载 2023 年全年的影像
    • 应用云掩膜和中值合成
    • 计算 NDVI 和 EVI
    • 导出 GeoTIFF 和统计 CSV
    • 生成包含均值 NDVI、植被覆盖率等信息的报告

    示例 2:土地覆盖分类

    python scripts/run_pipeline.py "黑龙江,2022年,土地覆盖分类,Random Forest" –output result_heilongjiang

    系统会自动:

    • 选择合适的 Landsat 或 Sentinel 数据
    • 提取训练样本(或使用内置样本)
    • 训练 Random Forest 分类器(100 棵树)
    • 执行分类并评估精度
    • 输出分类结果 GeoTIFF 和精度评估表(总体精度、Kappa 系数等)

    示例 3:变化检测

    python scripts/run_pipeline.py "云南省,2018-2023年,森林变化检测" –output result_yunnan_forest

    系统会自动:

    • 加载两个时间段的影像
    • 计算差值或应用 LandTrendr/CCDC 算法
    • 检测森林变化区域
    • 导出变化图斑和统计结果

    快捷模式

    GEE AutoLab 还提供了几种快捷模式:

    # 安静模式 – 隐藏详细进度信息
    python scripts/run_pipeline.py "…" –output output_dir -q

    # 仅生成 GEE 代码(不执行)
    python scripts/run_pipeline.py "…" –output output_dir –code-only

    # 仅从已有结果生成报告
    python scripts/run_pipeline.py "…" –output output_dir –report-only

    应用场景

    GEE AutoLab 可以广泛应用于以下场景:

  • 科研快速验证:研究人员可以用自然语言快速验证研究假设,不需要花时间写代码
  • 教学演示:在遥感课程中,学生可以用自然语言探索不同指数和算法的效果
  • 跨学科研究:生态学、城市规划、农业等领域的专家不需要精通 GEE 编程也能进行遥感分析
  • 批量分析:通过脚本化调用,可以批量处理多个区域、多个时间段的相同分析任务
  • 总结与展望

    GEE AutoLab 是基于 Codex 开发的一次尝试,目标是把遥感分析从“写代码”变成“说话”。目前它已经能够:

    • 支持 12 大类、数十种具体的遥感分析任务
    • 覆盖 50+ 个 GEE 公开数据集
    • 从自然语言到完整科研报告的全自动流水线
    • 导出 GeoTIFF、CSV、Shapefile 等多种格式

    当然,这个项目还有很多可以改进的地方:

    • 更精准的 ROI 识别:目前对地理位置的解析还不够智能,未来可以集成地理编码 API
    • 更丰富的报告模板:支持更多学术期刊格式
    • 交互式分析:在生成报告后支持用户追问和调整
    • 更深的 Codex 集成:让模型不仅能生成代码,还能根据执行结果进行自我修正

    如果你对这个项目感兴趣,欢迎访问 GitHub 仓库:

    https://github.com/xingguangYan/GEE-AutoLab

    如果你有好的想法或改进建议,也欢迎提交 Pull Request。项目采用 MIT 许可证,完全开源免费。


    最后,感谢 Google Earth Engine 提供的强大云计算平台,感谢 SAT-IO 社区扩展的数据集目录,感谢 ESA、NASA、USGS、JAXA 等机构提供的开放地球观测数据。

    赞(0)
    未经允许不得转载:171主机测评 » 从自然语言到科研报告:全自动Google Earth Engine遥感分析智能助手
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址