0

我正在使用 Landsat-8 数据LANDSAT/LC08/C02/T1_L2计算地表温度 (LST),因为LANDSAT/LC08/C01/T1_SR已被弃用。我在这里按照示例进行操作。我修改了相同的代码,但它给出了不同且可能不正确的结果。

// Import country boundaries feature collection.
var dataset = ee.FeatureCollection('USDOS/LSIB_SIMPLE/2017');

// Apply filter where country name equals Uganda.
var geometry = dataset.filter(ee.Filter.eq('country_na', 'Uganda'));


function applyScaleFactors(image) {
  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);
}

//loading 
 {
var dataset = ee.ImageCollection("LANDSAT/LC08/C02/T1_L2")
.filterDate('2018-01-01','2018-12-31')
.filterBounds(geometry);
}
//applying scaling factor
dataset = dataset.map(applyScaleFactors);

var image = dataset.median();

var ndvi = image.normalizedDifference(['SR_B5', 
'SR_B4']).rename('NDVI');


//selecting thermal band ST_B10
var thermal= image.select('ST_B10');
;

// find the min and max of NDVI
{
var min = ee.Number(ndvi.reduceRegion({
reducer: ee.Reducer.min(),
geometry: geometry,
scale: 30,
maxPixels: 1e9
}).values().get(0));
print(min, 'min');
var max = ee.Number(ndvi.reduceRegion({
reducer: ee.Reducer.max(),
geometry: geometry,
scale: 30,
maxPixels: 1e9
}).values().get(0));
print(max, 'max')
}

//fractional vegetation

var fv =(ndvi.subtract(min).divide(max.subtract(min))).pow(ee.Number(2)).rename('FV'); 


//Emissivity

var a= ee.Number(0.004);
var b= ee.Number(0.986);
var EM=fv.multiply(a).add(b).rename('EMM');

//LST in Celsius Degree bring -273.15
//NB: In Kelvin don't bring -273.15
var LST = thermal.expression(
'(Tb/(1 + (0.00115* (Tb / 1.438))*log(Ep)))-273.15', {
 'Tb': thermal.select('ST_B10'),
'Ep': EM.select('EMM')
}).rename('LST');
Map.addLayer(LST, {min: 20.569706944223423, max:29.328077233404645, palette: [
'040274', '040281', '0502a3', '0502b8', '0502ce', '0502e6',
'0602ff', '235cb1', '307ef3', '269db1', '30c8e2', '32d3ef',
'3be285', '3ff38f', '86e26f', '3ae237', 'b5e22e', 'd6e21f',
'fff705', 'ffd611', 'ffb613', 'ff8b13', 'ff6e08', 'ff500d',
'ff0000', 'de0101', 'c21301', 'a71001', '911003'
 ]},'LST');

使用collection1的结果,看起来准确, 结果使用 LANDSAT/LC08/C01/T1_SR

使用 collection2 的结果似乎不正确, 使用集合 2 的结果

4

0 回答 0