0

以下 JS 等效代码在 gee 操场上工作,但不在 rgee 中。

这应该计算 1:5 的总和。

lst <- ee$List$sequence(1,5,1)

runsum = lst$iterate(function(item,sum) {
  item = ee$Number(item)
  sum = ee$Number(sum)
  
  return(sum$add(item))
},0)

我收到的错误是:

Error in py_call_impl(callable, dots$args, dots$keywords) : 
  RuntimeError: Evaluation error: argument "item" is missing, with no default.

rgee 的正确语法是什么?

4

1 回答 1

0

我想出了答案并将其发布,以防将来可能对某人有所帮助。如果要在 map() 或 iterate() 中使用函数,则需要使用辅助函数ee_utils_pyfunc

https://r-spatial.github.io/rgee/articles/rgee02.html

lst <- ee$List$sequence(1,5,1)

runsum = lst$iterate(
  ee_utils_pyfunc(function(item,sum) {
    item = ee$Number(item)
    sum = ee$Number(sum)
    
    return(sum$add(item))
}),0)

print(runsum$getInfo())
于 2021-12-20T20:01:12.870 回答