前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google Earth Engine(GEE)——Join连接的案例分析

Google Earth Engine(GEE)——Join连接的案例分析

作者头像
此星光明
发布2024-02-02 08:01:56
1650
发布2024-02-02 08:01:56
举报

联接用于根据 指定的条件组合来自不同集合(例如ImageCollectionFeatureCollection)的元素 ee.Filter。过滤器是用每个集合中彼此相关的属性的参数构造的。具体来说, leftField指定与次要集合中的 相关的主要集合中的属性rightField。过滤器的类型(例如 equalsgreaterThanOrEqualslessThan等)指示字段之间的关系。连接的类型指示集合中元素之间的一对多或一对一关系以及要保留的匹配项数。联接的输出由join.apply()联接的类型产生并且将根据联接的类型而变化。

简单连接根据过滤器中的匹配条件从primary集合中返回与集合中任何元素匹配的元素secondary。要执行简单连接,请使用ee.Join.simple(). 这对于查找不同集合之间的公共元素或通过另一个集合过滤一个集合可能很有用。例如,考虑两个(可能)具有一些匹配元素的图像集合,其中“匹配”由过滤器中指定的条件定义。例如,让匹配意味着图像 ID 相等。由于两个集合中的匹配图像相同,因此使用简单的连接来发现这组匹配图像:

函数:

ee.Filter.equals(leftFieldrightValuerightFieldleftValue)

代码语言:javascript
复制
创建一个一元或二元过滤器,如果两个操作数相等则该过滤器通过。

Creates a unary or binary filter that passes if the two operands are equals.

Arguments:
代码语言:javascript
复制
leftField(字符串,默认值:null):
左操作数的选择器。如果指定了 leftValue,则不应指定。

rightValue(对象,默认值:null):
右操作数的值。如果指定了 rightField,则不应指定。

rightField(字符串,默认值:null):
右操作数的选择器。如果指定了 rightValue,则不应指定。

leftValue(对象,默认值:null):
左操作数的值。如果指定了 leftField,则不应指定。

leftField (String, default: null):

A selector for the left operand. Should not be specified if leftValue is specified.

rightValue (Object, default: null):

The value of the right operand. Should not be specified if rightField is specified.

rightField (String, default: null):

A selector for the right operand. Should not be specified if rightValue is specified.

leftValue (Object, default: null):

The value of the left operand. Should not be specified if leftField is specified.

Returns: Filter

ee.Join.simple()

代码语言:javascript
复制
返回一个连接,该连接生成与辅助集合的任何元素匹配的主集合的元素。结果中没有添加任何属性.

Returns a join that produces the elements of the primary collection that match any element of the secondary collection. No properties are added to the results.

No arguments.
Returns: Join

代码:

代码语言:javascript
复制
// 在兴趣点加载 Landsat 8 图像集合。
var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
    .filterBounds(ee.Geometry.Point(-122.09, 37.42));

// 定义过滤集合的开始和结束日期。
var april = '2014-04-01';
var may = '2014-05-01';
var june = '2014-06-01';
var july = '2014-07-01';

//第一部分影像 4 月至 6 月的 Landsat 图像集合。
var primary = collection.filterDate(april, june);

// 第二部分影像集合是 5 月至 7 月的 Landsat 图像。
var secondary = collection.filterDate(may, july);

// 使用 equals 过滤器来定义集合的匹配方式。这里用的是系统的指针
var filter = ee.Filter.equals({
  leftField: 'system:index',
  rightField: 'system:index'
});

// 创建连接
var simpleJoin = ee.Join.simple();

// 应用连接
var simpleJoined = simpleJoin.apply(primary, secondary, filter);

// 展示结果
print('Simple join: ', simpleJoined);

结果:

 在前面的示例中,观察要加入的集合在时间上重叠了大约一个月。请注意,应用此连接时,输出将是 ImageCollection仅包含primary 集合中匹配图像的图像。输出应该类似于:

 此输出显示两个图像在primarysecondary集合之间匹配(如过滤器中指定的那样) ,即年中第 125 天和 141 天或 5 月 5 日和 5 月 21 日的图像。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Arguments:
  • Returns: Filter
  • No arguments.
  • Returns: Join
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档