当前位置: 首页 > news >正文

基于 GEE 批量下载 Landsat8 地表温度(LST)数据

目录

1 前言

2 数据处理

3 完整代码

4 运行结果


1 前言

地表温度(Land Surface Temperature, LST)是表征地球表面能量平衡和气候系统的重要参数。它不仅影响大气环流与区域气候,而且还与城市热岛效应、植被蒸散作用及土壤水分密切相关。利用卫星遥感数据,可以在大范围、长时间尺度上对地表温度进行连续监测。其中,Landsat 8 提供了中等空间分辨率(30 m)和热红外波段(TIRS),适合区域尺度的地表温度反演。本文展示如何借助 Google Earth Engine (GEE),实现 2024 年逐月地表温度的自动计算与导出。

数据源选取 Landsat 8 Collection 2 Level 2 SR 产品,包含经过大气校正的地表反射率与亮温数据。本文的代码能够批量生成逐月地表温度数据集,适用于多种研究:

  • 城市与区域气候:分析热岛效应时空变化;

  • 生态环境保护:评估湿地、森林、农田的热环境差异;

  • 农业与水资源管理:监测干旱和蒸散发;

  • 灾害风险评估:为热浪和干旱预警提供数据支持。

2 数据处理

(1)划定研究范围(ROI):

先导入你关注的区域(比如城市、流域等),代码里用roi = table(实际要替换成你在 GEE 资产里的区域路径),还会把区域在地图上标红显示,方便直观查看。

(2)给影像 “去杂质”(掩膜处理):

卫星拍的图,难免有云、数据饱和这些 “杂质”。我们写了个maskL8sr函数来清理:

  • 云掩膜:借助QA_PIXEL波段,挑出无云干扰的像元;
  • 饱和掩膜:通过QA_RADSAT波段,筛选无辐射饱和的像元;
  • 同时,还对光学波段和热红外波段做 “定标”,把原始数据转换成地表反射率、亮温这些能用的格式。

(3)确定时间范围:

以 2024 年全年为例,设定好起始(2024-01-01)和结束(2025-01-01)时间,算出这期间有多少个月,为后续逐月处理做准备。

(4)批量处理 + 导出:

逐月筛选 Landsat 8 影像,用 “中位合成” 法把当月影像合并(减少噪声,让结果更典型),再裁剪到研究区范围。然后从热红外波段(ST_B10)提取数据,把开尔文温度转成常用的摄氏度,最后批量导出到 Google Drive,每个月的文件都清晰命名,方便后续分析。

3 完整代码

// 步骤1:导入感兴趣区域(ROI)
// 请将下面的路径替换为你自己的 ROI 路径(可在 GEE 资产中获取对应 FeatureCollection 路径)
var roi = table; 
Map.addLayer(roi.style({color: "red", fillColor: "00000000"}), {}, "ROI");
Map.centerObject(roi, 8);// 步骤2:定义 Landsat 8 SR 影像掩膜函数(去除云、饱和等无效像元)
function maskL8sr(image) {// 云掩膜:利用 QA_PIXEL 波段,筛选低 5 位为 0 的像元(无云等干扰)var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);// 饱和像元掩膜:筛选 QA_RADSAT 波段为 0 的像元(无辐射饱和)var saturationMask = image.select('QA_RADSAT').eq(0);// 光学波段定标(转换为地表反射率)var opticalBands = image.select('SR_B.*').multiply(0.0000275).add(-0.2);// 热红外波段定标(转换为亮温)var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);// 添加定标后波段、应用掩膜并返回处理后影像return image.addBands(opticalBands, null, true).addBands(thermalBands, null, true).updateMask(qaMask).updateMask(saturationMask);
}// 步骤3:定义时间范围(以 2024 年全年为例)
var start = ee.Date('2024-01-01');
var end = ee.Date('2025-01-01');
var nMonths = end.difference(start, 'month');// 步骤4:批量逐月合成并导出地表温度数据
ee.List.sequence(0, nMonths.subtract(1)).getInfo().forEach(function(i) {var startMonth = start.advance(i, 'month');var endMonth = startMonth.advance(1, 'month');// 获取当月经过掩膜处理的影像集合var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').filterDate(startMonth, endMonth).filterBounds(roi).map(maskL8sr);// 中位合成(减少噪声,保留典型值)并裁剪到 ROIvar composite = collection.median().clip(roi);// 提取热红外波段(ST_B10)并转换为摄氏度var lst = composite.select("ST_B10").subtract(273.15)  // 开尔文转摄氏度.rename("LST_C");// 可视化第一个月的结果(方便快速查看)if (i === 0) {Map.addLayer(lst, {min: -10, max: 10, palette: ["blue","cyan","green","yellow","red"]}, 'LST Example');}// 导出到 Google DriveExport.image.toDrive({image: lst,description: 'LST_' + startMonth.format('YYYY_MM').getInfo(),fileNamePrefix: 'LST_' + startMonth.format('YYYY_MM').getInfo(),folder: 'Landsat8_LST',  // 可自定义文件夹名region: roi,scale: 30,  // 空间分辨率 30 米maxPixels: 1e13,crs: 'EPSG:4326'  // WGS84 坐标系});
});

4 运行结果

点击RUN即可下载运行结果
运行结果
http://www.xdnf.cn/news/1464499.html

相关文章:

  • 【计算机科学与应用】砚文化虚拟博物馆的Unity3D设计
  • 理解损失函数:机器学习的指南针与裁判
  • 踩坑实录:Django继承AbstractUser时遇到的related_name冲突及解决方案
  • 【Flask】测试平台中,记一次在vue2中集成编辑器组件tinymce
  • XR数字融合工作站打造智能制造专业学习新范式
  • windows通过xrdp远程连接Ubuntu黑屏问题解决
  • FDTD_3 d mie_仿真
  • 计算机毕设选题:基于Python数据挖掘的高考志愿推荐系统
  • AI+消费,阿里的新故事很性感
  • 新后端漏洞(上)- Aapache Tomcat AJP 文件包含漏洞(CVE-2020-1938)
  • sub3G、sub6G和LB、MB、HB、MHB、LMHB、UHB之间的区别和联系
  • STM32——WDG看门狗
  • Typer 命令行工具使用示例
  • SQL Server全链路安全防护
  • 【Python】QT(PySide2、PyQt5):点击不同按钮显示不同页面
  • 中天互联:AI 重塑制造,解锁智能生产新效能​
  • [网鼎杯 2020 青龙组]AreUSerialz
  • Excel数据导出小记二: [大数据示例]
  • JP4-7-MyLesson后台前端(一)
  • yolov8部署在一台无显卡的电脑上,实时性强方案
  • 【分享】基于百度脑图,并使用Vue二次开发的用例脑图编辑器组件
  • 探讨Xsens在人形机器人研发中的四个核心应用
  • 产线相机问题分析思路
  • 基于单片机的六足机器人控制系统设计
  • HTML文本格式化标签
  • 嵌入式解谜日志—多路I/O复用
  • AI日报 - 2025年09月05日
  • 专题:2025电力行业5G工厂及绿色转型、市场机制研究报告|附100+份报告PDF、数据仪表盘汇总下载
  • Ubuntu22.04-ROS2下navgation2编译到运行
  • 机器学习入门,用Lima在macOS免费搭建Docker环境,彻底解决镜像与收费难题!