GEE|Landsat数据的scale问题

根据GEE官方公告,原来的Landsat/LT05/C01/T1_SR和Landsat/LC08/C01/T1_SR数据集停止更新,并提供了新的地表反射率数据,就是LANDSAT/LT05/C02/T1_L2和LANDSAT/LC08/C02/T1_L2。新的数据集直接提供LST产品,方便获取地表温度,同时也给出官方代码去云处理。在查看官方代码时发现了一段奇怪的代码:

var opticalBands = image.select('SR_B.').multiply(0.0000275).add(-0.2);
var thermalBands = image.select('ST_B.*').multiply(0.00341802).add(149.0);

实际上是因为GEE官方为了减少数据的存储量,对数据进行了压缩处理,因此在使用的时候需要进行缩放,也就是乘以scale并加上offset。

如图中bands中,标出的Scale与Offset,在下载数据时需要乘以这个scale并加上offset。

在早期的GEE示例代码中,只有去云的cloudMask代码,但并没有该操作,需要用户下载后自己计算该过程。

此前下载数据后没有意识到该问题,直接拿来用或者除以10000后继续使用。除以10000跟乘以上述比例因子的结果是完全不同的,土壤的单波段反射率能相差0.1左右。在波段10地表温度中的比例因子也不同,需要注意。

最新的Landsat的示例代码中已经乘以了该比例因子,具体如下:

// 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);
posted @ 2022-09-21 09:53  Weltㅤ  阅读(1141)  评论(0编辑  收藏  举报