1

How can I normalize pixel values from 0 to 1 or 0 to 100? Is there any function or command related to it? I'm using JavaScript.

0

If you want that done on a known or preset min and max values, apply unitScale(low, high) on the image you have directly.

If you want to calculate the min and max value on a per image, per band value, use the following code:

// get one image
var image = ee.ImageCollection("LANDSAT/LC08/C01/T1_RT").first();
// calculate the min and max value of an image
var minMax = image.reduceRegion({
  reducer: ee.Reducer.minMax(),
  geometry: image.geometry(),
  scale: 30,
  maxPixels: 10e9,
  // tileScale: 16
}); 
// use unit scale to normalize the pixel values
var unitScale = ee.ImageCollection.fromImages(
  image.bandNames().map(function(name){
    name = ee.String(name);
    var band = image.select(name);
    return band.unitScale(ee.Number(minMax.get(name.cat('_min'))), ee.Number(minMax.get(name.cat('_max'))))
                // eventually multiply by 100 to get range 0-100
                //.multiply(100);
})).toBands().rename(image.bandNames());

// add the the map
Map.addLayer(image, {min: 0, max: 35000, bands: ['B4', 'B3', 'B2']}, 'original')
Map.addLayer(unitScale, {min: 0, max: 1, bands: ['B4', 'B3', 'B2']}, 'unitscaled')
Map.centerObject(unitScale)

link

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.