ee.ImageCollection.qualityMosaic
Composites all the images in a collection, using a quality band as a per-pixel ordering function.
Usage | Returns |
---|
ImageCollection.qualityMosaic(qualityBand) | Image |
Argument | Type | Details |
---|
this: collection | ImageCollection | The collection to mosaic. |
qualityBand | String | The name of the quality band in the collection. |
Examples
// The goal is to generate a best-pixel mosaic from a collection of
// Sentinel-2 images where pixel quality is based on a cloud probability score.
// The qualityMosaic() function selects the image (per-pixel) with the HIGHEST
// quality-band-score to contribute to the resulting mosaic. All bands from the
// selected image (per-pixel) associated with the HIGHEST quality-band-score
// are included in the output.
// A Sentinel-2 SR image collection (2 months of images at a specific point).
var col = ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
.filterBounds(ee.Geometry.Point(-103.19, 40.14))
.filterDate('2020-07-01', '2020-09-01');
// Because cloud probability ranges from 0 to 100 percent (low to high), we need
// to invert the MSK_CLDPRB band values so that low cloud probability pixels
// indicate high quality. Here, an inverting function is mapped over the
// image collection, the inverted MSK_CLDPRB band is added as a "quality" band.
col = col.map(function(img) {
var cldProb = img.select('MSK_CLDPRB');
var cldProbInv = cldProb.multiply(-1).rename('quality');
return img.addBands(cldProbInv);
});
// Image visualization settings.
var visParams = {
bands: ['B4', 'B3', 'B2'],
min: 0,
max: 4500
};
Map.setCenter(-103.19, 40.14, 9);
Map.addLayer(col, visParams, 'Collection (for series inspection)', false);
// Generate a best-pixel mosaic from the image collection.
var img = col.qualityMosaic('quality');
Map.addLayer(img, visParams, 'Best-pixel mosaic (by cloud score)');
// To build the worst-pixel mosaic, according to cloud probability, use the
// MSK_CLDPRB band as the quality band (the worst pixels have HIGHEST cloud
// probability score).
var img = col.qualityMosaic('MSK_CLDPRB');
Map.addLayer(img, visParams, 'Worst-pixel mosaic (by cloud score)', false);
Python setup
See the
Python Environment page for information on the Python API and using
geemap
for interactive development.
import ee
import geemap.core as geemap
# The goal is to generate a best-pixel mosaic from a collection of
# Sentinel-2 images where pixel quality is based on a cloud probability score.
# The qualityMosaic() function selects the image (per-pixel) with the HIGHEST
# quality-band-score to contribute to the resulting mosaic. All bands from the
# selected image (per-pixel) associated with the HIGHEST quality-band-score
# are included in the output.
# A Sentinel-2 SR image collection (2 months of images at a specific point).
col = (
ee.ImageCollection('COPERNICUS/S2_SR_HARMONIZED')
.filterBounds(ee.Geometry.Point(-103.19, 40.14))
.filterDate('2020-07-01', '2020-09-01')
)
# Because cloud probability ranges from 0 to 100 percent (low to high), we need
# to invert the MSK_CLDPRB band values so that low cloud probability pixels
# indicate high quality. Here, an inverting function is mapped over the
# image collection, the inverted MSK_CLDPRB band is added as a "quality" band.
def invertCloudProbabilityBand(img):
cldProb = img.select('MSK_CLDPRB')
cldProbInv = cldProb.multiply(-1).rename('quality')
return img.addBands(cldProbInv)
col = col.map(invertCloudProbabilityBand)
# Image visualization settings.
vis_params = {'bands': ['B4', 'B3', 'B2'], 'min': 0, 'max': 4500}
m = geemap.Map()
m.set_center(-103.19, 40.14, 9)
m.add_layer(col, vis_params, 'Collection (for series inspection)', False)
# Generate a best-pixel mosaic from the image collection.
img = col.qualityMosaic('quality')
m.add_layer(img, vis_params, 'Best-pixel mosaic (by cloud score)')
# To build the worst-pixel mosaic, according to cloud probability, use the
# MSK_CLDPRB band as the quality band (the worst pixels have HIGHEST cloud
# probability score).
img = col.qualityMosaic('MSK_CLDPRB')
m.add_layer(img, vis_params, 'Worst-pixel mosaic (by cloud score)', False)
m
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2023-10-06 UTC.
[null,null,["Last updated 2023-10-06 UTC."],[[["`qualityMosaic()` composites images in a collection based on a specified quality band, selecting the highest quality pixel for each location in the output mosaic."],["The 'quality band' is a band within the image collection that represents the desired quality metric (e.g., cloud probability, NDVI)."],["The function returns a single image where each pixel is chosen from the input image with the highest value in the quality band at that location."],["You can manipulate the quality band (e.g., inverting cloud probability) to prioritize different pixel selection criteria."]]],[]]