Einfache Joins

Bei einem einfachen Join werden Elemente aus der Sammlung primary zurückgegeben, die gemäß der Übereinstimmungsbedingung im Filter mit einem Element in der Sammlung secondary übereinstimmen. Verwenden Sie für einen einfachen Join ein ee.Join.simple(). Das kann hilfreich sein, um die gemeinsamen Elemente verschiedener Sammlungen zu finden oder eine Sammlung nach einer anderen zu filtern. Angenommen, Sie haben zwei Bildsammlungen, die (möglicherweise) über übereinstimmende Elemente verfügen. „Übereinstimmend“ wird dabei durch die Bedingung in einem Filter definiert. Angenommen, als Übereinstimmung gilt, dass die Bild-IDs übereinstimmen. Da die übereinstimmenden Bilder in beiden Sammlungen identisch sind, können Sie mit einer einfachen Zusammenführung diese übereinstimmenden Bilder ermitteln:

// Load a Landsat 8 image collection at a point of interest.
var collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')
    .filterBounds(ee.Geometry.Point(-122.09, 37.42));

// Define start and end dates with which to filter the collections.
var april = '2014-04-01';
var may = '2014-05-01';
var june = '2014-06-01';
var july = '2014-07-01';

// The primary collection is Landsat images from April to June.
var primary = collection.filterDate(april, june);

// The secondary collection is Landsat images from May to July.
var secondary = collection.filterDate(may, july);

// Use an equals filter to define how the collections match.
var filter = ee.Filter.equals({
  leftField: 'system:index',
  rightField: 'system:index'
});

// Create the join.
var simpleJoin = ee.Join.simple();

// Apply the join.
var simpleJoined = simpleJoin.apply(primary, secondary, filter);

// Display the result.
print('Simple join: ', simpleJoined);

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
# Load a Landsat 8 image collection at a point of interest.
collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA').filterBounds(
    ee.Geometry.Point(-122.09, 37.42)
)

# Define start and end dates with which to filter the collections.
april = '2014-04-01'
may = '2014-05-01'
june = '2014-06-01'
july = '2014-07-01'

# The primary collection is Landsat images from April to June.
primary = collection.filterDate(april, june)

# The secondary collection is Landsat images from May to July.
secondary = collection.filterDate(may, july)

# Use an equals filter to define how the collections match.
filter = ee.Filter.equals(leftField='system:index', rightField='system:index')

# Create the join.
simple_join = ee.Join.simple()

# Apply the join.
simple_joined = simple_join.apply(primary, secondary, filter)

# Display the result.
display('Simple join:', simple_joined)

Im vorherigen Beispiel überschneiden sich die zu zusammenführenden Sammlungen zeitlich um etwa einen Monat. Hinweis: Wenn dieser Join angewendet wird, ist die Ausgabe eine ImageCollection mit nur den übereinstimmenden Bildern in der Sammlung primary. Die Ausgabe sollte in etwa so aussehen:

Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140505 (17 bands)
Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140521 (17 bands)

Diese Ausgabe zeigt, dass zwei Bilder (wie im Filter angegeben) zwischen den Sammlungen primary und secondary übereinstimmen, nämlich Bilder vom 5. Mai und 21. Mai.