Skip to content

Instantly share code, notes, and snippets.

@jdbcode
Created October 22, 2021 18:53
Show Gist options
  • Save jdbcode/a872f61ffcd0c8dafb9f32bdf1158a82 to your computer and use it in GitHub Desktop.
Save jdbcode/a872f61ffcd0c8dafb9f32bdf1158a82 to your computer and use it in GitHub Desktop.
// Applies scaling factors.
var applyScaleAndOffset = function(img) {
var getFactorImg = function(factorNames) {
var factorList = img.toDictionary().select(factorNames).values();
return ee.Image.constant(factorList);
};
var scaleImg = getFactorImg(['CMI_C.._scale']);
var offsetImg = getFactorImg(['CMI_C.._offset']);
var scaled = img.select('CMI_C..').multiply(scaleImg).add(offsetImg);
return img.addBands({srcImg: scaled, overwrite: true});
};
// Adds a synthetic green band.
var addGreenBand = function(img) {
var green = img.expression({
expression: 'CMI_GREEN = 0.45 * red + 0.10 * nir + 0.45 * blue',
map: {
blue: img.select('CMI_C01'),
red: img.select('CMI_C02'),
nir: img.select('CMI_C03')
}
});
return img.addBands(green);
};
// Scales select bands for visualization.
var scaleForVis = function(img) {
return img.select(['CMI_C01', 'CMI_GREEN', 'CMI_C02', 'CMI_C03', 'CMI_C05'])
.resample('bicubic')
.log10()
.interpolate([-1.6, 0.176], [0, 1], 'clamp')
.unmask(0)
.set('system:time_start', img.get('system:time_start'));
};
// Wraps previous functions.
var processForVis = function(img) {
return scaleForVis(addGreenBand(applyScaleAndOffset(img)));
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment