Un join semplice restituisce gli elementi della raccolta primary
che corrispondono a qualsiasi
elemento della raccolta secondary
in base alla condizione di corrispondenza nel
filtro. Per eseguire un join semplice, utilizza un ee.Join.simple()
. Questa operazione potrebbe essere utile per trovare gli elementi comuni tra collezioni diverse o filtrare una collezione in base a un'altra. Ad esempio, prendi in considerazione due raccolte di immagini che (potrebbero)
avere alcuni elementi corrispondenti, dove "corrispondenza" è definita dalla condizione specificata in
un filtro. Ad esempio, supponiamo che la corrispondenza significhi che gli ID immagine sono uguali. Poiché le immagini corrispondenti
in entrambe le raccolte sono le stesse, utilizza un semplice join per scoprire questo insieme di
immagini corrispondenti:
Editor di codice (JavaScript)
// 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);
import ee import geemap.core as geemap
Colab (Python)
# 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)
Nell'esempio precedente, osserva che le collezioni da unire si sovrappongono temporalmente di circa un mese. Tieni presente che, quando viene applicato questo join, l'output sarà un
ImageCollection
con solo le immagini corrispondenti nella raccolta primary
. L'output dovrebbe essere simile al seguente:
Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140505 (17 bands) Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140521 (17 bands)
Questo output mostra che due immagini corrispondono (come specificato nel filtro) tra le raccolte primary
e secondary
, rispettivamente del 5 e del 21 maggio.