Announcement : On
November 13, 2024 , all users will need to
use a Cloud project in order to access Earth Engine. After this date, continued individual access without a Cloud project will require
an exception .
Send feedback
ee.ImageCollection.qualityMosaic
Stay organized with collections
Save and categorize content based on your preferences.
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
Code Editor (JavaScript)
// 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
Colab (Python)
# 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
Send feedback
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.
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"Missing the information I need"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"Too complicated / too many steps"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"Out of date"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"Samples / code issue"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"Other"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"Easy to understand"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"Solved my problem"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"Other"
}]
Need to tell us more?
{"lastModified": "Last updated 2023-10-06 UTC."}
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-10-06 UTC."]]