Google Earth Engine ee.Number 为整数
Google Earth Engine ee.Number to integer
对于熟悉 Google Earth Engine (https://code.earthengine.google.com/) 或一般 Javascript.
的代码编辑器的人来说,这可能是一个简单的问题
在我的代码中,我需要将对象的大小用于布尔条件(例如 n>0)。但是,我将存储在 n 中的 .size() 的输出不是 return 普通整数,而是 ee.Number 结构,我无法将其转换为整数以正确评估有条件的。
Earth Engine 结构 ee.Number 的示例:
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 时也是如此。
1
1
false
false
false
false
false
注:
print(typeof n)
return一个对象(JSON):
object
非常感谢任何帮助。谢谢
如果n的值确实是JSON,尝试解析它:
n = JSON.parse(n);
然后转换成整数:
n = parseInt(n);
这是因为 GEE 的工作原理。处理步骤在本地构造为对象,然后仅在另一个函数需要时才由服务器评估。
print
是需要执行的函数之一,这就是它在您的控制台中显示为整数的原因。
您可以使用 .getInfo()
强制求值...但是应该谨慎使用,因为所有内容都被拉到客户端,这对于大对象可能会有问题。
所以这有效:
var n=ee.Number(1)
print(n)
print(n.getInfo()==1)
给予
1
true
This 文档部分解释了背景。
对于熟悉 Google Earth Engine (https://code.earthengine.google.com/) 或一般 Javascript.
的代码编辑器的人来说,这可能是一个简单的问题在我的代码中,我需要将对象的大小用于布尔条件(例如 n>0)。但是,我将存储在 n 中的 .size() 的输出不是 return 普通整数,而是 ee.Number 结构,我无法将其转换为整数以正确评估有条件的。
Earth Engine 结构 ee.Number 的示例:
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 时也是如此。
1
1
false
false
false
false
false
注:
print(typeof n)
return一个对象(JSON):
object
非常感谢任何帮助。谢谢
如果n的值确实是JSON,尝试解析它:
n = JSON.parse(n);
然后转换成整数:
n = parseInt(n);
这是因为 GEE 的工作原理。处理步骤在本地构造为对象,然后仅在另一个函数需要时才由服务器评估。
print
是需要执行的函数之一,这就是它在您的控制台中显示为整数的原因。
您可以使用 .getInfo()
强制求值...但是应该谨慎使用,因为所有内容都被拉到客户端,这对于大对象可能会有问题。
所以这有效:
var n=ee.Number(1)
print(n)
print(n.getInfo()==1)
给予
1
true
This 文档部分解释了背景。