很多时候我们将利用Landsat中的ST波段进行分析,这里我们首先再GEE原有的代码中进行初始影像的查看代码如下:
var dataset = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2') .filterDate('2021-05-01', '2021-06-01'); // Applies scaling factors. 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); } dataset = dataset.map(applyScaleFactors); var visualization = { bands: ['SR_B4', 'SR_B3', 'SR_B2'], min: 0.0, max: 0.3, }; Map.setCenter(-114.2579, 38.9275, 8); Map.addLayer(dataset, visualization, 'True Color (432)');
再此代码基础上继续分析,这里需要根据公式来计算LST,但是这里我们查看代码有问题,问题如下:
第一个问题:
Image (Error)
Image.select: Pattern 'B10' did not match any bands.
这里的问题就在于我们影像中并没有这个波段,原始波段中仅有ST_B10波段,所以不能拿过代码来就用,我们需要根据波段名称就直接用,所以我们得注意。在进行分析前,一定要查看相应的波段。另外,你使用的是Landsat8的影像,波段的年限是2013年开始,所以for循环不要超过这个期限。
然后我们再看最后一个错误:
Image (Error)
Image.parseExpression: Expression parse error at character 28: 'T/(1+(10.9*T/1438e10-2)*log(ε))-273.15' ^.
0.135335*1438
表达式错误:
(T/((1+(10.9*T/1438)*ε1)-273.15))也就是这个错误,我们需要重新编辑这个函数
expression(expression, map)
Evaluate