基于 GEE 下载逐年 MODIS 地表温度 LST 数据

目录

1 地表温度(LST)

2 数据准备

3 代码实现

3.1 加载研究区与数据集

3.2 数据预处理与标准化

3.3 逐年批量导出

3.4 可视化结果

4 运行结果

5 完整代码



1 地表温度(LST)

在遥感领域,地表温度(Land Surface Temperature, LST)是研究气候变化、城市热岛效应、农业干旱评估等方面的重要指标。本文将以Google Earth Engine(GEE)为工具,详细解析如何高效地批量下载MODIS地表温度数据,结合代码实现逐年地表温度指标的计算与导出。

地表温度(LST)是地表辐射热量的直接表现,MODIS数据产品(如MOD11A2)为全球范围提供了高时间分辨率和高空间分辨率的LST观测数据。其优点包括:

高时空覆盖:
MODIS传感器提供连续的全球地表观测,时空分辨率适中(1公里)。

长期序列:
  可获取2000年至今的地表温度数据,适用于长期趋势分析。

然而,由于数据量大、时间序列长,在传统本地化处理模式下会遇到存储与计算瓶颈。Google Earth Engine提供了云端计算平台,能够高效完成大范围、多年份地表温度数据的处理和下载。

全球地表温度LST

2 数据准备

研究区定义:
ROI(Region of Interest)代表研究区域,可以通过矢量文件或手动绘制来定义。本文假设已经定义了一个研究区roi。

MODIS数据集:
MODIS LST数据集选择MOD11A2,其包含地表白天温度LST_Day_1km波段,数据分辨率为1公里。

数据范围:
时间范围:2000年至2023年。
空间范围:ROI覆盖范围内。

3 代码实现

以下代码展示了如何利用GEE平台逐年提取地表温度,并进行数据标准化与导出。

3.1 加载研究区与数据集

// 定义研究区ROI,中心化显示
Map.centerObject(roi);

// 加载MODIS地表温度数据
var LST_img = ee.ImageCollection('MODIS/061/MOD11A2')
                .filterBounds(roi)  // 筛选研究区范围
                .select('LST_Day_1km'); // 选择白天地表温度波段

3.2 数据预处理与标准化

MODIS LST数据以0.02为缩放因子(scale factor),其单位为开尔文(Kelvin)。在使用过程中需要将其转换为摄氏度,并进行归一化处理。

// 数据标准化函数
function norm_img(image) {
  var minmax = image.reduceRegion({
    reducer: ee.Reducer.minMax(),
    geometry: roi,
    scale: 250,
    maxPixels: 1e9
  }).values();
  return image.unitScale(minmax.get(1), minmax.get(0)); // 归一化处理
}

// 逐年获取地表温度
function getLST(year) {
  var rawLST = LST_img.filter(ee.Filter.calendarRange(year, year, 'year'))
                      .filter(ee.Filter.calendarRange(4, 10, 'month')) // 筛选4月至10月
                      .mean().clip(roi) // 取均值并裁剪至研究区
                      .multiply(0.02).subtract(273.15) // 转换为摄氏度
                      .rename('lst'); // 重命名为LST
  return norm_img(rawLST); // 返回归一化后的数据
}

3.3 逐年批量导出

批量导出功能是利用GEE的Export.image.toDrive接口实现,代码如下:

// 定义研究年份范围
var years = ee.List.sequence(2000, 2023);

// 逐年导出地表温度
years.getInfo().forEach(function (year) {
  var lst = getLST(year);
  Export.image.toDrive({
    image: lst.clip(roi), // 裁剪至研究区
    description: year + '_LST', // 导出描述
    folder: 'LST_Exports', // 导出文件夹
    fileNamePrefix: year + '_LST', // 文件名前缀
    region: roi.geometry().bounds(), // 导出区域
    scale: 250, // 空间分辨率250米
    maxPixels: 1e13 // 最大像素限制
  });
});

3.4 可视化结果

为了方便验证数据质量,可以在地图中叠加可视化图层,展示某一年份的地表温度分布。

// 可视化2000年的LST
var lst2000 = getLST(2000);
Map.addLayer(lst2000, {min: 0, max: 1, palette: ["blue", "green", "yellow", "red"]}, '2000 LST');

4 运行结果

执行代码后,所有年份的LST数据会以GeoTIFF格式保存在Google Drive指定的LST_Exports文件夹中,文件名形如2000_LST.tif。

点击RUN即可下载数据

研究区(湖南省)2000年地表温度LST数据可视化

5 完整代码

// 定义研究区roi,中心化显示
var roi = table;
Map.centerObject(roi);

// 加载MODIS地表温度数据
var LST_img = ee.ImageCollection('MODIS/061/MOD11A2')
                .filterBounds(roi)  // 筛选研究区范围
                .select('LST_Day_1km'); // 选择白天地表温度波段
                
// 数据标准化函数
function norm_img(image) {
  var minmax = image.reduceRegion({
    reducer: ee.Reducer.minMax(),
    geometry: roi,
    scale: 250,
    maxPixels: 1e9
  }).values();
  return image.unitScale(minmax.get(1), minmax.get(0)); // 归一化处理
}

// 逐年获取地表温度
function getLST(year) {
  var rawLST = LST_img.filter(ee.Filter.calendarRange(year, year, 'year'))
                      .filter(ee.Filter.calendarRange(4, 10, 'month')) // 筛选4月至10月
                      .mean().clip(roi) // 取均值并裁剪至研究区
                      .multiply(0.02).subtract(273.15) // 转换为摄氏度
                      .rename('lst'); // 重命名为LST
  return norm_img(rawLST); // 返回归一化后的数据
}

// 定义研究年份范围
var years = ee.List.sequence(2000, 2023);

// 逐年导出地表温度
years.getInfo().forEach(function (year) {
  var lst = getLST(year);
  Export.image.toDrive({
    image: lst.clip(roi), // 裁剪至研究区
    description: year + '_LST', // 导出描述
    folder: 'LST_Exports', // 导出文件夹
    fileNamePrefix: year + '_LST', // 文件名前缀
    region: roi.geometry().bounds(), // 导出区域
    scale: 250, // 空间分辨率250米
    maxPixels: 1e13 // 最大像素限制
  });
});

// 可视化2000年的LST
var lst2000 = getLST(2000);
Map.addLayer(lst2000, {min: 0, max: 1, palette: ["blue", "green", "yellow", "red"]}, '2000 LST');

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/951886.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web渗透测试之XSS跨站脚本 防御[WAF]绕过手法

目录 XSS防御绕过汇总 参考这篇文章绕过 XSS payload XSS防御绕过汇总 服务端知道有网络攻击或者xss攻 Html 通过js代码 标签属性等手段进行一个过滤 不允许出现css的payload 前端过滤 我可以在抓包工具里面修改 抓包工具是不受前端的防御 也 就是浏览器 服务端过滤…

4G、5G移远模块SIM卡热插拔问题解决

4G、5G移远模块SIM卡热插拔问题解决 1、开发环境2、问题阐述3、开启模块热插拔功能4、问题解决5、quectelCM工具(热插拔)6、思路1、开发环境 系统: ubuntu20.04 拨号工具:quectelCM 模块型号:ec20、rm500u 开发平台:RK35XX系列 2、问题阐述 SIM卡热插拔功能已开启,拔掉…

Win11家庭版转专业版

Win11家庭版转专业版(亲测有效) 第一步 【断网】输入这个密钥: R8NJ8-9X7PV-C7RCR-F3J9X-KQBP6 第二步 点击下一步会自动重启 第三步 【联网】输入这个密钥: F3NWX-VFMFC-MHYYF-BCJ3K-QV66Y 注意 两次输入密钥的地方一致 …

浅析大语言模型安全和隐私保护国内外标准和政策

过去两年,大模型技术已经普及并逐步渗透到各行各业,2025年注定是大模型应用井喷式发展的一年,AI在快速发展的同时,其带来的安全风险也逐渐凸显。人工智能系统的安全性和隐私保护已经成为社会关注的重点。 附下载:600多…

GelSight Mini视触觉传感器凝胶触头升级:增加40%耐用性,拓展机器人与触觉AI 应用边界

马萨诸塞州沃尔瑟姆-2025年1月6日-触觉智能技术领军企业Gelsight宣布,旗下Gelsight Mini视触觉传感器迎来凝胶触头的更新。经内部测试,新Gel凝胶触头耐用性提升40%,外观与触感与原凝胶触头保持一致。此次升级有效满足了客户在机器人应用中对设…

使用 Docker 安装 Maven 私服 Nexus3

在现代软件开发中,私有仓库是企业管理和分发内部依赖的重要工具,能够提高开发效率、加强依赖管理并确保构建的稳定性。Nexus Repository Manager 作为市场上常见的私服解决方案,不仅支持 Maven,还支持 npm、PyPI 等多种格式&#…

opencv 学习(3)

文章目录 画直线画圆画矩形画多边形文字绘制画板 本部分图形绘制 本节内容比较简单 直接上代码 画直线 import cv2 import numpy as np## 本节画直线## line 参数介绍 ## image 在那个图像上面 画线 ## 开始点借宿点 指定先的开始和结束的位置 ## 颜色 线宽 线性 ## shift…

Java-数据结构-栈与队列(StackQueue)

一、栈(Stack) ① 栈的概念 栈是一种特殊的线性表,它只允许固定一端进行"插入元素"和"删除元素"的操作,这固定的一端被称作"栈顶",对应的另一端就被称做"栈底"。 📚 栈中的元素遵循后…

带格式 pdf 翻译

支持 openAI 接口,国内 deepseek 接口兼容 openAI 接口, deepseek api 又非常便宜 https://pdf2zh.com/ https://github.com/Byaidu/PDFMathTranslate

【如何从0到1设计测试用例使用Fiddler完成弱网测试】

🌈个人主页:努力学编程’ ⛅个人推荐: c语言从初阶到进阶 JavaEE详解 数据结构 ⚡学好数据结构,刷题刻不容缓:点击一起刷题 🌙心灵鸡汤:总有人要赢,为什么不能是我呢 ⭐⭐⭐测试用…

基础项目实战——贪吃蛇(c++)

目录 前言一、 游戏总体框架二、地图绘制三、光标隐藏四、地图定义五、蛇体定义六、蛇体绘制七、蛇体移动八、频率控制九、边界检测十、游戏失败十一、蛇体转向十二、食物生成十三、食物碰撞十四、整体代码十五、结语 前言 各位小伙伴们好久不见,前段时间非常的忙很…

排序:插入、选择、交换、归并排序

排序 :所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。 稳定性 :假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,…

Windows service运行Django项目

系统:Windows Service 软件:nssm,nginx 配置Django项目 1、把Django项目的静态文件整理到staticfiles文件夹中 注:settings中的设置 STATIC_URL /static/ STATIC_ROOT os.path.join(BASE_DIR, staticfiles/) STATICFILES_DI…

comfyui精准作图之gligen

简介 在 Stable Diffusion(SD)中,GLIGEN 是一种用于增强文本到图像生成模型可控性的技术。它通过在现有的预训练扩散模型(如 Stable Diffusion)基础上,引入额外的定位输入(如边界框、关键点或参…

【学习资源】MBSE和工业软件

工业软件从业者,需要学习与应用MBSE方法论,解决复杂问题的有效手段。笔者做一个简单介绍。 1 什么是MBSE? MBSE(Model-Based Systems Engineering,基于模型的系统工程)是一种系统工程方法论,其…

ue5 蒙太奇,即上半身动画和下半身组合在一起,并使用。学习b站库得科技

本文核心 正常跑步动画端枪动画跑起来也端枪 正常跑步动画 端枪动画的上半身 跑起来也端枪 三步走: 第一步制作动画蒙太奇和插槽 第二步动画蓝图选择使用上半身动画还是全身动画,将上半身端枪和下半身走路结合 第三步使用动画蒙太奇 1.开始把&a…

【Docker】docker compose 安装 Redis Stack

注:整理不易,请不要吝啬你的赞和收藏。 前文 Redis Stack 什么是? 简单来说,Redis Stack 是增强版的 Redis ,它在传统的 Redis 数据库基础上增加了一些高级功能和模块,以支持更多的使用场景和需求。Redis…

视频转码对画质有影响吗?视频融合平台EasyCVR支持哪些转码格式?

视频转码过程是将视频文件从一种编码格式转换为另一种格式的过程,这一过程在现代数字媒体中扮演着至关重要的角色。众所周知,视频转码不仅仅是简单的格式转换,它涉及多个关键参数的改变,例如视频编码格式、比特率、分辨率以及帧率…

vscode开启调试模式,结合Delve调试器调试golang项目详细步骤

1.前期准备 (1).在vs code中的扩展程序中搜索并安装Go扩展程序 (2).安装 Delve 调试器 go install github.com/go-delve/delve/cmd/dlvlatest (3).打开vs code的命令面板,输入Go: Install/Update Tools,并单击该命令执行,安装或更新Go语…

springboot和vue配置https请求

项目场景: 代码发布到线上使用https请求需要配置ssl证书,前后端都需要修改。 问题描述 如图,我们在调用接口时报如下错误,这就是未配置ssl但是用https请求产生的问题。 解决方案: 前端:在vite.config.js文…