Google Earth Engine(GEE)——客户端python的安装与使用

简介: Google Earth Engine(GEE)——客户端python的安装与使用

包导入

Python API 包称为ee. 必须为每个新的 Python 会话和脚本导入和初始化它:

import ee

向 Earth Engine 服务器进行身份验证:

ee.Authenticate()

您获取身份验证凭据的方式可能因您的环境而异。有关ColabConda 中身份验证的更多详细信息,请参阅链接 。通常,本地安装的身份验证是生成持久授权令牌的一次性步骤,而诸如 Colab 之类的 VM 服务会限制令牌的生命周期

初始化 API:

ee.Initialize()

语法

Python 和 JavaScript API 都访问相同的服务器端功能,但客户端表达式可能因语言语法差异而有所不同。下表列出了您在使用 Python API 时会遇到的常见语法差异,相对于 JavaScript API。

JavaScript 和 Python 之间的常见语法差异

物业 JavaScript 蟒蛇
功能定义

function myFun(arg) {

return arg;

}

var myFun = function(arg) {

return arg;

};

1. def my_fun(arg):
2. return arg
匿名函数映射

var foo = col.map(function(arg) {

return arg;

});

foo = col.map(lambda arg: arg)
变量定义
var myVar = 'var';

1. 
2. 
3. my_var = 'var'
逻辑运算符


var match = such.and(that);

var match = such.or(that);

var match = such.not(that);

1. match = such.And(that)
2. match = such.Or(that)
3. match = such.Not(that)
多行方法链

var foo = my.really()

.reallyLong()

.methodChain();

1. foo = (my.really()
2. .reallyLong()
3. .methodChain())
字典键

var dic = {'key': value};

var dic = {key: value};

dic = {'key': value}
字典对象访问

var value = dic.key;

var value = dic['key'];

value = dic['key']
函数参数定义



// Positional arguments.位置参数对象

var foo = fun(argX, argY, argZ);

// Keyword arguments object.键值参数对象

var foo = fun({y: argY});

1. # Positional arguments.
2. foo = fun(arg_x, arg_y, arg_z)
3. # Keyword arguments dictionary.
4. foo = fun(**{'y': arg_y})
5. # Keyword arguments.
6. foo = fun(x=arg_x, z=arg_z)
布尔值



var t = true;

var f = false;

1. t = True
2. f = False
空值
var na = null;

na = None
注释

//注释

/*

段落注释

*/

#


于 Python API 语法的注意事项:

  • 匿名函数映射是通过函数实现的 ,它只接受一个表达式。当需要复杂的映射操作时,使用传统的命名函数。lambda
  • 作为关键字参数字典提供的函数参数必须指定为**kwargs;即,在函数输入字典前加上两个星号: y = fun(**{'x': 0})y = fun(**arg_dict)


日期对象

使用模块定义和操作客户端日期对象 。在脚本中包含模块:datetime

import datetime

转换为客户端日期:ee.Date

ee_date = ee.Date('2020-01-01')
py_date = datetime.datetime.utcfromtimestamp(ee_date.getInfo()['value']/1000.0)

将客户端日期转换为ee.Date:

py_date = datetime.datetime.utcnow()
ee_date = ee.Date(py_date)


导出数据

使用 Python API 导出数据需要使用ee.batch 模块,该模块提供了Export 函数的接口 。像使用 JavaScript API 一样传递参数参数,注意上面语法表中指出的差异。导出任务必须通过start()对定义的任务调用方法来启动。通过调用任务的status()方法来查询任务的状态。以下示例演示导出ee.Image对象。

创建导出任务:

task = ee.batch.Export.image.toDrive(image=my_image,  # an ee.Image object.
                                     region=my_geometry,  # an ee.Geometry object.
                                     description='mock_export',
                                     folder='gdrive_folder',
                                     fileNamePrefix='mock_export',
                                     scale=1000,
                                     crs='EPSG:4326')

启动导出任务:

task.start()

检查导出任务状态:

task.status

注意:从 Python API 启动的任务也将出现在同一 Google 帐户的 JavaScript代码编辑器的“任务”选项卡中 。


打印对象

在 Python 中打印 Earth Engine 对象会打印对象的序列化请求,而不是对象本身。请参阅 客户端与服务器页面以了解其原因。

调用getInfo()Earth Engine 对象以从服务器到客户端获取所需的对象:

# 加载Landsat 影像.
img = ee.Image('LANDSAT/LT05/C01/T1_SR/LT05_034033_20000913')
# 不调用 getInfo() 打印图像对象;打印序列化的请求指令。
#这个比较省事
print(img)
# 通过调用 getInfo() 打印图像对象;打印图像元数据。
#注意两者的区别一个是获取影像的基本信息,一个是获取元数据
print(img.getInfo())

请注意,这getInfo()是一个同步操作,这意味着getInfo()调用之后的表达式的执行将被阻止,直到结果返回给客户端。此外,对大量数据或昂贵计算的请求可能会返回错误和/或挂起。通常,最佳做法是 导出您的结果,完成后,将它们导入新脚本以进行进一步分析。

注意:调用getInfo()脚本会阻止执行。此外,对大量数据或昂贵计算的请求可能会返回错误和/或挂起。 导出以获得昂贵、大型或长时间运行的计算的结果。


用户界面对象

Earth Engineui模块只能通过 JavaScript API 代码编辑器使用。在 Python 中为 UI 元素使用第三方库。 Foliumipyleaflet提供交互式地图处理,而图表可以使用MatplotlibAltairseaborn来完成, 仅举几例。有关使用 Folium 和 Matplotlib 的信息,请参阅 Colab 设置笔记本中的地球引擎中的示例。


开发人员指南中的 Python

地球引擎开发人员指南中的一些示例包含 Python 代码(请继续关注!)。在这些特定页面上,您会在页面顶部找到按钮,将其作为 Colab Jupyter 笔记本运行或在 GitHub 上查看。您还将找到选项卡式代码片段小部件,它们允许您在 JavaScript 代码编辑器代码和等效的 Python Colab 代码之间切换。Colab 笔记本包含运行示例所需的一切,但如果您要复制和粘贴代码以在您自己的环境中运行,则需要先进行一些设置。


地球引擎设置

几乎每个示例都使用 Earth Engine API,因此您需要导入 API、验证和初始化。

import ee
ee.Authenticate()
ee.Initialize()

注意:如果您在 Colab 之外的环境中运行 Earth Engine Python 代码,则需要确保已安装 API 并且已将身份验证凭据保存到您的系统中。后续使用将只需要导入 API 并对其进行初始化。了解有关安装身份验证的更多信息 。



Folium交互式地图展示

所述大青叶 文库可用于显示ee.Image对象的交互式地图。当 Python 示例显示地图图块时,整个地球引擎开发人员指南页面都使用 Folium 地图。在您可以运行这些示例之前,您需要将 Folium 导入您的 Python 会话,并向folium.Map对象添加一个用于处理地球引擎图块的方法。方法如下:

import folium
#定义一个加载的图层的函数然后设定对象,视觉参数和名称等,当然这里需要接入Google所以要科学上网
def add_ee_layer(self, ee_image_object, vis_params, name):
  map_id_dict = ee.Image(ee_image_object).getMapId(vis_params)
  folium.raster_layers.TileLayer(
      tiles=map_id_dict['tile_fetcher'].url_format,
      attr='Map Data &copy; <a href="https://earthengine.google.com/">Google Earth Engine</a>',
      name=name,
      overlay=True,
      control=True
  ).add_to(self)
folium.Map.add_ee_layer = add_ee_layer

注意: Folium 可能需要安装在 Colab 之外的环境中;每一次都需要重新加载,因为过后会重新进行验证


漂亮的印刷品

一些打印的 Earth Engine 对象采用嵌套的 JSON 格式,该格式很长和/或很复杂。为了提高这些情况下的可读性,使用了该 函数;根据需要直接包含在示例中。pprint.pprintimport pprint


相关文章
|
1月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
266 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
1月前
|
XML 数据格式 Python
Python实用记录(五):labelImg安装和使用-----看这篇就够了!
这篇文章介绍了在Windows 10系统中使用Anaconda3安装labelImg工具的方法,包括通过pip安装相关包和从GitHub下载配置,以及一些使用技巧,如修改预定义类别和自动保存功能。
213 3
|
1月前
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
241 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
|
1月前
|
机器学习/深度学习 Python
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
本篇将详细介绍如何在Mac系统上安装和配置Anaconda,如何创建虚拟环境,并学习如何使用 `pip` 和 `conda` 管理Python包,直到成功运行第一个Python程序。通过本篇,您将学会如何高效地使用Anaconda创建和管理虚拟环境,并使用Python开发。
68 4
【10月更文挑战第5天】「Mac上学Python 6」入门篇6 - 安装与使用Anaconda
|
1月前
|
IDE 开发工具 iOS开发
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
本篇将详细介绍如何在Mac系统上安装Python,并配置Python开发环境。内容涵盖Python的安装、pip包管理工具的配置与国内镜像源替换、安装与配置PyCharm开发工具,以及通过PyCharm编写并运行第一个Python程序。通过本篇的学习,用户将完成Python开发环境的搭建,为后续的Python编程工作打下基础。
186 2
【10月更文挑战第3天】「Mac上学Python 3」入门篇3 - 安装Python与开发环境配置
|
1月前
|
iOS开发 MacOS Python
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
本篇将详细介绍如何在Mac系统上安装Typora这款简洁高效的Markdown编辑器,并学习Markdown常用语法。通过本篇,用户能够准备好记录学习笔记的工具,并掌握基本的文档编辑与排版技巧,为后续学习提供便利。
152 1
【10月更文挑战第1天】「Mac上学Python 1」入门篇1 - 安装Typora与Markdown编辑技巧
|
1月前
|
Python
Python 三方库下载安装
Python 三方库下载安装
28 1
|
1月前
|
机器学习/深度学习 缓存 PyTorch
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
这篇文章是关于如何下载、安装和配置Miniconda,以及如何使用Miniconda创建和管理Python环境的详细指南。
392 0
pytorch学习一(扩展篇):miniconda下载、安装、配置环境变量。miniconda创建多版本python环境。整理常用命令(亲测ok)
|
1月前
|
Python
Jetson环境安装(二):ubuntu18.0卸载和安装python3
在Jetson Nano上如何卸载Python 3.7并重新安装Python 3.7.0版本的详细步骤,包括卸载命令、安装依赖库、下载和编译Python源码以及建立软链接等。
62 2
|
1月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
124 3
下一篇
无影云桌面