公告:所有在
2025 年 4 月 15 日之前注册使用 Earth Engine 的非商业项目都必须
验证是否符合非商业性质的资格条件,才能继续使用 Earth Engine。
简单联接
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
简单联接会根据过滤条件中的匹配条件,返回 primary
集合中与 secondary
集合中的任何元素匹配的元素。如需执行简单联接,请使用 ee.Join.simple()
。这对于查找不同集合中的共同元素或按另一个集合过滤一个集合可能很有用。例如,假设有两个图片集合(可能)包含一些匹配的元素,其中“匹配”是指过滤条件中指定的条件。例如,假设匹配是指图片 ID 相等。由于这两个集合中的匹配图片相同,因此只需使用简单的联接即可发现这组匹配图片:
Code Editor (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);
Python 设置
如需了解 Python API 以及如何使用 geemap
进行交互式开发,请参阅
Python 环境页面。
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)
在上例中,请注意要联接的数据集的时间重叠约为 1 个月。请注意,应用此联接后,输出将是一个 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 月 5 日和 5 月 21 日的图片。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-07-25。
[null,null,["最后更新时间 (UTC):2025-07-25。"],[[["\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,["# Simple Joins\n\nA 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\n### Code 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\n### Colab (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."]]