Google Earth Engine(GEE)——如何正确使用if和for条件判断?

举报
此星光明 发表于 2022/04/16 01:34:02 2022/04/16
【摘要】 映射的函数在它可以执行的操作中受到限制。具体来说,它不能修改函数外的变量;它不能打印任何东西;它不能使用 JavaScript 的“if”或“for”语句。但是,您可以使用ee.Algorithms.If()在映射函数中执行条件操作。例如: 上一次博客中写道同样的影像结果应该是118幅,但是此次经过太阳高度的条件判断,最终就只有84幅...

映射的函数在它可以执行的操作中受到限制。具体来说,它不能修改函数外的变量;它不能打印任何东西;它不能使用 JavaScript 的“if”或“for”语句。但是,您可以使用ee.Algorithms.If()在映射函数中执行条件操作。例如:

上一次博客中写道同样的影像结果应该是118幅,但是此次经过太阳高度的条件判断,最终就只有84幅了。而且可以从波段的数量上就能看出在返回为0的影像中仅有1各波段,就是一个list附加一个properties里面有一个指针也就是这副影像的系统位置名称

 

ee.Algorithms.If(conditiontrueCasefalseCase)

根据条件选择其输入之一,类似于 if-then-else 构造。

Selects one of its inputs based on a condition, similar to an if-then-else construct.

Arguments:

condition (Object, default: null):

确定返回哪个结果的条件。如果这不是布尔值,则按照以下规则将其解释为布尔值:

- 等于 0 或 NaN 的数字为假。

- 空字符串、列表和字典是假的。

- 空是假的。

- 其他都是真的:这里就是说非空非0都是真的

The condition that determines which result is returned. If this is not a boolean, it is interpreted as a boolean by the following rules:

- Numbers that are equal to 0 or a NaN are false.

- Empty strings, lists and dictionaries are false.

- Null is false.

- Everything else is true.

trueCase (Object, default: null):

The result to return if the condition is true.

falseCase (Object, default: null):

The result to return if the condition is false.

Returns: Object

代码很简单:


  
  1. // 依旧是进行影像按照行列号进行筛选
  2. var collection = ee.ImageCollection('LANDSAT/LC8_L1T_TOA')
  3. .filter(ee.Filter.eq('WRS_PATH', 44))
  4. .filter(ee.Filter.eq('WRS_ROW', 34));
  5. // 如果太阳高度 > 40 度此函数使用条件语句返回正常图像,否则它返回一个零图像。
  6. var conditional = function(image) {
  7. return ee.Algorithms.If(ee.Number(image.get('SUN_ELEVATION')).gt(40),
  8. image,
  9. ee.Image(0));
  10. };
  11. // 将函数映射到集合上,转换为 List 并打印结果。
  12. print('Expand this to see the result: ', collection.map(conditional));

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

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

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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