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

本文介绍了如何在Google Earth Engine (EE) 中通过ee.Algorithms.If()函数实现基于太阳高度的影像筛选,通过实例展示了如何筛选出太阳高度大于40度的Landsat影像,减少了无效结果数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

映射的函数在它可以执行的操作中受到限制。具体来说,它不能修改函数外的变量;它不能打印任何东西;它不能使用 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

代码很简单:

// 依旧是进行影像按照行列号进行筛选
var collection = ee.ImageCollection('LANDSAT/LC8_L1T_TOA')
  .filter(ee.Filter.eq('WRS_PATH', 44))
  .filter(ee.Filter.eq('WRS_ROW', 34));

// 如果太阳高度 > 40 度此函数使用条件语句返回正常图像,否则它返回一个零图像。
var conditional = function(image) {
  return ee.Algorithms.If(ee.Number(image.get('SUN_ELEVATION')).gt(40),
                          image,
                          ee.Image(0));
};

// 将函数映射到集合上,转换为 List 并打印结果。
print('Expand this to see the result: ', collection.map(conditional));

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值