GEE实战:哨兵2号SR数据从导入到年度合成的全流程避坑指南
第一次打开Google Earth Engine(GEE)的代码编辑器时,看到满屏的JavaScript代码和陌生的API文档,大多数遥感专业的新手都会感到手足无措。特别是当导师给出一段"看似简单"的哨兵数据下载代码,你却接连遇到Geometry错误、导出失败、波段显示异常等问题时,那种挫败感尤为强烈。本文将从一个真实的研究场景出发,带你一步步理解每个操作背后的原理,避开那些教科书上不会提及的"坑"。
1. 环境准备与数据选择
在开始处理哨兵数据前,我们需要明确一个关键选择:使用TOA反射率数据(COPERNICUS/S2)还是地表反射率数据(COPERNICUS/S2_SR)?这两种数据源看似相似,实则有着本质区别:
| 特性 | S2 (TOA) | S2_SR (地表反射率) |
|---|---|---|
| 处理级别 | 大气层顶反射率 | 大气校正后地表反射率 |
| 适用场景 | 大气特性研究 | 地表变化监测 |
| 云掩膜 | 需自行处理 | 包含初步云检测 |
| 波段范围 | 13个波段 | 12个波段(无B10) |
| 数据量 | 较大 | 相对较小 |
提示:大多数地表监测研究优先选择S2_SR,除非你需要B10(气溶胶研究波段)
初学者常犯的错误是直接复制他人代码而不检查数据源版本。例如,当你的代码中使用'S2'数据集但引用了'S2_SR'特有的波段时,就会导致"Band not found"错误。正确的初始化方式应该是:
javascript复制// 正确定义影像集合
var s2Col = ee.ImageCollection('COPERNICUS/S2_SR')
.filterBounds(roi)
.filterDate('2020-01-01', '2020-12-31');
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 几何对象处理:90%错误的根源
Geometry相关错误是GEE新手最常遇到的问题。关键在于理解三种几何对象的区别:
- FeatureCollection:矢量要素集合(如行政边界)
- Geometry:单一几何图形(如多边形)
