Une jointure simple renvoie les éléments de la collection primary
qui correspondent à n'importe quel élément de la collection secondary
, en fonction de la condition de correspondance du filtre. Pour effectuer une jointure simple, utilisez un ee.Join.simple()
. Cela peut être utile pour trouver les éléments communs entre différentes collections ou pour filtrer une collection par rapport à une autre. Par exemple, considérons deux collections d'images qui (peuvent) comporter des éléments correspondants, où "correspondance" est définie par la condition spécifiée dans un filtre. Par exemple, supposons que la correspondance signifie que les ID d'image sont égaux. Étant donné que les images correspondantes des deux collections sont identiques, utilisez une jointure simple pour découvrir cet ensemble d'images correspondantes:
Éditeur de code (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)
Dans l'exemple précédent, observez que les collections à joindre se chevauchent d'environ un mois. Notez que lorsque cette jointure est appliquée, la sortie est un ImageCollection
contenant uniquement les images correspondantes de la collection primary
. Le résultat devrait ressembler à ceci:
Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140505 (17 bands) Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140521 (17 bands)
Ce résultat montre que deux images correspondent (comme indiqué dans le filtre) entre les collections primary
et secondary
, les images du 5 mai et du 21 mai.