AI-generated Key Takeaways
-
ee.ImageCollection.fromImages()
creates anImageCollection
from a list ofee.Image
objects. -
This function is particularly useful for converting ambiguous, server-side image lists into
ImageCollection
objects. -
A common use case is processing image lists obtained from
ee.Join.saveAll()
. -
ee.ImageCollection.fromImages()
enables efficient manipulation and analysis of image data within Earth Engine.
Usage | Returns |
---|---|
ee.ImageCollection.fromImages(images) | ImageCollection |
Argument | Type | Details |
---|---|---|
images | List | The images to include in the collection. |
Examples
Code Editor (JavaScript)
// A series of images. var img1 = ee.Image(0); var img2 = ee.Image(1); var img3 = ee.Image(2); // Convert the list of images into an image collection. var col = ee.ImageCollection.fromImages([img1, img2, img3]); print('Collection from list of images', col); // The ee.ImageCollection.fromImages function is intended to coerce the image // list to a collection when the list is an ambiguous, computed object fetched // from the properties of a server-side object. For instance, a list // of images retrieved from a ee.Feature property. Here, we set an image // list as a property of a feature, retrieve it, and convert it to // a collection. Notice that the ee.ImageCollection constructor fails to coerce // the image list to a collection, but ee.ImageCollection.fromImages does. var feature = ee.Feature(null).set('img_list', [img1, img2, img3]); var ambiguousImgList = feature.get('img_list'); print('Coerced to collection', ee.ImageCollection.fromImages(ambiguousImgList)); print('NOT coerced to collection', ee.ImageCollection(ambiguousImgList)); // A common use case is coercing an image list from a saveAll join to a // image collection, like in this example of building a collection of mean // annual NDVI images from a MODIS collection. var modisCol = ee.ImageCollection('MODIS/006/MOD13A2') .filterDate('2017', '2021') .select('NDVI') .map(function(img) {return img.set('year', img.date().get('year'))}); var distinctYearCol = modisCol.distinct('year'); var joinedCol = ee.Join.saveAll('img_list').apply({ primary: distinctYearCol, secondary: modisCol, condition: ee.Filter.equals({'leftField': 'year', 'rightField': 'year'}) }); var annualNdviMean = joinedCol.map(function(img) { return ee.ImageCollection.fromImages(img.get('img_list')).mean() .copyProperties(img, ['year']); }); print('Mean annual NDVI collection', annualNdviMean);
import ee import geemap.core as geemap
Colab (Python)
# A series of images. img1 = ee.Image(0) img2 = ee.Image(1) img3 = ee.Image(2) # Convert the list of images into an image collection. col = ee.ImageCollection.fromImages([img1, img2, img3]) print('Collection from list of images:', col.getInfo()) # The ee.ImageCollection.fromImages function is intended to coerce the image # list to a collection when the list is an ambiguous, computed object fetched # from the properties of a server-side object. For instance, a list # of images retrieved from a ee.Feature property. Here, we set an image # list as a property of a feature, retrieve it, and convert it to # a collection. Notice that the ee.ImageCollection constructor fails to coerce # the image list to a collection, but ee.ImageCollection.fromImages does. feature = ee.Feature(None).set('img_list', [img1, img2, img3]) ambiguous_img_list = feature.get('img_list') print( 'Coerced to collection:', ee.ImageCollection.fromImages(ambiguous_img_list).getInfo(), ) print( 'NOT coerced to collection:', ee.ImageCollection(ambiguous_img_list).getInfo(), ) # A common use case is coercing an image list from a saveAll join to a # image collection, like in this example of building a collection of mean # annual NDVI images from a MODIS collection. modis_col = ( ee.ImageCollection('MODIS/006/MOD13A2') .filterDate('2017', '2021') .select('NDVI') .map(lambda img: img.set('year', img.date().get('year'))) ) distinct_year_col = modis_col.distinct('year') joined_col = ee.Join.saveAll('img_list').apply( primary=distinct_year_col, secondary=modis_col, condition=ee.Filter.equals(leftField='year', rightField='year'), ) annual_ndvi_mean = joined_col.map( lambda img: ee.ImageCollection.fromImages(img.get('img_list')) .mean() .copyProperties(img, ['year']) ) print('Mean annual NDVI collection:', annual_ndvi_mean.getInfo())