前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Google Earth Engine(GEE)——让点的个数等于number返回的布尔类型值为真?

Google Earth Engine(GEE)——让点的个数等于number返回的布尔类型值为真?

作者头像
此星光明
发布2024-02-02 13:13:52
900
发布2024-02-02 13:13:52
举报

问题是这样的,有时候我们明明看到结果是一致的,但是为啥运算出来的东西却不一样呢?我们可以具体看看到底是为啥,有朋友闻到了这样的问题,我们可以具体看看这个问题:

这个结果是 True 我该怎么做?

修正前的代码:

代码语言:javascript
复制
var points=ee.Geometry.MultiPoint([[35.13382554493316, 42.01690078898458],
 [35.127720870209764, 42.023546081055784]])
Map.addLayer(points)
var p=points.coordinates().size()
print(p)
print(p==ee.Number(2))

 这里我们所需要用到的就是我么判断是否相等的算法,具体算法见如下

ee.Algorithms.IsEqual(leftright)

Returns whether two objects are equal.返回两个对象是否相等。

Arguments:

left (Object, default: null)

right (Object, default: null)

Returns: Boolean

修正后代码:

代码语言:javascript
复制
var points=ee.Geometry.MultiPoint([[35.13382554493316, 42.01690078898458],
 [35.127720870209764, 42.023546081055784]])
Map.addLayer(points)
var p=points.coordinates().size()
print(p)
var ff= ee.Algorithms.IsEqual(p,ee.Number(2))

print(ff)

这里还有一种方式:

getInfo(callback)

Retrieves the value of this object from the server.

If no callback function is provided, the request is made synchronously. If a callback is provided, the request is made asynchronously.

The asynchronous mode is preferred because the synchronous mode stops all other code (for example, the EE Code Editor UI) while waiting for the server. To make an asynchronous request, evaluate() is preferred over getInfo().

Returns the computed value of this object.

Arguments:

this:computedobject (ComputedObject):

The ComputedObject instance.

callback (Function, optional):

An optional callback. If not supplied, the call is made synchronously.

Returns: Object

getInfo(callback) 从服务器上检索此对象的值。

如果没有提供回调函数,请求是同步进行的。如果提供了一个回调函数,请求是异步进行的。

异步模式是首选,因为同步模式在等待服务器时停止所有其他代码(例如,EE代码编辑器用户界面)。为了进行异步请求,evaluate()比getInfo()更适合。

返回这个对象的计算值。

参数。 this:computedobject (ComputedObject)。 计算对象的实例。

callback(函数,可选)。 一个可选的回调。如果不提供,调用将同步进行。

返回。对象

代码语言:javascript
复制
var points=ee.Geometry.MultiPoint([[35.13382554493316, 42.01690078898458],
 [35.127720870209764, 42.023546081055784]])
Map.addLayer(points)
var s1=ee.Number(points.coordinates().size())
print(s1.eq(ee.Number(2)))
print(s1.eq(ee.Number(2))==1)
print(s1.eq(ee.Number(2)).getInfo()==1)

结果:

当然除了用上面判断是否相等之外,还可以使用下面的函数来进行判断:条件,真假的情况是什么都可以的。

ee.Algorithms.If(conditiontrueCasefalseCase)

Selects one of its inputs based on a condition, similar to an if-then-else construct.

Arguments:

condition (Object, default: null):

The condition that determines which result is returned. If this is not a boolean, it is interpreted as a boolean by the following rules:

  • Numbers that are equal to 0 or a NaN are false.
  • Empty strings, lists and dictionaries are false.
  • Null is false.
  • Everything else is true.

trueCase (Object, default: null):

The result to return if the condition is true.

falseCase (Object, default: null):

The result to return if the condition is false.

Returns: Object

这里还有一种情况,就是当我们反映真假得时候,我们可以用到0和1而不是true和法拉瑟,其实很简单。

代码语言:javascript
复制
var points=ee.Geometry.MultiPoint([[35.13382554493316, 42.01690078898458],
 [35.127720870209764, 42.023546081055784]])
Map.addLayer(points)
var s1=ee.Number(points.coordinates().size())
print('s1', s1)
print('s1.eq(ee.Number(2))', s1.eq(ee.Number(2)))
print('s1.eq(ee.Number(3))', s1.eq(ee.Number(3)))
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-02-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Arguments:
  • Returns: Boolean
  • Arguments:
  • Returns: Object
  • Arguments:
  • Returns: Object
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档