Announcement: All noncommercial projects registered to use Earth Engine before April 15, 2025 must verify noncommercial eligibility to maintain Earth Engine access.
Stay organized with collections
Save and categorize content based on your preferences.
A simple join returns elements from the primary collection that match any
element in the secondary collection according to the match condition in the
filter. To perform a simple join, use an ee.Join.simple(). This might
be useful for finding the common elements among different collections or filtering
one collection by another. For example, consider two image collections which (might)
have some matching elements, where “matching” is defined by the condition specified in
a filter. For example, let matching mean the image IDs are equal. Since the matching
images in both collections are the same, use a simple join to discover this set of
matching images:
In the previous example, observe that the collections to join temporally overlap by about
a month. Note that when this join is applied, the output will be an
ImageCollection with only the matching images in the primary
collection. The output should look something like:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-12-27 UTC."],[[["\u003cp\u003eSimple joins return elements from a primary collection that match elements in a secondary collection based on a specified filter condition.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eee.Join.simple()\u003c/code\u003e is used to perform a simple join, which can be helpful for identifying common elements or filtering collections.\u003c/p\u003e\n"],["\u003cp\u003eThe output of a simple join is a new collection containing only the matching elements from the primary collection, retaining its original structure.\u003c/p\u003e\n"],["\u003cp\u003eAn example use case is finding overlapping images between two image collections with different date ranges, by matching their image IDs.\u003c/p\u003e\n"]]],["A simple join, using `ee.Join.simple()`, identifies matching elements between a `primary` and `secondary` collection based on a specified filter. This is done by defining a match condition, such as equal image IDs using `ee.Filter.equals()`. The join is applied to these collections, then the result is a new `ImageCollection` containing only the matching images from the `primary` collection. An example is the matching images in landsat collection at may 5 and may 21.\n"],null,["A simple join returns elements from the `primary` collection that match any\nelement in the `secondary` collection according to the match condition in the\nfilter. To perform a simple join, use an `ee.Join.simple()`. This might\nbe useful for finding the common elements among different collections or filtering\none collection by another. For example, consider two image collections which (might)\nhave some matching elements, where \"matching\" is defined by the condition specified in\na filter. For example, let matching mean the image IDs are equal. Since the matching\nimages in both collections are the same, use a simple join to discover this set of\nmatching images:\n\nCode Editor (JavaScript) \n\n```javascript\n// Load a Landsat 8 image collection at a point of interest.\nvar collection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA')\n .filterBounds(ee.Geometry.Point(-122.09, 37.42));\n\n// Define start and end dates with which to filter the collections.\nvar april = '2014-04-01';\nvar may = '2014-05-01';\nvar june = '2014-06-01';\nvar july = '2014-07-01';\n\n// The primary collection is Landsat images from April to June.\nvar primary = collection.filterDate(april, june);\n\n// The secondary collection is Landsat images from May to July.\nvar secondary = collection.filterDate(may, july);\n\n// Use an equals filter to define how the collections match.\nvar filter = ee.Filter.equals({\n leftField: 'system:index',\n rightField: 'system:index'\n});\n\n// Create the join.\nvar simpleJoin = ee.Join.simple();\n\n// Apply the join.\nvar simpleJoined = simpleJoin.apply(primary, secondary, filter);\n\n// Display the result.\nprint('Simple join: ', simpleJoined);\n```\nPython setup\n\nSee the [Python Environment](/earth-engine/guides/python_install) page for information on the Python API and using\n`geemap` for interactive development. \n\n```python\nimport ee\nimport geemap.core as geemap\n```\n\nColab (Python) \n\n```python\n# Load a Landsat 8 image collection at a point of interest.\ncollection = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA').filterBounds(\n ee.Geometry.Point(-122.09, 37.42)\n)\n\n# Define start and end dates with which to filter the collections.\napril = '2014-04-01'\nmay = '2014-05-01'\njune = '2014-06-01'\njuly = '2014-07-01'\n\n# The primary collection is Landsat images from April to June.\nprimary = collection.filterDate(april, june)\n\n# The secondary collection is Landsat images from May to July.\nsecondary = collection.filterDate(may, july)\n\n# Use an equals filter to define how the collections match.\nfilter = ee.Filter.equals(leftField='system:index', rightField='system:index')\n\n# Create the join.\nsimple_join = ee.Join.simple()\n\n# Apply the join.\nsimple_joined = simple_join.apply(primary, secondary, filter)\n\n# Display the result.\ndisplay('Simple join:', simple_joined)\n```\n\nIn the previous example, observe that the collections to join temporally overlap by about\na month. Note that when this join is applied, the output will be an\n`ImageCollection` with only the matching images in the `primary`\ncollection. The output should look something like: \n\n```\nImage LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140505 (17 bands)\nImage LANDSAT/LC08/C02/T1_TOA/LC08_044034_20140521 (17 bands)\n```\n\nThis output shows that two images match (as specified in the filter) between the\n`primary` and `secondary` collections, images at May 5 and May 21."]]