Untitled
unknown
javascript
3 years ago
2.5 kB
10
Indexable
// ===================== normalization function ============================================================================// var region = geometry var scale = image_scale function normalization(image,region,scale){ var mean_std = image.reduceRegion({ reducer: ee.Reducer.mean() .combine(ee.Reducer.stdDev(),null, true), geometry: region, scale: scale, 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); var mean=ee.Number(mean_std.get(name.cat('_mean'))); var std=ee.Number(mean_std.get(name.cat('_stdDev'))); var max=mean.add(std.multiply(3)) var min=mean.subtract(std.multiply(3)) var band1=ee.Image(min).multiply(band.lt(min)).add(ee.Image(max).multiply(band.gt(max))) .add(band.multiply(ee.Image(1).subtract(band.lt(min)).subtract(band.gt(max)))) var result_band=band1.subtract(min).divide(max.subtract(min)); return result_band; })).toBands().rename(image.bandNames()); return unitScale // .multiply(100) ; } function normalization_100(image,region,scale){ var mean_std = image.reduceRegion({ reducer: ee.Reducer.mean() .combine(ee.Reducer.stdDev(),null, true), geometry: region, scale: scale, 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); var mean=ee.Number(mean_std.get(name.cat('_mean'))); var std=ee.Number(mean_std.get(name.cat('_stdDev'))); var max=mean.add(std.multiply(3)) var min=mean.subtract(std.multiply(3)) var band1=ee.Image(min).multiply(band.lt(min)).add(ee.Image(max).multiply(band.gt(max))) .add(band.multiply(ee.Image(1).subtract(band.lt(min)).subtract(band.gt(max)))) var result_band=band1.subtract(min).divide(max.subtract(min)); return result_band; })).toBands().rename(image.bandNames()); return unitScale .multiply(100) ; } // Normalize BI and AVI var BI = normalization_100(bsi,region, scale) var AVI = normalization_100(avi,region, scale) // Map.addLayer(AVI, imageVisParam5, 'AVI_Nom') // Map.addLayer(BI, imageVisParam6, 'BI_Nom', 0) // //
Editor is loading...