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

包导入

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

import ee

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

ee.Authenticate()

您获取身份验证凭据的方式可能因您的环境而异。有关Colab 和Conda 中身份验证的更多详细信息,请参阅链接 。通常,本地安装的身份验证是生成持久授权令牌的一次性步骤,而诸如 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;
};
def my_fun(arg):
  return arg
匿名函数映射
var foo = col.map(function(arg) {
  return arg;
});
foo = col.map(lambda arg: arg)
变量定义
var myVar = 'var';
	

my_var = 'var'
逻辑运算符

var match = such.and(that);
var match = such.or(that);
var match = such.not(that);
match = such.And(that)
match = such.Or(that)
match = such.Not(that)
多行方法链
var foo = my.really()
              .reallyLong()
              .methodChain();
foo = (my.really()
       .reallyLong()
       .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});
# Positional arguments.
foo = fun(arg_x, arg_y, arg_z)
# Keyword arguments dictionary.
foo = fun(**{'y': arg_y})
# Keyword arguments.
foo = fun(x=arg_x, z=arg_z)
布尔值
	

var t = true;
var f = false;
t = True
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 元素使用第三方库。 Folium和 ipyleaflet提供交互式地图处理,而图表可以使用Matplotlib、 Altair或 seaborn来完成, 仅举几例。有关使用 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
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 将模型上传到Google Earth Engine (GEE) 并使用的步骤如下: 1. 准备数据:首先,您需要准备您的模型所需的数据。数据可以来自不同的来源,包括卫星图像、气象数据等。确保您的数据已经导入到GEE的数据目录中。 2. 创建模型:使用合适的编程语言(例如JavaScript)创建您的模型。模型可以是机器学习模型、地理空间分析模型或其他类型的模型。 3. 上传模型:将您的模型上传到GEE的代码编辑器中。您可以使用GEE提供的API来上传模型,例如`ee.Model.fromAsset()`函数。 4. 部署模型:在上传模型后,您可以选择将其部署为一个可调用的函数,以便在GEE使用。部署模型的方法取决于您使用的编程语言和模型类型。例如,如果您使用JavaScript开发,您可以使用GEE的`ee.Function()`函数来将模型部署为函数。 5. 在GEE使用模型:一旦您的模型成功部署,您可以在GEE的代码编辑器中使用它。通过调用模型函数并传入输入参数,可以对数据进行分析、预测或其他操作。 需要注意的是,GEE是一个强大的地理空间分析平台,因此在将模型上传到GEE之前,您可能需要熟悉GEE的API和编程语言(例如JavaScript)的使用。如果您之前没有使用GEE,建议先学习相关的文档和示例,以便更好地理解和使用GEE的功能。 ### 回答2: 要将模型上传到Google Earth Engine使用,您需要按照以下步骤进行操作: 1. 创建Google Earth Engine账户:首先,您需要创建一个Google Earth Engine的账户。您可以使用现有的Google账户登录或创建一个新的账户。 2. 安装Earth Engine Python API:您需要在本地计算机上安装Google Earth EnginePython API。可以在Google Earth Engine官方文档中找到安装指南。 3. 编写Python脚本:根据您的模型需求,编写一个Python脚本,可以使用Earth Engine Python API库来访问和处理遥感数据。 4. 将模型上传到Earth Engine:在Python脚本中,您可以使用Earth Engine Python API上传模型。首先,您需要将模型以适当的格式保存到本地计算机。然后,使用API提供的方法将模型上传到Earth Engine服务器。 5. 使用模型:一旦模型成功上传到Earth Engine,您就可以在Earth Engine的平台上使用它了。您可以使用Python脚本中的Earth Engine Python API代码,连接到模型并使用它来处理和分析遥感数据。 总之,要将模型上传到Google Earth Engine使用,您需要创建一个Earth Engine账户,安装Earth Engine Python API,编写Python脚本,将模型上传到Earth Engine服务器,并使用Earth Engine Python API来连接和使用模型。这样,您就可以在Earth Engine的平台上进行遥感数据处理和分析了。 ### 回答3: 要将模型上传到Google Earth Engine使用,需要按照以下步骤进行操作: 1. 创建Google Earth Engine账号:首先,在Google Earth Engine网站上创建一个账号。如果没有账号,需要申请并等待Google审核通过。 2. 安装Earth Engine Python API:在本地计算机上安装Earth Engine Python API。可以使用pip工具来安装,在终端中运行以下命令:pip install earthengine-api 3. 创建一个Earth Engine脚本:使用Python编写一个Earth Engine脚本,在该脚本中定义模型的输入和输出。可以使用Earth Engine提供的算法和数据集,也可以自己上传和使用数据集。 4. 将脚本上传到Earth Engine代码编辑器:将编写的脚本上传到Earth Engine代码编辑器中。在代码编辑器中,可以编辑和运行脚本,并查看结果。 5. 运行模型脚本:在代码编辑器中,运行模型脚本以上传模型到Earth Engine。脚本将发送请求给Earth Engine服务器,服务器将运行脚本并生成结果。 6. 使用结果:脚本运行完成后,可以使用Earth Engine提供的工具来查看和分析结果。可以在Google Earth Engine平台上使用可视化工具来显示生成的结果,并进行进一步的分析和处理。 总之,要将模型上传到Google Earth Engine使用,需要创建账号,安装Python API,编写脚本,上传到代码编辑器,运行脚本,然后使用Earth Engine提供的工具来查看和分析结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

此星光明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值