ee.ImageCollection.aggregate_first

  • The aggregate_first function is used to aggregate over a given property of objects in a collection and return the property value of the first object.

  • This function takes a FeatureCollection as the collection to aggregate over and a String representing the property to use from each element of the collection.

  • Examples demonstrate how to use aggregate_first in both JavaScript and Python Code Editors to get the property value of the first image in an ImageCollection.

Aggregates over a given property of the objects in a collection, calculating the property value of the first object in the collection.

UsageReturns
ImageCollection.aggregate_first(property)
ArgumentTypeDetails
this: collectionFeatureCollectionThe collection to aggregate over.
propertyStringThe property to use from each element of the collection.

Examples

Code Editor (JavaScript)

// A Lansat 8 TOA image collection for a specific year and location.
var col = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA")
  .filterBounds(ee.Geometry.Point([-122.073, 37.188]))
  .filterDate('2018', '2019');

// An image property of interest, percent cloud cover in this case.
var prop = 'CLOUD_COVER';

// Use ee.ImageCollection.aggregate_* functions to fetch information about
// values of a selected property across all images in the collection. For
// example, produce a list of all values, get counts, and calculate statistics.
print('List of property values', col.aggregate_array(prop));
print('Count of property values', col.aggregate_count(prop));
print('Count of distinct property values', col.aggregate_count_distinct(prop));
print('First collection element property value', col.aggregate_first(prop));
print('Histogram of property values', col.aggregate_histogram(prop));
print('Min of property values', col.aggregate_min(prop));
print('Max of property values', col.aggregate_max(prop));

// The following methods are applicable to numerical properties only.
print('Mean of property values', col.aggregate_mean(prop));
print('Sum of property values', col.aggregate_sum(prop));
print('Product of property values', col.aggregate_product(prop));
print('Std dev (sample) of property values', col.aggregate_sample_sd(prop));
print('Variance (sample) of property values', col.aggregate_sample_var(prop));
print('Std dev (total) of property values', col.aggregate_total_sd(prop));
print('Variance (total) of property values', col.aggregate_total_var(prop));
print('Summary stats of property values', col.aggregate_stats(prop));

// Note that if the property is formatted as a string, min and max will
// respectively return the first and last values according to alphanumeric
// order of the property values.
var propString = 'LANDSAT_SCENE_ID';
print('List of property values (string)', col.aggregate_array(propString));
print('Min of property values (string)', col.aggregate_min(propString));
print('Max of property values (string)', col.aggregate_max(propString));

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)

from pprint import pprint

# A Lansat 8 TOA image collection for a specific year and location.
col = ee.ImageCollection("LANDSAT/LC08/C02/T1_TOA").filterBounds(
    ee.Geometry.Point([-122.073, 37.188])).filterDate('2018', '2019')

# An image property of interest, percent cloud cover in this case.
prop = 'CLOUD_COVER'

# Use ee.ImageCollection.aggregate_* functions to fetch information about
# values of a selected property across all images in the collection. For
# example, produce a list of all values, get counts, and calculate statistics.
print('List of property values:', col.aggregate_array(prop).getInfo())
print('Count of property values:', col.aggregate_count(prop).getInfo())
print('Count of distinct property values:',
      col.aggregate_count_distinct(prop).getInfo())
print('First collection element property value:',
      col.aggregate_first(prop).getInfo())
print('Histogram of property values:')
pprint(col.aggregate_histogram(prop).getInfo())
print('Min of property values:', col.aggregate_min(prop).getInfo())
print('Max of property values:', col.aggregate_max(prop).getInfo())

# The following methods are applicable to numerical properties only.
print('Mean of property values:', col.aggregate_mean(prop).getInfo())
print('Sum of property values:', col.aggregate_sum(prop).getInfo())
print('Product of property values:', col.aggregate_product(prop).getInfo())
print('Std dev (sample) of property values:',
      col.aggregate_sample_sd(prop).getInfo())
print('Variance (sample) of property values:',
      col.aggregate_sample_var(prop).getInfo())
print('Std dev (total) of property values:',
      col.aggregate_total_sd(prop).getInfo())
print('Variance (total) of property values:',
      col.aggregate_total_var(prop).getInfo())
print('Summary stats of property values')
pprint(col.aggregate_stats(prop).getInfo())

# Note that if the property is formatted as a string, min and max will
# respectively return the first and last values according to alphanumeric
# order of the property values.
prop_string = 'LANDSAT_SCENE_ID'
print('List of property values (string):',
      col.aggregate_array(prop_string).getInfo())
print('Min of property values (string):',
      col.aggregate_min(prop_string).getInfo())
print('Max of property values (string):',
      col.aggregate_max(prop_string).getInfo())