RGEE中影像OR逻辑运算符怎么用?GEE代码转RGEE报错如何解决?
错误原因
你遇到的报错是因为R原生的|逻辑运算符仅支持处理R本地的数值、逻辑类型对象,无法直接操作Earth Engine托管在服务端的影像对象,直接套用R原生运算符会触发类型不匹配的报错。
正确使用方法
RGEE中的逻辑运算需要调用EE官方提供的服务端方法,有两种常用写法可以实现你需要的OR逻辑:
- 写法1:和JS版GEE逻辑完全对齐的链式调用写法
reclassified <- ee$Image(0)$ where(classifiedData$eq(7)$or(classifiedData$eq(13)), 1)$ rename('water')$ clip(marigat_plains)
- 写法2:用
ee$Or()批量包裹多个判断条件,适合多条件叠加的场景,如果后续需要新增OR判断条件,直接补在ee$Or()的参数列表中即可
reclassified <- ee$Image(0)$ where(ee$Or(classifiedData$eq(7), classifiedData$eq(13)), 1)$ rename('water')$ clip(marigat_plains)
补充说明
同理,AND逻辑也不要使用R原生的&运算符,需要使用EE提供的$and()链式方法或者ee$And()批量处理函数。
内容的提问来源于stack exchange,提问作者Victor Korir
相关产品推荐
相关产品推荐

