ee.ImageCollection.fromImages

Returns the image collection containing the given images.

UsageReturns
ee.ImageCollection.fromImages(images)ImageCollection
ArgumentTypeDetails
imagesListThe 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);

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)

# 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())