ImageCollection reduzieren

Wenn Sie Bilder in einem ImageCollection zusammensetzen möchten, verwenden Sie imageCollection.reduce(). Dadurch werden alle Bilder in der Sammlung zu einem einzigen Bild zusammengesetzt, das beispielsweise den Mindest-, Höchst-, Mittel- oder Standardwert der Bilder darstellt. Weitere Informationen zu Reduzierern finden Sie im Abschnitt Reduzierer. So erstellen Sie beispielsweise ein Bild mit dem Medianwert aus einer Sammlung:

Code-Editor (JavaScript)

// Load a Landsat 8 collection for a single path-row.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
    .filterDate('2014-01-01', '2015-01-01');

// Compute a median image and display.
var median = collection.median();
Map.setCenter(-122.3578, 37.7726, 12);
Map.addLayer(median, {bands: ['B4', 'B3', 'B2'], max: 0.3}, 'Median');

Python einrichten

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap

Colab (Python)

# Load a Landsat 8 collection for a single path-row.
collection = (
    ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filter(ee.Filter.eq('WRS_PATH', 44))
    .filter(ee.Filter.eq('WRS_ROW', 34))
    .filterDate('2014-01-01', '2015-01-01')
)

# Compute a median image and display.
median = collection.median()
m = geemap.Map()
m.set_center(-122.3578, 37.7726, 12)
m.add_layer(median, {'bands': ['B4', 'B3', 'B2'], 'max': 0.3}, 'Median')
m

An jeder Stelle im Ausgabebild ist der Pixelwert in jedem Band der Median aller nicht maskierten Pixel in den Eingabebildern (den Bildern in der Sammlung). Im vorherigen Beispiel ist median() eine praktische Methode für den folgenden Aufruf:

Code-Editor (JavaScript)

// Reduce the collection with a median reducer.
var median = collection.reduce(ee.Reducer.median());

// Display the median image.
Map.addLayer(median,
             {bands: ['B4_median', 'B3_median', 'B2_median'], max: 0.3},
             'Also median');

Python einrichten

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap

Colab (Python)

# Reduce the collection with a median reducer.
median = collection.reduce(ee.Reducer.median())

# Display the median image.
m.add_layer(
    median,
    {'bands': ['B4_median', 'B3_median', 'B2_median'], 'max': 0.3},
    'Also median',
)
m

Die Bandnamen unterscheiden sich, da reduce() anstelle der praktischen Methode verwendet wird. Insbesondere wurden die Namen der Reducer an die Bandnamen angehängt.

Mit reduce() sind auch komplexere Reduktionen möglich. Wenn Sie beispielsweise den langfristigen linearen Trend für eine Sammlung berechnen möchten, verwenden Sie einen der linearen Regressions-Reduktionsmethoden. Im folgenden Code wird der lineare Trend des MODIS Enhanced Vegetation Index (EVI) berechnet:

Code-Editor (JavaScript)

// This function adds a band representing the image timestamp.
var addTime = function(image) {
  return image.addBands(image.metadata('system:time_start')
    // Convert milliseconds from epoch to years to aid in
    // interpretation of the following trend calculation.
    .divide(1000 * 60 * 60 * 24 * 365));
};

// Load a MODIS collection, filter to several years of 16 day mosaics,
// and map the time band function over it.
var collection = ee.ImageCollection('MODIS/006/MYD13A1')
  .filterDate('2004-01-01', '2010-10-31')
  .map(addTime);

// Select the bands to model with the independent variable first.
var trend = collection.select(['system:time_start', 'EVI'])
  // Compute the linear trend over time.
  .reduce(ee.Reducer.linearFit());

// Display the trend with increasing slopes in green, decreasing in red.
Map.setCenter(-96.943, 39.436, 5);
Map.addLayer(
    trend,
    {min: 0, max: [-100, 100, 10000], bands: ['scale', 'scale', 'offset']},
    'EVI trend');

Python einrichten

Auf der Seite Python-Umgebung finden Sie Informationen zur Python API und zur Verwendung von geemap für die interaktive Entwicklung.

import ee
import geemap.core as geemap

Colab (Python)

# This function adds a band representing the image timestamp.
def add_time(image):
  return image.addBands(
      image.metadata('system:time_start')
      # Convert milliseconds from epoch to years to aid in
      # interpretation of the following trend calculation.
      .divide(1000 * 60 * 60 * 24 * 365)
  )


# Load a MODIS collection, filter to several years of 16 day mosaics,
# and map the time band function over it.
collection = (
    ee.ImageCollection('MODIS/006/MYD13A1')
    .filterDate('2004-01-01', '2010-10-31')
    .map(add_time)
)

# Select the bands to model with the independent variable first.
trend = collection.select(['system:time_start', 'EVI']).reduce(
    # Compute the linear trend over time.
    ee.Reducer.linearFit()
)

# Display the trend with increasing slopes in green, decreasing in red.
m.set_center(-96.943, 39.436, 5)
m = geemap.Map()
m.add_layer(
    trend,
    {
        'min': 0,
        'max': [-100, 100, 10000],
        'bands': ['scale', 'scale', 'offset'],
    },
    'EVI trend',
)
m

Die Ausgabe der Reduktion in diesem Beispiel ist ein zweifarbiges Bild mit einer Farbe für die Steigung einer linearen Regression (scale) und einer Farbe für den Achsenabschnitt (offset). In der API-Dokumentation finden Sie eine Liste der Reduzierer, mit denen eine ImageCollection auf eine einzelne Image reduziert werden kann.

Zusammensetzungen haben keine Projektion.

Zusammengesetzte Bilder, die durch das Reduzieren einer Bildsammlung erstellt werden, können Pixel in jeder angeforderten Projektion erzeugen und haben daher keine feste Ausgabeprojektion. Stattdessen haben sie die Standardprojektion von WGS-84 mit Pixeln mit einer Auflösung von 1 Grad. Zusammensetzungen mit der Standardprojektion werden in der angeforderten Ausgabeprojektion berechnet. Eine Anfrage wird durch das Anzeigen des Composeds im Code-Editor ausgelöst (weitere Informationen dazu, wie der Code-Editor Maßstab und Projektion festlegt). Sie können auch eine Projektion/einen Maßstab explizit angeben, z. B. in einer Aggregation wie ReduceRegion oder Export.