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


相关文章
|
4月前
|
Linux 计算机视觉 C++
【解决方案】Building wheel for opencv-python:安装卡顿的原因与解决方案
当你安装OpenCV时,命令行停在Building wheel for opencv-python (PEP 517) ... -似乎卡住了。这并非程序假死,而是其编译耗时巨大。本文将揭示原因,并提供优化安装体验的实用方法。
683 88
|
2月前
|
人工智能 数据安全/隐私保护 异构计算
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
385 8
桌面版exe安装和Python命令行安装2种方法详细讲解图片去水印AI源码私有化部署Lama-Cleaner安装使用方法-优雅草卓伊凡
|
4月前
|
人工智能 数据挖掘 Linux
Centos安装Python3.7(亲测可用)
本指南详细介绍了在基于Linux(以CentOS系统为例,使用yum包管理器)的系统上安装Python 3.7版本的完整流程。Python是一种广泛使用的高级编程语言,在各种领域如软件开发、数据分析、人工智能和区块链开发等都有着重要的应用。
489 2
|
IDE 开发工具 索引
在Python中安装第三方库
在Python中安装第三方库
2579 30
|
7月前
|
IDE 开发工具 开发者
手把手教你安装PyCharm 2025:开发者的Python IDE配置全流程+避坑指南
本教程详细介绍了PyCharm 2025版本在Windows系统下的安装流程及配置方法,涵盖AI代码补全与智能调试工具链等新功能。内容包括系统要求、安装步骤、首次运行配置(如主题选择与插件安装)、创建首个Python项目,以及常见问题解决方法。此外,还提供了切换中文界面和延伸学习资源的指导,帮助用户快速上手并高效使用PyCharm进行开发。
3813 61
|
PyTorch Linux 算法框架/工具
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
这篇文章是关于如何使用Anaconda进行Python环境管理,包括下载、安装、配置环境变量、创建多版本Python环境、安装PyTorch以及使用Jupyter Notebook的详细指南。
1687 1
pytorch学习一:Anaconda下载、安装、配置环境变量。anaconda创建多版本python环境。安装 pytorch。
|
XML 数据格式 Python
Python实用记录(五):labelImg安装和使用-----看这篇就够了!
这篇文章介绍了在Windows 10系统中使用Anaconda3安装labelImg工具的方法,包括通过pip安装相关包和从GitHub下载配置,以及一些使用技巧,如修改预定义类别和自动保存功能。
1606 3
|
7月前
|
存储 缓存 文件存储
uv安装python及其依赖的加速方法
国内在使用uv的时候,可能会涉及到装python的速度太慢的问题,为了解决这个问题,可以使用`UV_PYTHON_INSTALL_MIRROR`这个环境变量。除此以外,对于多人协作场景,`UV_CACHE_DIR`也是一个有用的环境变量。本文会介绍这两个变量。
5319 10
|
10月前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
3731 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
9月前
|
JSON Shell 数据格式
使用 pipx 安装并执行 Python 应用程序 (1)
使用 pipx 安装并执行 Python 应用程序 (1)
938 17