Proste złączanie zwraca elementy z kolecji primary
, które pasują do dowolnego elementu w kolecji secondary
zgodnie z warunkiem dopasowania w filtrze. Aby wykonać proste złączanie, użyj funkcji ee.Join.simple()
. Może to być przydatne do znajdowania wspólnych elementów w różnych kolekcjach lub filtrowania jednej kolekcji według innej. Wyobraź sobie na przykład 2 zbiory obrazów, które (mogą)
mieć pewne pasujące elementy, gdzie „pasowanie” jest zdefiniowane przez warunek określony w
filtrze. Na przykład dopasowanie oznacza, że identyfikatory obrazów są takie same. Zdjęcia pasujące do obu kolekcji są takie same, więc aby znaleźć ten zestaw pasujących zdjęć, użyj prostego złączenia:
Edytor kodu (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)
W poprzednim przykładzie widać, że łączone kolekcje pokrywają się czasowo o około miesiąca. Pamiętaj, że po zastosowaniu tego złączenia dane wyjściowe będą zawierać tylko te obrazy z kolei primary
, które pasują do obrazów z kolei ImageCollection
. Dane wyjściowe powinny wyglądać mniej więcej tak:
Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140505 (17 bands) Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140521 (17 bands)
Dane wyjściowe wskazują, że 2 obrazy (zgodnie z filtrem) pasują do kolekcji primary
i secondary
– obrazy z 5 i 21 maja.