GEE下载Landsat-5地表温度数据代码
/*************************************************************** * Landsat-5 TM Collection 2 Level-2 地表温度批量处理与导出 * * 时间范围1990-01-01 至 1991-12-31 * ROI资产users/Test/Study_area * * 处理内容 * 1. 筛选 Landsat-5 TM C2 L2 数据 * 2. 仅保留具有地表温度产品的 L2SP 影像 * 3. 使用 QA_PIXEL 去除填充值、膨胀云、云和云影 * 4. 使用 QA_RADSAT 去除辐射饱和和丢失像元 * 5. 对地表反射率进行缩放 * 6. 对 ST_B6 进行缩放转换为 Kelvin * 7. 将温度由 Kelvin 转换为摄氏度 * 8. 按日期生成地表温度影像并导出到 Google Drive * * 输出文件 * Landsat_LST_yyyy_MM_dd.tif ***************************************************************///// 1. 参数设置//// ROI矢量资产路径varROI_ASSETusers/Test/Study_area;// 开始时间包含该日期varSTART_DATE1990-01-01;// 结束时间不包含该日期因此使用1992-01-01可覆盖整个1991年varEND_DATE2026-01-01;// Google Drive输出文件夹varDRIVE_FOLDERLandsat5_LST_1990_2025;// 文件名前缀// 按照要求保留“Landsat”的拼写varFILE_PREFIXLandsat5_LST_;// 输出波段// LST_C摄氏度// ST_B6KelvinvarOUTPUT_BANDLST_C;// 输出空间分辨率单位为米varEXPORT_SCALE30;// 输出无效值varNO_DATA_VALUE-9999;//// 2. 读取研究区//varroiFeatureCollectionee.FeatureCollection(ROI_ASSET);varroiroiFeatureCollection.geometry();Map.centerObject(roiFeatureCollection,8);Map.addLayer(roiFeatureCollection,{color:red},研究区ROI);print(研究区矢量,roiFeatureCollection);//// 3. Landsat-5预处理函数//functionpreprocessLandsat5(image){//------------------------------------------------------------// 3.1 使用QA_PIXEL去除云和云影//------------------------------------------------------------varqaPixelimage.select(QA_PIXEL);// QA_PIXEL位定义// Bit 0Fill填充值// Bit 1Dilated Cloud膨胀云// Bit 3Cloud云// Bit 4Cloud Shadow云影//// Bit值为0表示不存在相应问题varfillMaskqaPixel.bitwiseAnd(10).eq(0);vardilatedCloudMaskqaPixel.bitwiseAnd(11).eq(0);varcloudMaskqaPixel.bitwiseAnd(13).eq(0);varcloudShadowMaskqaPixel.bitwiseAnd(14).eq(0);// 合并云质量控制条件varqaMaskfillMask.and(dilatedCloudMask).and(cloudMask).and(cloudShadowMask);//------------------------------------------------------------// 3.2 使用QA_RADSAT去除辐射饱和像元//------------------------------------------------------------// QA_RADSAT 0// 所有波段均未发生辐射饱和并且像元没有丢失varsaturationMaskimage.select(QA_RADSAT).eq(0);//------------------------------------------------------------// 3.3 对地表反射率波段进行标准化缩放//------------------------------------------------------------// Landsat Collection 2 Level-2地表反射率// Reflectance DN × 0.0000275 - 0.2varopticalBandsimage.select([SR_B1,SR_B2,SR_B3,SR_B4,SR_B5,SR_B7]).multiply(0.0000275).add(-0.2);//------------------------------------------------------------// 3.4 对地表温度波段进行标准化缩放//------------------------------------------------------------// Landsat Collection 2 Level-2地表温度// Temperature(K) DN × 0.00341802 149.0vartemperatureKelvinimage.select(ST_B6).multiply(0.00341802).add(149.0).rename(ST_B6);//------------------------------------------------------------// 3.5 将Kelvin转换为摄氏度//------------------------------------------------------------// Temperature(°C) Temperature(K) - 273.15vartemperatureCelsiustemperatureKelvin.subtract(273.15).rename(LST_C);//------------------------------------------------------------// 3.6 合并处理结果//------------------------------------------------------------// 使用缩放后的地表反射率覆盖原始SR波段varprocessedImageimage.addBands(opticalBands,null,true)// 使用缩放后的Kelvin温度覆盖原始ST_B6波段.addBands(temperatureKelvin,null,true)// 添加摄氏度温度波段.addBands(temperatureCelsius)// 应用云、云影和填充值掩膜.updateMask(qaMask)// 应用辐射饱和掩膜.updateMask(saturationMask)// 添加日期属性用于后续批量导出.set(date_string,ee.Date(image.get(system:time_start)).format(yyyy_MM_dd));returnprocessedImage;}//// 4. 筛选1990—1991年Landsat-5影像//varlandsat5Rawee.ImageCollection(LANDSAT/LT05/C02/T1_L2).filterBounds(roi).filterDate(START_DATE,END_DATE)// 只保留包含地表温度产品的影像// L2SR影像中的ST_B6波段全部被掩膜.filter(ee.Filter.eq(PROCESSING_LEVEL,L2SP))// 按照获取时间排序.sort(system:time_start);print(1990—1991年原始L2SP影像数量,landsat5Raw.size());print(原始Landsat-5影像集合,landsat5Raw);//// 5. 执行预处理//varlandsat5Processedlandsat5Raw.map(preprocessLandsat5);print(预处理后影像数量,landsat5Processed.size());print(预处理后的第一景影像,landsat5Processed.first());//// 6. 获取所有影像日期//// 获取日期属性varuniqueDateListee.List(landsat5Processed.aggregate_array(date_string)).distinct().sort();print(存在有效温度影像的日期,uniqueDateList);print(需要创建的导出任务数量,uniqueDateList.size());//// 7. 地图显示第一景处理后的地表温度//// 仅用于检查处理结果不参与导出varfirstProcessedImageee.Image(landsat5Processed.first());Map.addLayer(firstProcessedImage.select(LST_C).clip(roi),{min:-30,max:50,palette:[040274,225ea8,41b6c4,a1dab4,ffffcc,fed976,fd8d3c,e31a1c]},第一景LST摄氏度,false);//// 8. 按日期批量创建导出任务////// 如果同一天有多景影像覆盖ROI// 将同一天的影像拼接成一幅影像从而保证每天只生成一个文件。// 云和云影已经被掩膜mosaic会优先使用有效像元。//// 注意本代码创建Google Drive导出任务// 仍需在GEE右侧Tasks面板中启动任务。//uniqueDateList.evaluate(function(dateArray){// 检查是否存在符合条件的影像if(!dateArray||dateArray.length0){print(没有找到覆盖研究区且包含地表温度的Landsat-5影像。);return;}// 遍历所有有效日期dateArray.forEach(function(dateString){//----------------------------------------------------------// 8.1 筛选该日期的全部影像//----------------------------------------------------------vardailyCollectionlandsat5Processed.filter(ee.Filter.eq(date_string,dateString));//----------------------------------------------------------// 8.2 设置拼接优先级//----------------------------------------------------------// mosaic从集合末端影像开始赋予较高优先级。// 这里按照云量从高到低排序// 使云量较低的影像位于集合末端并优先使用。varorderedDailyCollectiondailyCollection.sort(CLOUD_COVER,false);//----------------------------------------------------------// 8.3 获取当天参考影像的原始投影//----------------------------------------------------------varreferenceImageee.Image(dailyCollection.sort(CLOUD_COVER).first()).select(OUTPUT_BAND);//----------------------------------------------------------// 8.4 同一天影像拼接//----------------------------------------------------------vardailyLSTorderedDailyCollection.select(OUTPUT_BAND).mosaic()// 为拼接结果设置Landsat原始投影.setDefaultProjection(referenceImage.projection())// 裁剪到研究区.clip(roi)// 统一输出波段名称.rename(OUTPUT_BAND);//----------------------------------------------------------// 8.5 设置无效值//----------------------------------------------------------varexportImagedailyLST.unmask({value:NO_DATA_VALUE,sameFootprint:false}).toFloat();//----------------------------------------------------------// 8.6 设置输出文件名//----------------------------------------------------------// 例如// Landsat_LST_1990-06-18.tifvarexportNameFILE_PREFIXdateString;//----------------------------------------------------------// 8.7 创建Google Drive导出任务//----------------------------------------------------------Export.image.toDrive({// 导出影像image:exportImage,// GEE任务名称description:exportName,// Google Drive文件夹folder:DRIVE_FOLDER,// 最终文件名称不需要手动添加.tiffileNamePrefix:exportName,// 研究区范围region:roi,// Landsat地表温度空间分辨率scale:EXPORT_SCALE,// 放宽最大像元数量限制maxPixels:1e13,// 输出格式fileFormat:GeoTIFF,// GeoTIFF参数formatOptions:{// 输出Cloud Optimized GeoTIFFcloudOptimized:true,// 指定无效值noData:NO_DATA_VALUE}});});print(导出任务已经创建请打开右侧Tasks面板启动任务。);});

相关新闻

OpenClaw 2026.3.2权限配置实战:解决工具调用失败与安全策略升级

OpenClaw 2026.3.2权限配置实战:解决工具调用失败与安全策略升级

1. 项目概述:当OpenClaw更新后工具“失灵”了最近在折腾OpenClaw 2026.3.2版本的朋友,估计有不少人遇到了一个挺头疼的问题:更新之后,之前用得好好的那些工具,比如文件操作、代码执行、网络搜索,突然就“罢…

2026/10/9 0:01:21 阅读更多 →
央视App、央视频、央视影音到底有什么区别?哪个能下载视频?

央视App、央视频、央视影音到底有什么区别?哪个能下载视频?

很多朋友刚开始用央视平台的时候,都会被这三个名字搞晕:央视App、央视频、央视影音,到底有什么区别?哪个能下载视频?今天一次性说清楚。 三个平台的区别 平台 定位 内容类型 能否下载 央视影音 老牌客户端 直播回看 部…

2026/10/10 3:23:30 阅读更多 →
达梦DMHS实现MySQL到DM8异构数据库迁移实战

达梦DMHS实现MySQL到DM8异构数据库迁移实战

1. 达梦数据库DMHS迁移方案概述达梦数据库作为国产数据库的代表产品,其DMHS(Dameng High Sync)数据同步工具在企业级数据迁移场景中扮演着关键角色。本次实践聚焦于从MySQL到DM8的异构数据库迁移,这是当前许多国产化替代项目的典型…

2026/10/4 2:29:07 阅读更多 →

最新新闻

Spring Boot图书馆座位预约系统实战:并发控制与状态机设计

Spring Boot图书馆座位预约系统实战:并发控制与状态机设计

只要在大学图书馆待过几年,对“考研季一座难求、平时座位一堆空”这种反差多半不陌生。真正的问题从来不是座位不够,而是信息不透明:哪些座位被占着、哪些被贴了书就永远“有人”、预约了又不到场的人如何处理。我去年用一个典型的 Spring Bo…

2026/10/10 3:23:16 阅读更多 →
服务、协议与端口:从端口占用到网络排障的完整指南

服务、协议与端口:从端口占用到网络排障的完整指南

真正把"服务、协议与端口"这三件事想明白,是在我一次一次被"端口被占用"按在地上摩擦之后。当时手头有个服务要起,日志里反复出现bind失败,报错就一句话:通常每个套接字地址(协议/网络地址/端口&a…

2026/10/10 3:23:16 阅读更多 →
C盘空间不足怎么办?Windows系统自带清理与磁盘管理实用技巧

C盘空间不足怎么办?Windows系统自带清理与磁盘管理实用技巧

一谈到C盘爆红,我估计十个人里有九个都皱眉头。我自己处理过不下百台电脑,也踩过不少坑,总结下来就是:清理C盘空间这件事,百分之八十的用户其实不需要安装任何第三方所谓"优化软件",光是Windows系…

2026/10/10 3:23:16 阅读更多 →
SpringBoot+Vue前后端分离图书管理系统实战:从数据库设计到部署上线

SpringBoot+Vue前后端分离图书管理系统实战:从数据库设计到部署上线

接手过不少类似“图书管理系统”的参考项目,但很多同学拿到的源码要么架构老旧,要么前后端严重耦合,跑起来一堆问题。这次分享的这套基于SpringBootVue的图书管理系统,算是我见过比较清爽、也适合拿来学习和二次开发的一套。后端用…

2026/10/10 3:23:16 阅读更多 →
PCA9422与PIC32MZ协同实现智能电源管理

PCA9422与PIC32MZ协同实现智能电源管理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 3:23:16 阅读更多 →
Java网上购物商城毕设核心设计:从SpringBoot到订单权限全解析

Java网上购物商城毕设核心设计:从SpringBoot到订单权限全解析

毕业设计选题年年有人纠结,年年有人踩坑。如果你正在Java方向徘徊,看到“网上购物商城”这个题目,我想说的是:这个题非常适合作为毕设,但前提是你得把它做出层次感来,而不是交一个增删改查的“玩具”上去。…

2026/10/10 3:22:16 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →