老样子,最近在做生态方面的项目,然后需要分析城市的热岛效应,想了想还是用GEE计算比较简单,直接下载影像太麻烦了。所以在网上看看了资料,踩了踩坑终于是将代码写出来了。秉承着取之于民、用之于民的想法,今天给大家分享一下如何使用GEE的Landsat8数据集进行地表温度的反演。
老样子,最近在做生态方面的项目,然后需要分析城市的热岛效应,想了想还是用GEE计算比较简单,直接下载影像太麻烦了。所以在网上看看了资料,踩了踩坑终于是将代码写出来了。秉承着取之于民、用之于民的想法,今天给大家分享一下如何使用GEE的Landsat8数据集进行地表温度的反演。
踩坑1:网上大部分的资源都是C01数据集,但是GEE在2021年的时候就已经将Landsat8数据整合到C02数据集中了,所以直接用网上的代码可能会出现波段不存在的报错!
踩坑2:资源质量不一,有的用地表反射率产品,有的用大气产品导致代码复杂,不容易复现!
一、思路
Landsat8数据的L2级产品的热红外波段ST_B10就直接对应着地表温度,只需简单计算即可获取摄氏度。(问就是不知道,以前做的都是单床算法啥的计算NDVI进行反演)GEE官方给出了这个example所以就直接用了。
二、代码
记得将自己的研究区导进去,默认命名是table,所以导进去直接运行即可。
var roi = table
var style_set = {color:"red",fillColor:"00000000"};
Map.addLayer(roi.style(style_set),{},"shape")
Map.centerObject(roi,10)
function maskL8sr(image) {
var qaMask = image.select('QA_PIXEL').bitwiseAnd(parseInt('11111', 2)).eq(0);
var saturationMask = image.select('QA_RADSAT').eq(0);
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)
.updateMask(qaMask)
.updateMask(saturationMask);
}
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterDate('2022-01-01', '2022-12-31')
.map(maskL8sr)
.median()
.clip(roi);
var img = collection.select("ST_B10")
var lst = img.expression(
'B1-273.15',
{
B1:img.select('ST_B10'),
});
print("LST直方图", ui.Chart.image.histogram(lst, roi, 100, 258))
print(lst)
Map.addLayer(lst, {'min':2,'max':49,'palette':["eff3ff","c6dbef","9ecae1","6baed6","4292c6","2171b5","084594",
"fff5f0","fee0d2","fcbba1","fc9272","fb6a4a","ef3b2c","cb181d","99000d"]}, 'lst')
function exportImage(image, roi, fileName) {
Export.image.toDrive({
image: image,
description: "Landsat8"+fileName,
fileNamePrefix: fileName,
folder: "Landsat 8",
scale: 30,
region: roi,
maxPixels: 1e13,
crs: "EPSG:4326"
});
}
exportImage(lst,roi,"lst")

三、效果图
我这里输出了一个温度直方图分布图,一个栅格数据。栅格数据的导出代码也写进去了。运行后直接到Tasks里面下载即可!
这个专栏开了之后也不知道怎么分享博文,感觉没什么好写的,不如直接放代码。但是有感觉光放代码有比较单调,很烦。等后期看看如何改进,大家有什么问题可以随时留言交流!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 【全网最全教程】使用最强DeepSeekR1+联网的火山引擎,没有生成长度限制,DeepSeek本体