作者:CSDN @ _养乐多_
本文将分享论文《Google Earth Engine Open-Source Code for Land Surface Temperature Estimation from the Landsat Series》中的基于Landsat时间序列影像计算地表温度的API和获取指定点(Land Surface Temperature,LST)时间序列的代码。
Ermida, S.L.; Soares, P.; Mantas, V.; Göttsche, F.-M.; Trigo, I.F. Google Earth Engine Open-Source Code for Land Surface Temperature Estimation from the Landsat Series. Remote Sens. 2020, 12, 1471. https://doi.org/10.3390/rs12091471
结果如下图所示,
文章目录
- 一、代码框架
- 二、代码链接
- 三、完整代码
一、代码框架
代码主要使用var LandsatLST = require('users/sofiaermida/landsat_smw_lst:modules/Landsat_LST.js')
,这是作者在论文中分享的代码库,是作者原创代码,我们直接调用就可以。
二、代码链接
https://code.earthengine.google.com/eee168c139b6bc407823c8246f52b51?noload=true
三、完整代码
// 脚本展示如何获取不同地表类型的Landsat LST时间序列var metalroof = ee.Geometry.Point([116.41051, 39.916715]);
var concreteroof = ee.Geometry.Point([116.412999, 39.915942]);
var airport = ee.Geometry.Point([116.38797, 39.51279]);
var water = ee.Geometry.Point([116.382853, 39.928049]);
var forest = ee.Geometry.Point([116.38706, 40.01707]);// 使用京津冀边界
var 京津冀 = ee.FeatureCollection('users/949384116/JJJJYY');
var geometry = 京津冀.geometry();
Map.centerObject(geometry, 12);// 方法1
// Sofia Ermida编写的LST计算代码(sofia.ermida@ipma.pt; @ermida_sofia)// Ermida, S.L., Soares, P., Mantas, V., Göttsche, F.-M., Trigo, I.F., 2020.
// Google Earth Engine开源代码,用于从Landsat系列估算地表温度。
// Remote Sensing, 12 (9), 1471; https://doi.org/10.3390/rs12091471
var LandsatLST = require('users/sofiaermida/landsat_smw_lst:modules/Landsat_LST.js')// 设置参数以获取Landsat 8数据
var satellite = 'L8';
var date_start = '2023-01-01';
var date_end = '2024-01-01';
var use_ndvi = true;// 获取添加了变量(NDVI、FVC、TPW、EM、LST)的Landsat集合
var LandsatColl = LandsatLST.collection(satellite, date_start, date_end, geometry, use_ndvi)// 选择LST波段
var lstK = LandsatColl.select('LST')// 转换为摄氏度
var lstC = lstK.map(function(image){return image.subtract(273.15).copyProperties(image, image.propertyNames())
})// 过滤到五月份的图像以在地图中可视化
var lstMay = lstC.filter(ee.Filter.date('2023-04-01', '2023-05-01')).mean()Map.addLayer(lstMay.clip(geometry), {min:25, max:45, palette:['green','yellow','red']}, 'Landsat-LST (Ermida, S.L)')// 创建LST时间序列图表
var chart = ui.Chart.image.seriesByRegion({imageCollection:lstC, regions: [airport, metalroof, concreteroof, forest, water],reducer:ee.Reducer.mean(),band:['LST'],scale:30, xProperty:'system:time_start',
}).setOptions({lineWidth: 1,title: '地表温度时间序列 (Ermida, S.L)',interpolateNulls: true,viewWindowMode:'explicit',viewWindow: {max:50,min:25},vAxis: {title: 'LST (°C)'},hAxis: {title: '', format: 'YYYY-MMM'},series: {0: {color: 'red', labelInLegend: '北京大兴机场机场跑道'}, 1: {color: 'pink', labelInLegend: '居民区(金属屋顶)'}, 2: {color: 'grey', labelInLegend: '住宅区(混凝土屋顶)'},3: {color: 'green', labelInLegend: '北京奥林匹克森林公园森林'},4: {color: 'blue', labelInLegend: '水域'}} })print(chart);