最近做了一些有关 LST 反演的代码,使用到了 Landsat-8 的 L1 级别数据和 L2 级别数据。因此,本文分别举例了针对 image 和 imageCollection 做 LST 反演的代码。
文章目录
-
-
-
- Landsat-8-T1 反演LST
- Landsat-8-T1_L2 反演LST
-
-
Landsat-8-T1 反演LST
数据集:LANDSAT/LC08/C01/T1
反演对象:影像
操作波段:B10
结果展示:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicWZwpmLkRDM1UDMxUTY5gTZhZWM4IGM2QzMmlTYjRDN0IjYlZ2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpeg)
var roi = table;
Map.centerObject(roi,10);
var L8 = ee.ImageCollection("LANDSAT/LC08/C01/T1")
.filterBounds(roi)
.filterDate('2020-06-01','2020-6-30')
.filterMetadata('CLOUD_COVER',"less_than",50)
.map(remove_cloud)
.map(radiance)
.select(['B2', 'B3', 'B4', 'B5', 'B6', 'B10', 'B7', 'B6_radiance'], ['B1', 'B2', 'B3', 'B4', 'B5', 'B6','B7', 'B6_radiance'])
.mean()
.clip(roi)
print(L8)
//Landsat-8去云
function remove_cloud(image){
var image_qa = image.select('BQA');
var maskComposite = image_qa.bitwiseAnd(1 << 4).eq(0)
return image.updateMask(maskComposite)
}
//Landsat-8辐射校正
function radiance(image){
var ThermalRadiance=ee.Algorithms.Landsat.calibratedRadiance(image.select('B6')).rename('B6_radiance');
return image.addBands(ThermalRadiance)
}
//LST函数
function calLST(img){
var NDVI = img.normalizedDifference(['B4','B3']).rename('ndvi');
var B6 = img.select('B6').multiply(0.1)
var imgFVC = ((NDVI.subtract(ee.Image(0.05))).divide((ee.Image(0.95)).subtract(ee.Image(0.05)))).float();
var FVC=((imgFVC.lt(0)).multiply(0))
.add(((imgFVC.gt(0)).and(imgFVC.lte(1))).multiply(imgFVC))
.add((imgFVC.gt(1)).multiply(1))
var c = FVC.expression("0.004*FVC+0.986", {FVC: FVC})
var LST = B6.expression('(L8_B10/(1 + (0.00109* (L8_B10 / 1.438))*log(c)))-273.15', {
L8_B10: L8_B10,
c: c,
})
return img.addBands(LST.multiply(0.01).rename('LST'))
}
var LST = calLST(L8);
Map.addLayer(LST.select('LST'),{min:29, max:33, palette:['adff2f','c0e366', 'ccc68b', 'd2a8aa', 'd388c7', 'd063e3', 'c72fff']},'LST');
Landsat-8-T1_L2 反演LST
数据集:LANDSAT/LC08/C02/T1_L2
反演对象:影像集合
操作波段:ST_B10
结果展示:
var roi = table
Map.centerObject(roi,9)
var landsat8 = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
var landsat8Col = landsat8.filterDate('2020-6-1', '2020-6-30')
.filterBounds(roi)
.filter(ee.Filter.lte('CLOUD_COVER',15))
.select('SR_B1','SR_B2','SR_B3','SR_B4','SR_B5','SR_B6','SR_B7','ST_B10','QA_PIXEL','QA_RADSAT')
.map(roiClip)
.sort('system:index')
//按矢量边界裁剪
function roiClip(image){
return image.clip(roi)
}
//计算LST
function CalLST(image) {
var b1 = image.select('ST_B10');
var Albedo = image.select('ST_B10');
return Albedo.multiply(0.00341802).add(149.0).subtract(273.15).rename(['LST']).copyProperties(image, image.propertyNames());
}
var LST = landsat8Col.map(CalLST);
Map.addLayer(LST.select('LST'),{min:36, max:47, palette:['adff2f','c0e366', 'ccc68b', 'd2a8aa', 'd388c7', 'd063e3', 'c72fff']},'LST');