2

After applying scale factors to images in the LANDSAT/LC08/C02/T1_L2 collection, as prescribed in the EE data-set catalog, I expected the SR_B. bands to have values between 0 and 1. However, some pixels are negative. Is this to be expected?

var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_142040_20210507')
var scaled = applyScaleFactors(image)

Map.addLayer(scaled.select('SR_B4').lt(0), null, 'Negative red')
Map.centerObject(ee.Geometry.Point([84.4496, 28.9224]), 13)


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)
}

Here is a script with some additional layers added for debugging. Use the inspector in the EE Code Editor and inspect a white Negative red pixel.

1 Answer 1

2

It's a "known" issue with the current surface reflectance computation.

In this case, the negative values are in pixels already flagged as cloud-shadow.

2
  • So it's safe to clamp(0, 1) then, I assume? Commented Apr 4, 2022 at 12:52
  • Yes... although you'd probably be better off discarding those pixels as part of the masking. Commented Apr 4, 2022 at 14:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.