GEE:基于Landsat8计算陆地表面温度(Land Surface Temperature,LST)

作者:CSDN @ _养乐多_

本文将介绍在Google Earth Engine(GEE)平台上使用 Landsat 8 卫星影像数据计算陆地表面温度(Land Surface Temperature,LST)的代码。

结果如下图所示,

在这里插入图片描述


文章目录

      • 一、参考内容
      • 二、示例代码链接
      • 三、完整示例代码


一、参考内容

单窗算法:Google Earth Engine Open-Source Code for Land Surface Temperature Estimation from the Landsat Series

博客:https://medium.com/@ridhomuh002/analyzing-land-surface-temperature-lst-with-landsat-8-data-in-google-earth-engine-f4dd7ca28e70

主要公式包括:

植被覆盖率(FV)计算公式: ( ( N D V I − N D V I m i n ) / ( N D V I m a x − N D V I m i n ) ) 2 ((NDVI - NDVI_min) / (NDVI_max - NDVI_min))^2 ((NDVINDVImin)/(NDVImaxNDVImin))2
辐射率(EM)计算公式: 0.004 ∗ F V + 0.986 0.004 * FV + 0.986 0.004FV+0.986
陆地表面温度(LST)计算公式: ( T B / ( 1 + ( λ ∗ ( T B / 1.438 ) ) ∗ l n ( e m ) ) ) − 273.15 (TB / (1 + (λ * (TB / 1.438)) * ln(em))) - 273.15 (TB/(1+(λ(TB/1.438))ln(em)))273.15
其中,TB 代表热红外波段的亮度温度,em 代表辐射率,λ 代表波长(对应 Landsat 8 中的波段 10)。

二、示例代码链接

https://code.earthengine.google.com/9ce60d3992ea71ddd75c57e7de3acfa8?noload=true

三、完整示例代码

//#####################################################################################
//#                                                                                 #\\
//#                    Land Surface Temperature(LST) MAPPING                        #\\
//#                                                                                 #\\
//#####################################################################################// date: 2024-03-11
// author: YangLeDuo// 自定义研究区矢量边界的显示样式
var roi = table
var styling={color:'green',fillColor:'00000000'}
Map.addLayer(roi.style(styling),{},"roi");
Map.centerObject(roi, 8);// 设置单波段配色方案         
var Single_bandVisParam = {  min: 8,  max: 54,  palette: ['C2523C','F2B60E','77ED00','1BAA7D','0B2C7A',]
};//利用QA波段生成云掩模
function maskclouds(image) {                var cloudShadowBitMask = (1 << 3);var cloudsBitMask = (1 << 5);var qa = image.select('QA_PIXEL');var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0).and(qa.bitwiseAnd(cloudsBitMask).eq(0));return image.updateMask(mask);
}function L8applyScaleFactors(image) {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);
}
//#############################################################################################
//定义数据集
var L8_image = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2').filterDate('2020-01-01', '2020-12-31').filter(ee.Filter.calendarRange(1,12,"month")) //选择月份.filterBounds(roi).filter(ee.Filter.lt('CLOUD_COVER', 20)).map(maskclouds).map(L8applyScaleFactors).median().clip(roi);
print('L8_dataset',L8_image)//NDVI
var L8_NDVI = L8_image.expression('(NIR-Red)/(NIR+Red)', {'NIR': L8_image.select('SR_B5'),'Red': L8_image.select('SR_B4'),})// 计算AOI内的最小NDVI值
var ndviMin = ee.Number(L8_NDVI.reduceRegion({reducer   : ee.Reducer.min(),geometry  : roi,scale     : 30,maxPixels : 1e9
}).values().get(0));// 计算AOI内的最大NDVI值
var ndviMax = ee.Number(L8_NDVI.reduceRegion({reducer   : ee.Reducer.max(),geometry  : roi,scale     : 30,maxPixels : 1e9
}).values().get(0));// 植被覆盖率(FV)计算
// 公式: ((NDVI - NDVI_min) / (NDVI_max - NDVI_min))^2// 使用指定范围内的NDVI值计算植被覆盖率(FV)。
// NDVI_min表示最小NDVI值,NDVI_max表示最大NDVI值
var fv = ((L8_NDVI.subtract(ndviMin)).divide(ndviMax.subtract(ndviMin))).pow(ee.Number(2)).rename('FV');// 辐射率计算
// 公式: 0.004 * FV + 0.986// 使用植被覆盖率(FV)计算陆地表面辐射率(EM)。
// 0.004系数表示由于植被引起的辐射率变化,
// 0.986表示其他表面的基本辐射率。var em = fv.multiply(ee.Number(0.004)).add(ee.Number(0.986)).rename('EM');// 选择热带波段(波段10)并重命名
var thermal = L8_image.select('ST_B10').rename('thermal');// 现在,让我们计算陆地表面温度(LST)// 公式: (TB / (1 + (λ * (TB / 1.438)) * ln(em))) - 273.15
var L8_LST = thermal.expression('(TB / (1 + (0.00115 * (TB / 1.438)) * log(em))) - 273.15', {'TB': thermal.select('thermal'), // 选择热带波段(TB)'em': em // 分配辐射率(em)}).rename('LST');var lstMin = ee.Number(L8_LST.reduceRegion({reducer   : ee.Reducer.min(),geometry  : roi,scale     : 30,maxPixels : 1e9
}).values().get(0));// 计算AOI内的最大NDVI值
var lstMax = ee.Number(L8_LST.reduceRegion({reducer   : ee.Reducer.max(),geometry  : roi,scale     : 30,maxPixels : 1e9
}).values().get(0));print("最小陆地表面温度:", lstMin);
print("最大陆地表面温度:", lstMax);Map.addLayer(L8_LST, Single_bandVisParam, 'LST');

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里P8解析自动化测试工具 —— SeleniumAppium!

自动化测试&#xff0c;利用自动化测试工具&#xff0c;通过录制/编程方式实现测试活动&#xff0c;发现被测对象存在的缺陷&#xff0c;从而替代手工测试活动。自动化测试不局限于某个具体测试阶段&#xff0c;也不局限被测对象的类型&#xff0c;只要满足自动化测试的必要条件…

数据库--SQL语言-1

练习网站&#xff1a;自学SQL网 Select 查询语法复习 SELECT column, another_column, …FROM mytableWHERE condition AND/OR another_condition AND/OR …; 操作符号&#xff1a; 如果属性是字符串, 我们会用到字符串相关的一些操作符号&#xff0c;其中 LIKE&#xff08…

day04-Maven-SpringBootWeb入门

文章目录 01. Maven1.1 课程安排1.2 什么是Maven1.3 Maven的作用1.4 Maven模型1.5 Maven仓库1.6 Maven安装1.6.1 下载1.6.2 安装步骤 2 IDEA集成Maven2.1 配置Maven环境2.1.1 当前工程设置2.1.2 全局设置 2.2 创建Maven项目2.3 POM配置详解2.4 Maven坐标详解2.5 导入Maven项目 …

【axios】你的进度条准确吗

1、axios监听进度 上传和下载操作在前端中是非常常见的&#xff0c;当我们想知道上传或下载的进度时也不难&#xff0c;axios已经实现了监听进度的方法 import axios from axios// 上传请求 axios.post(/api/v1/upload, {data: xxx},{// onUploadProgress回调可以获取进度onU…

mysql 常用命令

1、显示锁的时间 show status like innodb_row_lock%;2、锁一行的方法 //开启 begin; //锁一行 select * from tbl_user where name 1aa1 for update;//解锁 commit;3、设置不自动提交 set autocommit 0; //自动提交 set autocommit 1;4、查看是否支持profile show vari…

2 月 Web3 游戏行业动态

作者&#xff1a;stellafootprint.network 数据来源&#xff1a;区块链游戏研究页面 - Footprint Analytics 2024 年 2 月&#xff0c;区块链游戏领域在加密货币价格上涨和活跃用户激增的推动下&#xff0c;实现了显著增长。然而&#xff0c;行业在维持用户参与度和留存率方面…

NodeJS实现线性查找算法

NodeJS实现线性查找算法 以下是使用 Node.js 实现线性搜索算法的示例代码&#xff1a; function linearSearch(arr, target) {for (let i 0; i < arr.length; i) {if (arr[i] target) {return i; // 如果找到目标&#xff0c;返回索引}}return -1; // 如果未找到目标&am…

微服务配置中心

什么是配置中心 配置中心是一种用于管理应用程序或系统配置信息的中央服务。它允许开发人员在多个环境&#xff08;如开发、测试、生产&#xff09;之间共享配置&#xff0c;并且可以在不停止应用程序的情况下动态更新配置。 配置中心是统一管理各种应用配置的工具。它能够集中…

【Ubuntu】原生Ubuntu-dock 栏 安装与卸载

1.查看是否安装 Ubuntu-dock&#xff08;新版本的Ubuntu自带Ubuntu-dock version> 18.04&#xff09; gnome-extensions list 2.安装Ubuntu-dock sudo apt install gnome-shell-extension-ubuntu-dock 3.重启&#xff0c;一定要重启&#xff01;&#xff01;&#xff01;…

LeetCode2.07链表相交

2.07链表相交 给你两个单链表的头节点 headA 和 headB &#xff0c;请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c;返回 null 。 图示两个链表在节点 c1 开始相交&#xff1a; 题目数据 保证 整个链式结构中不存在环。 注意&#xff0c;函数返回结…

vue实现图片框选标注

前言 前端有一个需求&#xff0c;对上传的图片进行检测识别&#xff0c;通过返回的接口坐标数据&#xff0c;对图片的某些区域进行框选并标注。如图&#xff1a; 开始 1、上传功能使用elementui的upload插件&#xff1b; 2、在图片上进行标注功能是元素定位在图片上层&#x…

Java - 探究Java优雅退出的两种机制

文章目录 概述Java优雅停机_ ShutdownHook 机制步骤Code Java优雅停机_ 信号量机制SignalHandler 工作原理使用步骤Linux支持的信号量根据操作系统选择信号量Code 注意事项 概述 在Linux上通过kill -9 pid方式强制终止进程的副作用&#xff0c;这种方式虽然简单高效&#xff0…

小红书素人投放计划怎么做?

小红书素人投放是很多品牌在小红书推广打响的第一枪&#xff0c;素人铺量在小红书投放&#xff0c;可以奠定品牌在小红书的声量&#xff0c;小红书素人投放计划怎么做&#xff1f;前期规划好一切&#xff0c;才能在后期让我们的推广爆发出更好的效果。接下来伯乐网络传媒就来给…

【压缩包技巧】如何把rar文件压缩为zip格式?

想要将rar文件压缩为zip格式&#xff0c;其实就是压缩包格式进行转换&#xff0c;今天和大家分享三个rar压缩包改成zip格式的方法&#xff0c;希望能够帮助到大家&#xff01; 方法一&#xff1a; 直接修改rar压缩包的后缀名变为zip&#xff0c;就可以修改压缩包文件格式了 …

揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量

在人工智能的快速发展浪潮中&#xff0c;Google DeepMind的最新力作——Gemini&#xff0c;以其多模态的超凡能力&#xff0c;正引领着AI技术的新一轮革命。本文将深入探讨Gemini的核心特性、不同版本的特点&#xff0c;以及它与ChatGPT-4的对比优势和差异。 一、Gemini简介 A…

float32 float16 bfloat16 推理训练GPU速度和内存调研

概念&#xff1a; 参考&#xff1a;Accelerating Large Language Models with Mixed-Precision Techniques - Lightning AI 3种数量类型表示的数据范围不一样&#xff0c;以float32为例其中有1个符号位&#xff0c;8位表示指数&#xff0c;23位表示尾数 标准训练推理是用的fl…

eclipse maven 项目导入报错

错误&#xff1a;Internal compiler error: java.lang.NullPointerException at org.eclipse.jdt.internal.compiler.apt.dispatch.AnnotationDiscoveryVisitor 环境&#xff1a;eclipse Kepler Service Release 2 ,JDK1.7 解决办法&#xff1a;编码不对&#xff0c;修改

指令调用模板

也就是这边指令通过id和map会定位到一个结构体&#xff0c;然后这个结构再赋值两个成员&#xff0c;一个是函数一个是指令类型&#xff0c;然后这个函数是模板的实例化 使用的时候就传进去&#xff0c;这只是参数&#xff0c;最开始初始化的时候模板就已经实例化了。然后关于模…

为什么美国硅谷作为服务器托管的首选地?

在数字化时代&#xff0c;服务器托管已成为企业运营不可或缺的一部分。而美国硅谷作为全球科技创新的摇篮&#xff0c;其服务器托管服务备受全球企业青睐。那么&#xff0c;为什么众多企业选择美国硅谷作为服务器托管的首选地呢? 硅谷拥有得天独厚的地理位置和网络基础设施。硅…

[HackMyVM]Quick 2

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Un…