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

举报
此星光明 发表于 2022/04/16 02:23:22 2022/04/16
【摘要】 联接用于根据 指定的条件组合来自不同集合(例如ImageCollection或FeatureCollection)的元素 ee.Filter。过滤器是用每个集合中彼此相关的属性的参数构造的。具体来说, leftField指定与次要集合中的 相关的主要集合中的属性rightField。过滤器的类型(例如 eq...

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

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

函数:

ee.Filter.equals(leftFieldrightValuerightFieldleftValue)

创建一个一元或二元过滤器,如果两个操作数相等则该过滤器通过。
 

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

Arguments:


  
  1. leftField(字符串,默认值:null):
  2. 左操作数的选择器。如果指定了 leftValue,则不应指定。
  3. rightValue(对象,默认值:null):
  4. 右操作数的值。如果指定了 rightField,则不应指定。
  5. rightField(字符串,默认值:null):
  6. 右操作数的选择器。如果指定了 rightValue,则不应指定。
  7. leftValue(对象,默认值:null):
  8. 左操作数的值。如果指定了 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()

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

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

代码:


  
  1. // 在兴趣点加载 Landsat 8 图像集合。
  2. var collection = ee.ImageCollection('LANDSAT/LC08/C01/T1_TOA')
  3. .filterBounds(ee.Geometry.Point(-122.09, 37.42));
  4. // 定义过滤集合的开始和结束日期。
  5. var april = '2014-04-01';
  6. var may = '2014-05-01';
  7. var june = '2014-06-01';
  8. var july = '2014-07-01';
  9. //第一部分影像 4 月至 6 月的 Landsat 图像集合。
  10. var primary = collection.filterDate(april, june);
  11. // 第二部分影像集合是 5 月至 7 月的 Landsat 图像。
  12. var secondary = collection.filterDate(may, july);
  13. // 使用 equals 过滤器来定义集合的匹配方式。这里用的是系统的指针
  14. var filter = ee.Filter.equals({
  15. leftField: 'system:index',
  16. rightField: 'system:index'
  17. });
  18. // 创建连接
  19. var simpleJoin = ee.Join.simple();
  20. // 应用连接
  21. var simpleJoined = simpleJoin.apply(primary, secondary, filter);
  22. // 展示结果
  23. print('Simple join: ', simpleJoined);

结果:

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

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

文章来源: blog.csdn.net,作者:此星光明2021年博客之星云计算Top3,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_31988139/article/details/119753400

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。