GEE实践应用|热岛效应(一)地表温度计算

目录

1.学习目标

2.理论介绍

3.从MODIS获得地表温度

 4.从Landsat卫星获得地表温度


1.学习目标

①了解如何使用GEE计算地表温度

2.理论介绍

        城市化涉及用建筑物、道路和停车场等建筑结构取代自然景观。这种土地覆盖的改变也改变了土地表面的特性。这些变化的范围从表面反射和吸收的辐射量到热量如何从表面消散(例如,为城市发展而去除植被会减少蒸发冷却)。这些地表特性的变化可以改变当地的天气和气候。由于城市化而引起的当地气候变化被研究最多的是城市热岛(UHI)效应。城市热岛效应是指一个城市比其周围环境或同等的未城市化地表温度更高的现象,我们对城市热岛效应的了解已有近 200 年的历史 。

        传统上,城市热岛指数被定义为气象站测量的城市与城外一些农村参考点之间的气温差异。这种方法的一个问题是,城市的不同部分可能有不同的气温,因此很难捕获整个城市的城市热岛。使用热带中的卫星观测使我们能够获得另一种温度测量方法:the radiometric skin temperature,通常称为陆地温度表面温度(LST)。我们可以使用LST来计算地表UHI(SUHI)强度,包括它在城市内如何在像素尺度上变化。这里需要强调的是,卫星观测到的UHI值和使用空气计算出的UHI值温度测量结果可能会有很大差异。

3.从MODIS获得地表温度

        地表温度可以从 MODIS Terra 和 Aqua 卫星产品等衍生产品中提取,也可以直接根据热波段中的卫星测量结果进行估算。我们将使用中国重庆市作为感兴趣区域来探索这两种选择(图 1)。我们将从 MODIS LST开始。

        我们首先加载重庆市的边界矢量数据,使用的代码如下,加载结果如图1所示:


// Load feature collection of chongqing from user assets.
var region = ee.FeatureCollection(table);
// Get dissolved feature collection using an error margin of 50 meters.
var region = region.union(50);
// Set map center and zoom level (Zoom level varies from 1to 20).
//Map.setCenter(region, 12);
// Add layer to map.
Map.addLayer(region, {}, 'chongqing boundary');

图1|重庆的边界 

        接下来,我们加载 MODIS MYD11A2 版本 6 产品,该产品提供来自 Aqua 卫星的八天 LST 合成数据。这对应于大约下午 1:30 的穿越赤道时间,白天和夜间凌晨1:30。相比之下,Terra 平台上的 MODIS 传感器(MOD11A2 版本 6)的通过时间约为当地时间上午10:30 和晚上10:30。 


// Load MODIS image collection from the Earth Engine datacatalog.
var modisLst = ee.ImageCollection('MODIS/006/MYD11A2');
// Select the band of interest (in this case: Daytime LST).
var landSurfTemperature = modisLst.select('LST_Day_1km');

        我们仅想关注夏季 SUHI,因此我们将使用一年中的日期过滤器组合每年6月1日(第152天)到8月31 日(第243天)的图像来创建LST的五年夏季合成:


// Create a summer filter.
var sumFilter = ee.Filter.dayOfYear(152, 243);
// Filter the date range of interest using a date filter.
var lstDateInt = landSurfTemperature
.filterDate('2014-01-01', '2019-01-01').filter(sumFilter);
// Take pixel-wise mean of all the images in thecollection.
var lstMean = lstDateInt.mean();

        现在,我们将此图像转换为以摄氏度为单位的 LST,并遮盖所有水像素(水的高比热容会影响 LST,我们关注于陆地像素)。对于水掩模,我们使用全球地表水数据集,为了转换像素值,我们使用数据提供者提供的波段的缩放因子,然后减去 273.15 以从开尔文转换为摄氏度,比例因子可以在Earth Engine 数据摘要页面中找到(图2)。

 图2 数据总结中的比例因子

        最后,我们使用城市边界裁剪图像并将图层添加到地图中,如图3所示。 

// Multiply each pixel by scaling factor to get the LST values.
var lstFinal = lstMean.multiply(0.02);
// Generate a water mask.
var water = ee.Image('JRC/GSW1_0/GlobalSurfaceWater').select('occurrence');
var notWater = water.mask().not();
// Clip data to region of interest, convert to degree Celsius, and mask water pixels.
var lstNewHaven = lstFinal.clip(region).subtract(273.15)
.updateMask(notWater);
// Add layer to map.
Map.addLayer(lstNewHaven, {
palette: ['blue', 'white', 'red'],
min: 25,
max: 38
},
'LST_MODIS');

图3|中国重庆白天 MODIS Aqua LST 的五年夏季合成图。红色像素显示较高的 LST 值,蓝色像素显示较低的值 

 4.从Landsat卫星获得地表温度

        使用 MODIS LST 相对简单,因为数据已经由 NASA 团队处理。我们还可以从Landsat获取LST,它的原始分辨率(根据卫星的不同,在60m到~120 m之间)比1kmMODIS像素要精细得多。然而,我们需要根据热波段中的测量结果自行推导出LST,这通常还涉及对表面发射率的一些估算。

        物体的表面发射率 (ε) 是指与相同温度下的黑体相比,物体发射热辐射的效率,范围可以从 0(对于完美反射体)到1(对于完美吸收体和发射体)。由于卫星捕获的热辐射是 LST 和 ε 的函数,因此您需要准确地规定或估计ε以获得正确的 LST。让我们考虑一种使用 Landsat8数据的简单方法。

        我们将首先加载陆地卫星数据、云筛选,然后过滤到感兴趣的时间和区域。继续在同一脚本中添加以下代码:

// Function to filter out cloudy pixels.
function cloudMask(cloudyScene) {
// Add a cloud score band to the image.
var scored =ee.Algorithms.Landsat.simpleCloudScore(cloudyScene);
// Create an image mask from the cloud score band and specify threshold.
var mask = scored.select(['cloud']).lte(10);
// Apply the mask to the original image and return the masked image.
return cloudyScene.updateMask(mask);
}
// Load the collection, apply coud mask, and filter to date and region of interest.
var col = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
.filterBounds(region)
.filterDate('2014-01-01', '2019-01-01')
.filter(sumFilter)
.map(cloudMask);
print('Landsat collection', col);

        创建中值合成作为进一步减少云影响的简单方法后,我们遮盖水像素并选择亮度温度波段。

// Generate median composite.
var image = col.median();
// Select thermal band 10 (with brightness temperature).
var thermal = image.select('B10')
.clip(region)
.updateMask(notWater);
Map.addLayer(thermal, {
min: 295,
max: 310,
palette: ['blue', 'white', 'red']
},
'Landsat_BT');

        亮度温度(图 4)是相当于从大气层顶部逸出的红外辐射的温度,假设地球是一个黑体。它与LST不同,LST 需要考虑大气吸收和再发射以及地表的发射率。导出像素级发射率的一种方法是作为像素植被比例的函数。为此,我们首先根据 Landsat 表面反射率数据计算归一化植被指数 (NDVI)(见图 5)。


// Calculate Normalized Difference Vegetation Index (NDVI)
// from Landsat surface reflectance.
var ndvi = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterBounds(region)
.filterDate('2014-01-01', '2019-01-01')
.filter(sumFilter)
.median()
.normalizedDifference(['SR_B5',
'SR_B4']).rename('NDVI')
.clip(region)
.updateMask(notWater);
Map.addLayer(ndvi, {
min: 0,
max: 1,
palette: ['blue', 'white', 'green']
},
'ndvi');

 图4|重庆市五年夏季陆地卫星亮温合成中值,红色像素显示较高的值,蓝色像素显示较低的值

图5|重庆市上空5年夏季Landsat NDVI合成中值,白色像素显示较高的 NDVI 值,蓝色像素显示较低的值 

        为了将每个像素的 NDVI 映射到植被像素的实际部分(植被覆盖率),我们接下来使用基于每个像素的 NDVI 值范围的关系。

// Find the minimum and maximum of NDVI. Combine the reducers
// for efficiency (single pass over the data).
var minMax = ndvi.reduceRegion({
reducer: ee.Reducer.min().combine({
reducer2: ee.Reducer.max(),
sharedInputs: true
}),
geometry: region,
scale: 30,
maxPixels: 1e9
});
print('minMax', minMax);
var min = ee.Number(minMax.get('NDVI_min'));
var max = ee.Number(minMax.get('NDVI_max'));

// Calculate fractional vegetation.
var fv = ndvi.subtract(min).divide(max.subtract(min)).rename('FV');
Map.addLayer(fv, {
min: 0,
max: 1,
palette: ['blue', 'white', 'green']
}, 'fv');

        现在,我们使用基于植被覆盖率的发射率经验模型。

// Emissivity calculations.
var a = ee.Number(0.004);
var b = ee.Number(0.986);
var em =
fv.multiply(a).add(b).rename('EMM').updateMask(notWater);
Map.addLayer(em, {
min: 0.98,
max: 0.99,
palette: ['blue', 'white', 'green']
},
'EMM');

        如图 6 所示,与植被上方相比,建筑结构上方的发射率较低,这是预期的。请注意,估计发射率的不同模型会导致 LST 值以及 SUHI 强度存在一些差异。

        然后,我们将该发射率与亮度温度结合起来,使用简单的单通道算法计算每个像素的 LST,这是辐射传输方程的线性近似。

 图6|重庆的地表发射率,基于植被比例。绿色像素显示较高的值,白色像素显示较低的值

// Calculate LST from emissivity and brightness temperature.
var lstLandsat = thermal.expression(
'(Tb/(1 + (0.001145* (Tb / 1.438))*log(Ep)))-273.15', {
'Tb': thermal.select('B10'),
'Ep': em.select('EMM')
}).updateMask(notWater);
Map.addLayer(lstLandsat, {
min: 25,
max: 35,
palette: ['blue', 'white', 'red'],
},
'LST_Landsat');

图7|重庆市上空陆地卫星得出的地表温度的五年夏季中值合成图。红色像素显示较高的 LST 值,蓝色像素显示较低的值

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

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

相关文章

【ERP原理与应用】作业·思考题三、四

思考题三 P77第四章3, 6,8 3.生产规划的基本内容是什么? 生产规划是根据企业未来一段时间内预计资源可用量和市场需求量之间的平衡所制定的概括性设想是根据企业所拥有的生产能力和需求预测,对企业未来较长一段时间内的产品、产…

基于springboot和vue的在线图书管理系统

目 录 摘要…………………………………………………………………………………………………………1 引言/引论 …………………………………………………………………………………………………2 1.绪论……………………………………………………………………………………3 1.1 背…

Go语言爬虫实战(线程池)

Go语言爬虫实战 目标 利用go语言爬取指定网站的图片。实现爬取网站任意页面所有所需的图片。实现使用go语言线程池开启多个线程爬取图片内容。最后实现创建多个文件夹存储图片。 爬取网站图片 步骤 对指定URL发去GET请求,获取对应的响应。 resp, err : http.Get(…

【STM32嵌入式系统设计与开发】——13WWDG(窗口看门狗应用)

这里写目录标题 一、任务描述二、任务实施1、WWDG工程文件夹创建2、函数编辑(1)主函数编辑(2)USART1初始化函数(usart1_init())(3)USART数据发送函数( USART1_Send_Data(&#xff09…

单词频次-第12届蓝桥杯选拔赛Python真题精选

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第44讲。 单词频次&#xf…

大模型重塑电商,淘宝、百度、京东讲出新故事

配图来自Canva可画 随着AI技术日渐成熟,大模型在各个领域的应用也越来越深入,国内互联网行业也随之进入了大模型竞赛的后半场,开始从“百模大战”转向了实际应用。大模型从通用到细分垂直领域的跨越,也让更多行业迎来了新的商机。…

Python学习:lambda(匿名函数)、装饰器、数据结构

Python Lambda匿名函数 Lambda函数(或称为匿名函数)是Python中的一种特殊函数,它可以用一行代码来创建简单的函数。Lambda函数通常用于需要一个函数作为输入的函数(比如map(),filter(),sort()等&#xff0…

boost::asio::ip::tcp/udp::socket::release 函数为什么限制 Windows 8.1 才可以调用?

如本文题目所示,这是因为只有在 Windows 8.1(Windows Server 2012 RC)及以上 Windows 操作版本才提供了运行时,修改/删除完成端口关联的ABI接口。 boost::asio 在 release 函数底层实现之中是调用了 FileReplaceCompletionInform…

(完结)Java项目实战笔记--基于SpringBoot3.0开发仿12306高并发售票系统--(三)项目优化

本文参考自 Springboot3微服务实战12306高性能售票系统 - 慕课网 (imooc.com) 本文是仿12306项目实战第(三)章——项目优化,本篇将讲解该项目最后的优化部分以及一些压测知识点 本章目录 一、压力测试-高并发优化前后的性能对比1.压力测试相关…

Modelsim手动仿真实例

目录 1. 软件链接 2. 为什么要使用Modelsim 3. Modelsim仿真工程由几部分组成? 4. 上手实例 4.1. 新建文件夹 4.2. 指定目录 4.3. 新建工程 4.4. 新建设计文件(Design Files) 4.5. 新建测试平台文件(Testbench Files&…

H7310 线性恒流调光芯片 支持24V30V48V60V100V转3.3V5V12V1.5A 外围简单 性价比高

线性恒流调光芯片是一种能够将输入电压稳定转换为恒定电流输出的电子设备,同时支持调光功能。这种芯片通常具有较高的效率和稳定性,适用于LED照明、显示屏等领域。 针对您提到的支持24V、30V、48V、60V、100V转3.3V、5V、12V,并且能够提供1.…

二十九 超级数据查看器 讲解稿 查询复用

二十九 超级数据查看器 讲解稿 查询复用 ​点击此处 以新页面 打开B站 播放当前教学视频 点击访问app下载页面 百度手机助手 下载地址 大家好,今天我们讲一下超级数据查看器的查询复用功能,这是新版本要增加的功能,这讲是预告。 先介绍…

数据可视化Grafana Windows 安装使用教程(中文版)

1.跳转连接 天梦星服务平台 (tmxkj.top)https://tmxkj.top/#/site?url 2.下载应用程序 官网地址:Grafana get started | Cloud, Self-managed, Enterprisehttps://grafana.com/get/ 3.修改配置文件 grafana\conf\defaults 4.启动\bin\目录下serve应用程序 浏…

机器学习——降维算法-主成分分析(PCA)

机器学习——降维算法-主成分分析(PCA) 在机器学习领域,主成分分析(Principal Component Analysis,简称PCA)是一种常用的降维技术,用于减少数据集中特征的数量,同时保留数据集的主要…

尾矿库在线安全监测:提升矿山安全水平

在矿山安全领域,尾矿库的安全管理尤为关键。尾矿库作为矿山生产链条的重要环节,其稳定性不仅关系到生产活动的持续进行,更直接影响着周边环境和人民群众的生命财产安全。因此,尾矿库的安全监测显得尤为重要。近年来,随…

YOLOv9改进策略 : C2f改进 | 引入YOLOv8 C2f结构

💡💡💡本文改进内容:应订阅者需求,如何将YOLOv8 C2f结构引入到YOLOv9 💡💡💡C2f层是一种特殊的卷积层,用于将不同尺度的特征图融合在一起,以提高目标检测的准…

XXE漏洞知识及ctfshow例题

XXE漏洞相关知识 XXE全称为XML Enternal Entity Injection 中文叫xml外部实体注入 什么是xml 简单了解XML: (xml和html的区别可以简易的理解成:xml是用来储存数据和传输数据的而html是用来将数据展现出来) XML 指可扩展标记语…

UE5数字孪生系列笔记(三)

C创建Pawn类玩家 创建一个GameMode蓝图用来加载我们自定义的游戏Mode新建一个Pawn的C,MyCharacter类作为玩家,新建一个相机组件与相机臂组件,box组件作为根组件 // Fill out your copyright notice in the Description page of Project Set…

【力扣】300. 最长递增子序列(DFS+DP两种方法实现)

目录 题目传送最长递增子序列[DFS 方法]DFS方法思路图思路简述代码大家可以自行考虑有没有优化的方法 最长递增子序列[DP]方法DP方法思路图思路简述代码方案 题目传送 原题目链接 最长递增子序列[DFS 方法] DFS方法思路图 思路简述 对于序列中的每一个数字只有选择和不选择两…

C语言查找-----------BF算法KMP算法

1.问题引入 有一个主字符串,有一个子字符串,要求我们寻找子字符串在主字符串里面开始出现的位置; 2.BF算法 BF算法就是暴力算法,这个做法虽然效率不高,但是按照我们传统的思路依然能够得到结果,接下来我们…