I am trying to create a composite image from an image collection (In this example Sentinel 2) where the pixel value for the resulting composite is the lower or upper quartiles of the pixel value distribution.

Its easy to get the mean, median, maximum and minimum pixel values but I don't know how to make a composite of lower quartile values.

// In this code I created a collection where all the clouds had been removed
// I then mapped the NDVI values to the entire Collection.
// I want to create a composite image of the lower quartile NDVI values

var withNDVI = col_noclouds.map(addNDVI);

// Get the max, min and median values in each band.
var maximum = withNDVI.max();
var minimum = withNDVI.min();
var median = withNDVI.median();

// Display the composite.
Map.addLayer(maximum, ndviParams_Col, 'maximum_NDVI');
Map.addLayer(median, ndviParams_Col, 'median_NDVI');
Map.addLayer(minimum, ndviParams_Col, 'minimum_NDVI');

If anyone can suggest a way to create a composite of lower quartile pixel values that would be very useful.

  • You have quite a few undefined variables and functions in your code example. For example: col_noclouds, addNDVI, ndviParams_Col. You are more likely to get help if you provide a complete example. – Tyler Erickson Dec 16 '17 at 23:47
  • Thanks Tyler. I didnt post the whole thing as its very long and involved :) – Hayden Wilson Dec 18 '17 at 5:49

You can use ee.ImageCollection.reduce() and ee.Reducer.percentile() to create a lower quartile composite. For example:

  {bands:'NDVI_p25', min:-1, max:1},
  '25 percentile NDVI'

Your Answer

