天天看点

GEE:LST地表温度反演函数(针对Landsat8的T1影像和T1_L2影像集合)

最近做了一些有关 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

结果展示:

GEE:LST地表温度反演函数(针对Landsat8的T1影像和T1_L2影像集合)
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

结果展示:

GEE:LST地表温度反演函数(针对Landsat8的T1影像和T1_L2影像集合)
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');
           

继续阅读