GEE:数据结构——Object 对象(创建、访问、修改、删除、遍历)

news/2024/5/15 1:52:09/文章来源:https://blog.csdn.net/qq_35591253/article/details/130020826

在Google Earth Engine (GEE) 平台中,“Object” 是指一种数据结构,它是由一组属性(键-值对)(key-value)组成的,可以是数字、字符串、布尔值、数组或其他对象。

在 GEE 中,许多数据都以对象的形式存储,例如图像、地理空间矢量数据、时间序列等。对象可以用 JavaScript 编程语言来创建、操作和分析。

在 GEE 中,对象通常使用 JavaScript 对象表示法 (JSON) 进行表示,这是一种轻量级的数据交换格式。可以使用类似 JavaScript 对象的语法来访问和操作对象中的属性。

本文介绍了在GEE平台上对Object数据结构进行创建、访问属性、修改、删除、遍历的代码和示例


文章目录

      • 1.创建 Object
      • 2.访问 Object 属性
      • 3. 修改 Object 属性
      • 4. 删除 Object 属性
      • 5. 遍历 Object 属性
      • 6.获取 Object 所有key


在 Google Earth Engine 中,可以使用 JavaScript 编程语言对 Object 进行操作。以下是一些常见的操作方法:

1.创建 Object

在 Google Earth Engine 中,可以使用 JavaScript 的对象字面量(Object Literal)语法来创建一个对象。具体操作方法如下:

// 创建一个对象
var myObject = {key1: 'value1',key2: 'value2',key3: 'value3'
};// 输出对象的属性
print(myObject);

在上面的例子中,我们使用对象字面量的语法创建了一个对象 myObject,包含了三个键值对。对象的键名分别为 key1、key2 和 key3,对应的键值分别为 value1、value2 和 value3。最后,我们使用 print() 函数输出整个对象。

需要注意的是,在 Google Earth Engine 中,对象不仅仅可以是 JavaScript 中的普通对象,还可以是由 Earth Engine 提供的 Image、Feature、Geometry 等等各种对象。例如,你可以通过 ee.Image() 方法创建一个 Image 对象,通过 ee.Feature() 方法创建一个 Feature 对象,以此类推。

2.访问 Object 属性

在 Google Earth Engine 中,可以使用 JavaScript 的点语法(Dot Notation)或方括号语法(Bracket Notation)来访问一个对象的属性。具体操作方法如下:

// 创建一个对象
var myObject = {key1: 'value1',key2: 'value2',key3: 'value3'
};// 使用点语法访问对象属性
var value1 = myObject.key1;// 使用方括号语法访问对象属性
var value2 = myObject['key2'];// 输出属性值
print('value1:', value1);
print('value2:', value2);

在上面的例子中,我们首先创建了一个对象 myObject,包含了三个键值对。然后,我们使用点语法和方括号语法访问该对象的属性,分别获取了 key1 和 key2 属性的值。最后,我们使用 print() 函数输出这两个属性的值。

需要注意的是,点语法和方括号语法的区别在于,点语法需要使用属性名作为标识符,而方括号语法需要使用属性名的字符串形式作为索引。例如,在本例中,myObject.key1 和 myObject[‘key1’] 都能够访问到 key1 属性的值,但是如果属性名包含特殊字符或空格等,就只能使用方括号语法访问了。

3. 修改 Object 属性

在 Google Earth Engine 中,可以使用 JavaScript 的点语法(Dot Notation)或方括号语法(Bracket Notation)来修改一个对象的属性。具体操作方法如下:

// 创建一个对象
var myObject = {key1: 'value1',key2: 'value2',key3: 'value3'
};// 修改对象属性的值
myObject.key1 = 'new value1';
myObject['key2'] = 'new value2';// 输出修改后的属性值
print(myObject);

在上面的例子中,我们首先创建了一个对象 myObject,包含了三个键值对。然后,我们使用点语法和方括号语法修改了 key1 和 key2 属性的值。最后,我们使用 print() 函数输出修改后的整个对象。

需要注意的是,点语法和方括号语法的区别在于,点语法需要使用属性名作为标识符,而方括号语法需要使用属性名的字符串形式作为索引。修改属性值时,也是类似的区别。同时,需要注意对象的属性是否可修改,有些对象的属性是只读的,不能被修改。例如,Image 对象的属性就是只读的。

4. 删除 Object 属性

在 Google Earth Engine 中,可以使用 JavaScript 的 delete 关键字来删除一个对象的属性。具体操作方法如下:

// 创建一个对象
var myObject = {key1: 'value1',key2: 'value2',key3: 'value3'
};// 删除对象的属性
delete myObject.key1;
delete myObject['key2'];// 输出删除后的对象
print(myObject);

在上面的例子中,我们首先创建了一个对象 myObject,包含了三个键值对。然后,我们使用 delete 关键字删除了 key1 和 key2 属性。最后,我们使用 print() 函数输出删除后的整个对象。

需要注意的是,删除对象属性时,如果该属性不存在,不会发生任何事情。同时,有些对象的属性是只读的,不能被删除。例如,Image 对象的属性就是只读的。

5. 遍历 Object 属性

在 Google Earth Engine 中,可以使用 for…in 循环语句遍历一个对象的所有属性。具体操作方法如下:

// 创建一个对象
var myObject = {key1: 'value1',key2: 'value2',key3: 'value3'
};// 遍历对象的属性
for (var key in myObject) {print(key + ': ' + myObject[key]);
}
// 遍历对象的属性
for (var key in myObject) {if (myObject.hasOwnProperty(key)) {var value = myObject[key];// 处理属性和值}
}

在上面的例子中,我们首先创建了一个对象 myObject,包含了三个键值对。然后,我们使用 for…in 循环语句遍历该对象的所有属性,使用 print() 函数输出每个属性的名称和对应的值。

需要注意的是,for…in 循环语句遍历的是对象的可枚举属性,不包括原型链上的属性。如果需要遍历对象原型链上的所有属性,可以使用 Object.getOwnPropertyNames() 方法。

这些操作方法是使用 JavaScript 对象的基本方法,也可以用于在 Google Earth Engine 中操作 Object。请注意,有些 GEE 对象的属性是只读的,不能直接修改。

6.获取 Object 所有key

在 Google Earth Engine 中,可以使用 JavaScript 的 Object.keys() 方法来获取一个对象的所有键名(key)。具体操作方法如下:
在这里插入图片描述

// 创建一个示例对象
var myObject = {key1: 'value1',key2: 'value2',key3: 'value3'
};// 使用 Object.keys() 方法获取对象的键名
var keys = Object.keys(myObject);// 输出所有的键名
print('Object keys:', keys);

在上面的例子中,我们首先创建了一个示例对象 myObject,包含了三个键值对。然后,我们使用 Object.keys() 方法获取该对象的所有键名,保存在变量 keys 中。最后,我们使用 print() 函数输出 keys 数组,即对象的所有键名。

需要注意的是,Object.keys() 方法返回的是一个数组,数组中的元素即为对象的所有键名。如果你需要获取对象的键值,可以使用类似 myObject[key] 的方法来访问,其中 key 是对象的某个键名。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_283221.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实战:向人工智能看齐用Docker部署一个ChatGPT

文章目录前言鉴赏chatgpt环境要求开始搭建云安装docker从docker仓库拉取chatgpt-web镜像创建容器并运行chatgpt-web创建容器启动chatgpt-web访问自己的chatgpt总结前言 目前GPT-4都官宣步入多模态大型语言模型领域了,大佬竟然还没有体验GPT么。作为一个资深搬砖人士…

【C++修行之路】面向对象三大特性之多态

文章目录前言认识多态构成多态的必要条件虚函数的重写虚函数重写的两个例外final和override重载、覆盖、隐藏抽象类多态的原理单继承多继承重写了基类的虚函数没有重写基类的虚函数菱形继承和菱形虚拟继承的虚表补充补充继承与多态相关问题inline函数可以是虚函数吗&#xff1f…

2.半导体二极管

1.半导体二极管二极管的组成二极管和PN结伏安特性的区别二极管的伏安特性及电流方程为什么反向饱和电流越小,单向导电性能越强。二极管的等效电路二极管的主要参数稳压二极管(又称齐纳二极管或反向击穿二极管)稳压二极管与普通二极管的区别其…

深入理解MCU启动原理

前面写了一篇 STM32的完整启动流程分析,但是感觉有些地方没有完全理明白,因此对不清楚的地方又做了一些总结。 1. MCU最开始一启动后去哪里读代码? CPU上电启动后被设计为去地址0x00000000位置处读取代码;首先会连续读取两个字&…

Linux ELK日志分析系统 | logstash日志收集 | elasticsearch 搜索引擎 | kibana 可视化平台 | 架构搭建 | 超详细

Linux ELK日志分析系统 | logstash日志收集 | elasticsearch 搜索引擎 | kibana 可视化平台 | 架构搭建 | 超详细ELK 日志分析系统1.日志服务器2.ELK 日志分析系统3 日志处理步骤一、 Elasticsearch 介绍1.1概述1.2核心概念二、Kibana 介绍三 ELK架构搭建3.1 配置要求3.2 安装 …

Java中Stream的应用

Stream简介 Java 8 版本新增的Stream,配合同版本出现的Lambda ,给我们操作集合(Collection)提供了极大的便利。 Stream可以由数组或集合创建,对流的操作分为两种: 中间操作:每次返回一个新的…

DALL·E:OpenAI第一代文本生成图片模型

1 简介 本文根据openAI 2021年2月的《Zero-Shot Text-to-Image Generation》翻译总结的。原文详见https://arxiv.org/pdf/2102.12092v1.pdf。 DALLE : 论文中没看到这个名字,可能是后起的吧。 DALLE有120亿参数,基于自回归transformer,在2…

Spring 01 -项目管理框架Spring入门

本部分理解原理就好 Spring入门1 Spring引入1.1 原生web开发中存在的问题2 Spring2.1 Spring的概念2.2 Spring 作用2.3 Spring的组成2.4 spring的IOC底层实现原理3 Spring快速入门3.1 引入spring依赖3.2 spring的配置文件3.3 测试四、Spring的开发细节4.1 BeanFactory的类间关系…

android的system_server进程的启动

android的system_server进程的启动 android的system_server进程的启动的简单介绍 system_server是Zygote的fork的第一个Java进程相当于它的大儿子,这个进程非常重要的,这里这个进程提供了很多系统线程,提供了所有的核心的系统服务。比如&am…

mysql与redis区别

一、.redis和mysql的区别总结 (1)类型上 从类型上来说,mysql是关系型数据库,redis是缓存数据库 (2)作用上 mysql用于持久化的存储数据到硬盘,功能强大,但是速度较慢 redis用于存储使…

SQL基础查选和条件查选

写完毕业论文,终于有空复习sql了,继续学习之旅~下次不能和上次一样,简单的sql语句都忘记了。 1.查询结果去重 关键字 distinct select distinct university from user_profile; 2. 将查询后的列重新命名 关键字 as 关键字limit…

Linux kernel 编译 exfat.ko ntfs.ko 来支持exFat 和 NTFS 分区

项目需求想让设备支持 exFat 和 NTFS 的文件格式. 默认的内核是不支持的,因为内核要限定1.5M之内, 所以很多东西都裁剪掉了. 而且不是所有项目都有这个需求,所以就需要编译为 ko ,按需加载; 而不是才去built-in的方式. 在如下的选项找到对应的配置. 至于如何找到, 我推荐2种方式…

LE AUDIO快速了解

有BIS和CIS两种 BIS是广播的,不需要连接,只需要监听 CIS要建立连接的,除了ACL链路,还需要建立CIS链路 BIS部分 也没啥要看的,只需要记住3个指令就可以了 主要是HCI的3个指令 2068 206b 206e 这3个指令即可 206…

Nacos安全性探究

Nacos怎么做安全校验的? 以下使用nacos2.x 如上图所示, 可以直接访问Nacos的接口来获取用户列表。这说明Nacos的接口被爆露,任何情况下都可以访问,因此安全性得不到保障。 Nacos 使用 spring security 作为安全框架。spring sec…

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取每张图像的微秒时间和FrameID(C#)

BGAPI SDK获取图像微秒级时间和FrameID Baumer工业相机Baumer工业相机FrameID技术背景一、FrameID是什么?二、使用BGAPI SDK获取图像微秒时间和FrameID步骤 1.获取SDK图像微秒级时间2.获取SDK图像FrameIDBaumer工业相机使用微秒级时间和FrameID保存的用处Baumer工业…

混淆矩阵Confusion Matrix(resnet34 基于 CIFAR10)

目录 1. Confusion Matrix 2. 其他的性能指标 3. example 4. 代码实现混淆矩阵 5. 测试,计算混淆矩阵 6. show 7. 代码 1. Confusion Matrix 混淆矩阵可以将真实标签和预测标签的结果以矩阵的形式表示出来,相比于之前计算的正确率acc更加的直观…

jenkins打包发布前端项目

1.配置前端nodejs打包环境 1.1安装nodejs插件 1.2配置jenkins nodejs环境 2.下载git插件(使用此插件配置通过gitlab标签拉取项目) 3.创建一个自由风格的发布项目 4.配置项目构建流程 4.1添加钉钉告警 4.2配置参数化构建 4.3配置源码管理为git拉取项目 4.4配置构建环境 4.5配置…

transform属性

CSS transform属性允许对某一个元素进行某些形变, 包括旋转,缩放,倾斜或平移等。 注意事项,并非所有的盒子都可以进行transform的转换,transform对于行内级非替换元素是无效的,比如对span、a元素等 常见的函数transform function有&#xf…

算法笔记:匈牙利算法

1 二部图(二分图) 二分图(Bipartite graph)是一类特殊的图,它可以被划分为两个部分,每个部分内的点互不相连。 匈牙利算法主要用来解决两个问题:求二分图的最大匹配数和最小点覆盖数。 2 最大匹…

[C++笔记]初步了解STL,string,迭代器

STL简介 STL(standard template libaray-标准模板库): 是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包含数据结构与算法的软件框架。 是一套功能强大的 C 模板类,提供了通用的模板类和函数,这些模板…