I'm trying to get albedo for my study area but my values are not coming good. I need values in range of 0-1 but these values are out of this range. I don't know when I multiply scale value, its not working yet. My code is

//cloud mask
function maskL8sr(col) {
  // Bits 3 and 5 are cloud shadow and cloud, respectively.
  var cloudShadowBitMask = (1 << 3);
  var cloudsBitMask = (1 << 5);
  // Get the pixel QA band.
  var qa = col.select('pixel_qa');
  // Both flags should be set to zero, indicating clear conditions.
  var mask = qa.bitwiseAnd(cloudShadowBitMask).eq(0)
  return col.updateMask(mask);

var albedo = function(image){
  var alb = image.expression(
  "((0.356*blue)+(0.130*red)+(0.373*nir)+(0.085*swir)+(0.072*swir2)- 0.018)/ 1.016",
    'red': image.select('B3'),
    'blue':  image.select('B1'),
    'nir':  image.select('B4'),
    'swir':  image.select('B5'),
    'swir2':  image.select('B7')

var dataset = ee.ImageCollection('LANDSAT/LC08/C01/T1_SR')
                  .filterDate('2016-01-01', '2020-12-31')

// print("dataset",dataset);

var myAlbedo = dataset.select("albedo").mosaic(); 
// print("myAlbedo",myAlbedo);

Map.addLayer(myAlbedo, Albedo_pallete, "Albedo" )

The script is given: https://code.earthengine.google.com/0da82ade43f03592f22233123d40a67a

1 Answer 1


The LANDSAT/LC08/C01/T1_SR image collection has a scale of 0.0001, i.e, values are between 0 and 10,000 instead of 0 and 1 as the albedo function expects. Multiply the bands with 0.0001 before doing the calculation.


Note that this image collection is deprecated, so might want to switch to LANDSAT/LC08/C02/T1_L2. To get these values between 0 and 1 you have to multiply with 2.75e-05 and subtract 0.2. Band names have also changed and you have to tweak your cloud masking function.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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