Простое соединение возвращает элементы из primary
коллекции, которые соответствуют любому элементу во secondary
коллекции в соответствии с условием соответствия в фильтре. Чтобы выполнить простое соединение, используйте ee.Join.simple()
. Это может быть полезно для поиска общих элементов в разных коллекциях или фильтрации одной коллекции по другой. Например, рассмотрим две коллекции изображений, которые (могут) иметь некоторые совпадающие элементы, где «совпадение» определяется условием, указанным в фильтре. Например, пусть совпадение означает, что идентификаторы изображений равны. Поскольку совпадающие изображения в обеих коллекциях одинаковы, используйте простое соединение, чтобы обнаружить этот набор совпадающих изображений:
Редактор кода (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
Колаб (Питон)
# 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)
В предыдущем примере обратите внимание, что коллекции, к которым нужно присоединиться, перекрываются во времени примерно на месяц. Обратите внимание, что при применении этого соединения на выходе будет ImageCollection
только с совпадающими изображениями из primary
коллекции. Вывод должен выглядеть примерно так:
Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140505 (17 bands) Image LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140521 (17 bands)
Эти выходные данные показывают, что два изображения совпадают (как указано в фильтре) между primary
и secondary
коллекциями: изображения от 5 мая и 21 мая.