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


相关文章
|
3月前
|
IDE 开发工具 索引
在Python中安装第三方库
在Python中安装第三方库
1056 30
|
4月前
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
523 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
3天前
|
JSON Shell 数据格式
使用 pipx 安装并执行 Python 应用程序 (1)
使用 pipx 安装并执行 Python 应用程序 (1)
41 17
|
22天前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
197 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
4月前
|
XML 数据格式 Python
Python实用记录(五):labelImg安装和使用-----看这篇就够了!
这篇文章介绍了在Windows 10系统中使用Anaconda3安装labelImg工具的方法,包括通过pip安装相关包和从GitHub下载配置,以及一些使用技巧,如修改预定义类别和自动保存功能。
442 3
|
29天前
|
人工智能 Java Python
python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
尼恩架构团队推出了一系列《LLM大模型学习圣经》PDF,旨在帮助读者深入理解并掌握大型语言模型(LLM)及其相关技术。该系列包括Python基础、Transformer架构、LangChain框架、RAG架构及LLM智能体等内容,覆盖从理论到实践的各个方面。此外,尼恩还提供了配套视频教程,计划于2025年5月前发布,助力更多人成为大模型应用架构师,冲击年薪百万目标。
|
1月前
|
Shell Linux iOS开发
使用 pipx 安装并执行 Python 应用程序 (1)
使用 pipx 安装并执行 Python 应用程序 (1)
52 0
使用 pipx 安装并执行 Python 应用程序 (1)
|
2月前
|
Linux Python
Linux 安装python3.7.6
本教程介绍在Linux系统上安装Python 3.7.6的步骤。首先使用`yum`安装依赖环境,包括zlib、openssl等开发库。接着通过`wget`下载Python 3.7.6源码包并解压。创建目标文件夹`/usr/local/python3`后,进入解压目录执行配置、编译和安装命令。最后设置软链接,使`python3`和`pip3`命令生效。
|
1月前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
41 0
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
3月前
|
存储 JSON 网络安全
使用 EFS 在 AWS Lambda 上安装 Python 依赖项
使用 aws lambda 时,开发人员面临的常见挑战之一是管理大型 python 依赖项。
49 1

热门文章

最新文章