Google Earth Engine(GEE)—有JS和python为什么GEE还要使用rgee?

简介: Google Earth Engine(GEE)—有JS和python为什么GEE还要使用rgee?

基本 rgee - 第一步

2020-01-01 941 words 5 mins read

介绍


1. 什么是谷歌地球引擎?

谷歌地球引擎是一个计算平台,允许用户在谷歌的基础设施上运行地理空间分析。与平台交互的方式有以下几种:

  • discover
  • 代码编辑器
  • Javascript 客户端库
  • Python客户端库
  • R 客户端库

本网站重点介绍最后一个,您可以使用 R 客户端库向地球引擎服务器和开发Web 应用程序发送/接收消息。


2. 地球引擎的目的是:

  • 在全球范围内进行高度交互的算法开发
  • 推动遥感大数据的极限
  • 实现高影响力、数据驱动的科学
  • 在涉及大型地理空间数据集的全球挑战方面取得实质性进展


3. 组件:

地球引擎的主要组成部分是:

数据集:公开可用的遥感图像和其他数据的 PB 级存档。探索数据目录。

计算能力:谷歌的计算基础设施针对地理空间数据的并行处理进行了优化。

WEB REST API/客户端库:用于向地球引擎服务器发出请求。

代码编辑器:一个在线集成开发环境 (IDE),用于使用 Javascript API 对复杂空间分析进行快速原型设计和可视化。


4. 认识地球引擎

用户必须考虑到地球引擎 API 和高级地球引擎功能是实验性的,可能会发生变化。访问受到限制,需要通过表单请求访问。查看地球引擎官网获取更多信息。


5. 为什么用 rgee 而不是代码编辑器(Javascript)?

基于Tyler Erickson 演示的简短比较。

代码编辑器 rgee
易于上手 易于在脚本之间共享代码。
分享脚本很简单 更轻松地过渡到 Web 应用程序 ( Shiny )。
内置身份验证 对 R 用户更友好的 I/O API。
有限的输入/输出功能 许多绘图选项
无法与其他 JS 库集成 需要一些rgee(和维护)!


6. 安装

rgee只依赖于reticulateprocessx。因此,用户应该确保这两个软件包都可以安装在他们的系统上。安装rgee运行如下:

remotes::install_github("r-spatial/rgee")

rgee有两种类型的依赖项:在rgee安装之前必须满足的严格依赖和解锁所有rgee I/0 功能的凭据依赖项

如果没有满足严格的依赖关系,则rgee 将无法工作。组成该组的依赖项是:

  • 已激活 Earth Engine 的 Google 帐户
  • Python >= v3.5
  • EarthEngine Python API(Python 包)

地球引擎账号的激活因用户而异,详情请查看谷歌地球引擎官网。如果您不计入 Python 环境或 EarthEngine Python API 版本,我们强烈建议您运行:

library(rgee)
ee_install(py_env = "rgee") # 这个只在第一次安装就好了


该函数将实现以下六项任务:

  1. 如果您没有使用 Python 环境,它将显示一个交互式菜单来安装Minicondaconda的免费最小安装程序)。
  2. 删除以前定义的同名 Python 环境(如果存在)。
  3. 创建一个新的 Python 环境。
  4. 设置环境变量 EARTHENGINE_PYTHON 和 EARTHENGINE_ENV。这些变量将被用于定义网状环境变量RETICULATE_PYTHON加载rgee时。
  5. 安装 rgee Python 依赖项:Earth Engine Python APINumpy
  6. 交互式菜单以确认是否重新启动 R 会话以查看更改。

但是,rgee::ee_install() 的使用不是强制性的。您可以依靠自己的自定义安装。这也是允许的。如果您是 Rstudio v.1.4 > 用户,本教程将帮助您使用 R 会话正确设置 Python 环境,而无需rgee::ee_install()。考虑到您设置的 Python Environment 必须安装了Earth Engine Python APINumpy

另一方面,凭证依赖项 仅用于将数据从 Google Drive 和 Google Cloud Storage 移动到您的本地环境。这些依赖项不是强制性的。但是,它们将帮助您在 R 和 Earth Engine 之间创建无缝连接。组成该组的依赖项如下所示:

  • Google 云存储凭据
  • Google 云端硬盘凭据

请参阅下一节以了解如何正确设置这两个凭据。


7. 认证

正如我们之前看到的,rgee处理三种不同的 Google API:

  • 谷歌地球引擎
  • 谷歌云端硬盘
  • 谷歌云存储

要验证/初始化 Google Drive 或 Google Cloud Storage,您只需要按如下方式运行:

library(rgee)
#ee_reattach() # 重新附加ee作为保留字
#多种初始化功能可以一起用
# 只初始化地球引擎
ee_Initialize() 
ee_Initialize(email = 'csaybar@gmail.com') # 使用参数 email 不是强制性的
# 初始化地球引擎和GD
ee_Initialize(email = 'csaybar@gmail.com', drive = TRUE)
# 初始化地球引擎和GCS
ee_Initialize(email = 'csaybar@gmail.com', gcs = TRUE)
# 初始化地球引擎和, GD and GCS
ee_Initialize(email = 'csaybar@gmail.com', drive = TRUE, gcs = TRUE)

如果 Google 帐户已通过验证并授予权限,您将被定向到身份验证令牌。复制此令牌并将其粘贴到新出现的 GUI 中。与 Earth Engine 和 Google Drive 不同,Google Cloud Storage 需要手动设置其凭据(link1link2)。在所有情况下,用户凭据始终存储在:

ee_get_earthengine_path()

请记住,您只需授权一次,下次会话就不需要了。


8.你好世界

我们知道安装rgee有时会令人沮丧很折磨人,所以多尝试! :( 所以,恭喜你走到这一步:D :D。在这个小例子中,将向您展示如何在全球范围内显示 SRTM 高程值!。

定义可视化参数

viz <- list(
  max = 4000,
  min = 0,
  palette = c("#000000","#5AAD5A","#A9AD84","#FFFFFF")
)

使用 Map$addLayer 以交互方式可视化地图

Map$addLayer(
  eeObject = srtm,
  visParams =  viz,
  name = 'SRTM',
  legend = TRUE
)

最后加载到的结果!


相关文章
|
3月前
|
Python
Python Google风格注释详解
Google风格注释是Python代码注释的一种标准化格式,它提供了一种规范的注释格式,使得代码更加易读、易于维护。Google风格注释使用三个双引号来包围注释内容,并按照一定规范编写。在注释中使用动词短语来描述函数的行为,并使用被动语态。在注释中使用正确的标点符号和缩进,使得注释易于阅读和理解。通过使用Google风格注释,我们可以为代码提供清晰的文档和说明,使得代码更加易读、易于维护。
85 3
|
4月前
|
API 算法框架/工具 异构计算
Python中Keras微调Google Gemma:定制化指令增强大语言模型LLM
Python中Keras微调Google Gemma:定制化指令增强大语言模型LLM
|
4月前
|
程序员 Python
【🔥热闻速递】Google 裁撤 Python研发团队
Google近日决定解散其Python研发团队,原因是寻求更低劳动力成本,可能转向其他国家招聘。此举可能源于美国程序员薪资高昂,相比之下,中国工程师薪资更低且效率更高。谷歌CEO Sundar Pichai已将部分团队迁移至印度。这一决策引发对公司长期可持续性和人才保留问题的讨论,暗示谷歌正面临挑战。
70 5
|
4月前
|
设计模式 前端开发 JavaScript
AngularJS是一款由Google收购的JavaScript结构框架
【5月更文挑战第2天】AngularJS是Google收购的JavaScript框架,用于构建动态Web应用,基于MVC模式,强调模块化和双向数据绑定。它简化了视图与模型的同步,通过语义化标签和依赖注入提升开发效率。适用于复杂单页面应用(SPA),但不适合DOM操作密集型或性能要求极高的场景。
53 0
|
4月前
|
JavaScript 前端开发 Java
MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。
MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 和 Ext JS 都是 JavaScript 框架,用于开发 Web 应用程序。它们分别提供了不同的功能和特性,以帮助开发者更高效地构建和维护 Web 应用程序。
39 2
|
4月前
|
API Go 网络架构
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
GEE Colab——如何从本地/Google云盘/Google Cloud Storage (GCS)上传和下载
241 4
|
4月前
|
机器学习/深度学习 存储 人工智能
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
GEE Colab——初学者福音快速入门 Google Colab(Colaboratory)
202 3
|
2天前
|
存储 数据采集 人工智能
探索Python编程之美——从基础到进阶
【9月更文挑战第9天】本文是一篇深入浅出的技术分享文章,旨在引导读者从零基础开始掌握Python编程。我们将通过生动的实例和代码示例,探讨Python的基本语法、数据结构、函数、模块以及面向对象编程等核心概念。无论你是初学者还是有一定经验的开发者,都能在这篇文章中找到有价值的内容。让我们一起开启Python编程之旅吧!
17 11
|
2天前
|
Python
探索Python编程的奥秘:打造你的第一个程序
【9月更文挑战第8天】本文将带你进入Python编程的世界,通过一个有趣的项目——制作一个简单的猜数字游戏,让你快速入门。我们不仅会分享代码编写的步骤,还会讲解每一行代码的含义和作用,确保即使是编程新手也能跟上节奏。文章末尾附有完整代码,方便读者实践和学习。
19 12
|
3天前
|
API Python
探索Python中的多线程编程
探索Python中的多线程编程
22 5