对于熟悉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
非常感谢任何帮助。谢谢
答案 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);