基于 GEE 处理、可视化和导出 Landsat 5 和 Landsat 8 卫星遥感影像数据
目录
1 前言
1.1 核心功能亮点
1.2 技术细节
1.3 适用场景和注意事项
2 代码解析
2.1 研究区定义与地图初始化
2.2 可调整参数设置
2.3 Landsat 5 数据处理
2.3.1 影像集合筛选
2.3.2 去云处理函数
2.3.3 影像合成
2.4 Landsat 8 数据处理
2.4.1 影像集合筛选
2.4.2 去云处理函数
2.4.3 影像合成
2.5 可视化参数设置
2.6 影像可视化
2.7 影像导出到 Google Drive
2.8 统计信息与覆盖度分析
3 完整代码
4 运行结果
5 总结
1 前言
分享一段实用的 Google Earth Earth Engine 代码,轻松实现 Landsat 5/8 卫星影像的自动化处理流程,从数据筛选到可视化导出一站式完成,非常适合遥感分析初学者和科研人员!
1.1 核心功能亮点
- ✅ 灵活定义研究区:支持通过外部矢量数据(table)快速设定任意形状研究区域,无需手动输入坐标;
- ✅ 智能数据筛选:可自定义时间范围和云量阈值(默认 30%),自动过滤低质量影像;
- ✅ 专业去云处理:基于 QA_PIXEL 波段的位运算,精准去除云、云阴影和雪等干扰因素;
- ✅ 多波段合成:同时生成真彩色(模拟人眼视觉)和假彩色(突出植被特征)两种常用合成方案;
- ✅ 完整可视化:自动添加研究区边界和多类型影像图层,支持自定义显示参数(亮度、对比度);
- ✅ 便捷导出功能:一键将处理结果导出到 Google Drive,保留 30 米原始分辨率;
- ✅ 数据质量评估:自动计算可用影像数量和覆盖度,控制台直观展示统计信息。
1.2 技术细节
- ▫️ 支持 Landsat 5(1984-2012)和 Landsat 8(2013 至今)两个传感器数据;
- ▫️ 采用 TOA(大气层顶部反射率)数据产品,预处理更完善;
- ▫️ 通过 mosaic () 实现多幅影像无缝拼接,clip () 精准裁剪至研究区范围;
- ▫️ 内置覆盖度分析图层,直观评估影像数据完整性。
1.3 适用场景和注意事项
适用场景:
土地利用变化监测、植被生长分析、生态环境评估、城市扩张研究等多个领域。只需修改时间范围和研究区参数,即可快速适配不同研究需求。
代码结构清晰,注释详尽,包含可调整参数区、数据处理区、可视化区和导出区四个模块,便于理解和二次开发。无论是遥感新手还是专业人员,都能快速上手使用!
注意事项:
- 请确保选择的时间范围在卫星运行期内
- 如果某个时间段云量过高,可能会导致有效数据不足
- 可以通过调整云量过滤阈值来增加可用影像数量
2 代码解析
2.1 研究区定义与地图初始化
// 定义研究区(示例:以北京为例)
var roi = table;
Map.centerObject(roi, 8);// 添加研究区边界到地图
Map.addLayer(roi, {}, '研究区');
-
研究区定义:
var roi = table
表示将预先导入的矢量数据(table
)赋值给研究区变量roi
。table
通常是外部上传的矢量文件(如 Shapefile、KML)或 GEE 内置的矢量数据集(如行政边界),支持任意形状的研究区域,比矩形坐标更灵活。 -
地图定位:
Map.centerObject(roi, 8)
自动将地图视图中心定位到roi
的几何中心,缩放级别为 8(数值越大视图越近)。无需手动指定经纬度,适用于任何形状的区域。 -
添加边界图层:
Map.addLayer(roi, {}, '研究区')
将roi
对应的矢量边界添加到地图,使用默认样式(黑色边界、透明填充),图层名称为 “研究区”,便于直观确认研究区范围。
(注意:table
必须预先导入 GEE(通过 Assets 面板),且需为ee.FeatureCollection
或ee.Feature
类型的矢量数据,否则会导致代码报错。)
2.2 可调整参数设置
// ********** 可调整参数 **********
// 设置时间范围 - 可根据需要修改
var startDate = '2025-01-01';
var endDate = '2025-05-19';// 设置云量过滤阈值 - 可根据需要修改
var cloudCoverThreshold = 30; // 百分比
- 时间范围:
startDate
和endDate
定义了影像筛选的时间区间(此处为 2025 年 1 月至 5 月)。 - 云量阈值:
cloudCoverThreshold
用于过滤云量过高的影像,仅保留云量低于 30% 的影像。