Google Earth Engine ee.Number转换为整数

时间:2018-12-05 09:50:04

标签: javascript integer google-earth-engine

对于熟悉Google Earth Engine(https://code.earthengine.google.com/)或一般Javascript代码编辑的人来说,这可能是一个简单的问题。

在我的代码中,我需要将对象的大小用于布尔条件(例如n> 0)。但是,我将存储在n中的.size()的输出不会返回纯整数,而是返回ee.Number结构,并且我无法将其转换为整数以正确评估条件。

结构为ee.Earth Engine的示例:

var n=ee.Number(1)
print(n)
print(n.int())
print(n==1)
print(n===1)
print(n.int()==1)
print(n.int()===1)
print(n.int()== parseInt(1))

即使我尝试将数字结构尝试为int,这也会将这些评估结果输出为false。

1
1
false
false
false
false
false

注意:

print(typeof n)

返回对象(JSON):

object

非常感谢任何帮助。谢谢

2 个答案:

答案 0 :(得分:1)

这是由于GEE的工作原理。处理步骤在本地构造为对象,然后仅在另一个功能需要时由服务器评估。

print是需要执行的功能之一,这就是为什么它在控制台中显示为整数的原因。

您可以使用.getInfo()强制进行评估...但是应谨慎使用,因为一切都被拉到了客户端,这对于大对象可能是有问题的。

这可行:

var n=ee.Number(1)

print(n)
print(n.getInfo()==1)

给予

  

1
  是

文档的

This部分介绍了背景。

答案 1 :(得分:0)

如果n的值确实是JSON,请尝试解析它:

n = JSON.parse(n);

然后将其转换为整数:

n = parseInt(n);