earthengine 工具是一个实用程序,可让您通过命令行管理 Earth Engine 资源和任务。当您安装 Python API 时,系统会自动安装该库。如需检查该工具是否已安装并正常运行,请在命令行中输入以下内容:
earthengine
如果该工具已正确安装,它会输出可用命令的简短摘要。如需获取有关特定命令的帮助,请使用:
earthengine command -h
首次安装 Python API 时,您需要使用下文所述的 authenticate 命令登录。以下部分将更详细地介绍可用的命令。
服务账号凭据
如需使用服务账号的凭据运行该 CLI,请使用 service_account_file 标志指向包含服务账号密钥的 JSON 文件。
earthengine --service_account_file=service_account_creds.json
在 Colab 中的用法
Earth Engine 命令行工具已预安装,可在 Google Colab 中直接使用。
身份验证
在每个新的 Colab 会话中进行身份验证,或者在虚拟机因闲置而过期时进行身份验证(凭据不会跨会话保存)。
导入 Python 客户端库并调用 ee.Authenticate() 以触发身份验证流程。按照提示完成身份验证。Colab 中的默认 auth_mode 为 colab,如需了解其他选项,请参阅身份验证指南。
import ee
ee.Authenticate()
命令执行
如需运行命令行实用程序(例如 Earth Engine CLI),您需要在命令调用前面加上感叹号。
!earthengine -h
设置 Cloud 项目
使用 --project 选项为每个 earthengine 命令设置云项目。
!earthengine --project my-project <command>
或者,您也可以使用 set_project 命令设置供所有 earthengine 调用使用的默认项目。项目将添加到凭据文件 (~/.config/earthengine/credentials) 中,并用于后续命令,除非被 --project
!earthengine set_project my-project
命令参考
身份验证
对命令行工具和 Python 客户端库进行身份验证,以访问 Earth Engine。 示例:
earthengine authenticate
Earth Engine 使用 OAuth 2.0 协议对客户端进行身份验证。earthengine authenticate 命令会提示您使用网络浏览器完成身份验证流程。
如果使用默认的 gcloud 身份验证模式,您需要安装 gcloud。如需了解通过身份验证指南中的 auth_mode 参数提供的其他身份验证模式,请参阅该指南。
acl
打印或更新 Earth Engine 资产的访问控制列表 (ACL)。ACL 用于控制哪些人可以读取或写入资产。示例:
earthengine acl get projects/my-project/assets/asset_id
earthengine acl set public projects/my-project/assets/asset_id
earthengine acl ch -u username@gmail.com:R projects/my-project/assets/asset_id
get 子命令会输出 ACL 的 JSON 说明。set 子命令会设置文件中提供的 ACL,该文件采用相同的 JSON 格式。您可以保存 get 的输出,并将其提供给 set,从而将一个资产的 ACL 复制到其他资产。
set 子命令还接受两个特殊的 ACL 名称:
private:移除除所有者以外的所有人的权限。public:向所有用户授予读取权限。
借助 ch 子命令,您可以对 ACL 进行逐项更改。如需授予读取权限,请指定 -u username@gmail.com:R;如需授予写入权限,请指定 -u username@gmail.com:W;如需移除用户的权限,请指定 -d
username@gmail.com。特殊用户标识符 AllUsers 可用于向所有用户授予或撤消读取权限。(请注意,撤消 AllUsers 权限不会撤消您可能还授予给个别用户的任何其他权限。)
资产
打印或更新与 Earth Engine 资产关联的元数据。示例:
earthengine asset info projects/my-project/assets/asset_id
earthengine asset set -p name=value projects/my-project/assets/asset_id
info 子命令以 JSON 格式输出有关媒体资源的详细信息,包括其元数据。set 子命令用于设置媒体资源的各个元数据属性。
您设置的元数据属性的值可以是数字,也可以是字符串。
使用 --property 或 -p 标志设置属性名称时,请使用等号分隔属性名称和值。系统会自动检测数据类型,您也可以通过在属性名称前添加 (string)、(number) 或 (date) 来明确指定数据类型。例如,以下代码会设置一个值为 "42" 的字符串值属性:
earthengine asset set -p '(string)name=42' projects/my-project/assets/asset_id
(此示例中的引号可防止 shell 解释圆括号。 它们可能需要,也可能不需要,具体取决于您的 shell 和平台。)
如需为分类区间可视化图表创建特殊属性,您可以将值和颜色列表存储为以逗号分隔的字符串。例如,如需为名为 landcover 的波段设置调色板和类别值,请执行以下操作:
earthengine asset set -p 'landcover_class_palette=ff0000,00ff00,0000ff' projects/my-project/assets/asset_id
earthengine asset set -p 'landcover_class_values=1,2,3' projects/my-project/assets/asset_id
如需删除属性,请将其设置为不带类型的 null:
earthengine asset set -p name=null projects/my-project/assets/asset_id
日期属性只是表示自 Unix 纪元(即 1970 年 1 月 1 日午夜)以来经过的毫秒数的数字,可以直接指定为数字,也可以采用以下格式之一:
YYYY-MM-DD
YYYY-MM-DDThh:mm:ss
YYYY-MM-DDThh:mm:ss.f
时区假定为世界协调时间 (UTC)。您可以使用 --time_start 和 --time_end 标志设置特殊开始时间和结束时间属性:
earthengine asset set --time_start 1978-10-15T12:34:56 projects/my-project/assets/asset_id
cp
复制资源。示例:
earthengine cp projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id
create
创建新文件夹和图片集。示例:
earthengine create folder projects/my-project/assets/folder_id
earthengine create collection projects/my-project/assets/collection_id
使用 folder 子命令创建文件夹,使用 collection 创建图片集。您可以指定 -p 选项,以根据需要递归创建父文件夹。默认情况下,新创建的文件夹和映像具有私有 ACL。
ls
列出一个或多个文件夹或集合的内容。示例:
earthengine ls users/username
-l 选项会请求包含有关每项资产(目前仅为其类型)的更多信息的长格式。您可以指定 --max_items number(或简写形式 -m)来限制您列出的每个文件夹或集合中的商品数量:
earthengine ls -m 10 projects/my-project/assets/my_large_collection
运行不带任何实参的 ls 命令将列出您拥有的顶层文件夹。
模型
用于操作 TensorFlow 已保存模型的工具。
model prepare
准备已保存的模型,以便在 Earth Engine 中提供服务。具体而言,此函数会将您的 SavedModel 转换为适合处理来自 Earth Engine 的请求的形式。(详细了解 SavedModel。)
earthengine model prepare my_source_dir my_dest_dir '{"Conv2D:0":"my_input_band"}' '{"Sigmoid:0":"my_output_band"}'
如需详细了解 AI Platform 模型,请点击此处。点击此处查看完整示例。
mv
移动或重命名素材资源。示例:
earthengine mv projects/my-project/assets/asset_id projects/my-project/assets/new_asset_id
project_config
设置项目配置值。在使用此命令之前,请务必使用 set_project 设置项目。
get
如需查看项目配置,请使用 get 子命令:
earthengine alpha project_config get
如果您有查看项目批处理任务设置的权限,则输出包含:
maxConcurrentExports:一个数字,表示给定项目的所有用户可以并行运行的批处理任务数上限。默认情况下,此值设置为关联结算账号的订阅方案允许的最大值。
此外,如果您有查看方案配置的权限,则输出包含:
planMaxConcurrentExports,一个数字,表示使用相应结算账号的所有用户和项目可以并行运行的批处理任务数量上限。
set
如需更新项目的配置,请使用 set 子命令。您可以配置以下设置:
例如,如需将项目配置为仅允许为指定项目并行运行 10 个任务,请执行以下操作:
earthengine alpha project_config set --max_concurrent_exports=10
输出会显示更新后的项目配置,与 get 返回的内容相同。
如需详细了解批处理任务并行性,请参阅 Earth Engine 配额页面。
rm
删除一个或多个素材资源。示例:
earthengine rm projects/my-project/assets/asset_id
earthengine rm -r projects/my-project/assets/folder_id
您可以使用 -r 标志以递归方式删除文件夹或集合的内容。为了在删除多项资产时确保安全,您可以使用 --dry_run 标志来验证将要删除的内容,而不会实际删除任何内容。
set_project
设置用于路由计算请求的 Google Cloud 项目。
earthengine set_project foo-project
在运行需要云功能的命令(例如 model)之前,需要运行此命令。
任务
输出有关长时间运行的任务的信息或管理长时间运行的任务。示例:
earthengine task list
earthengine task list -l
earthengine task info TASK_ID
earthengine task cancel TASK_ID
list 子命令会列出您最近提交的任务的基本信息。-l 选项会请求提供长格式的输出,其中包含有关每项任务的更多信息。info 子命令会输出有关各个任务的详细信息。cancel 子命令用于取消一个或多个正在运行的任务。
upload
将 Google Cloud Storage 中的图片或表格上传到 Earth Engine,或创建由外部图片支持的资源。
图片
如需使用默认设置上传图片素材资源,请执行以下操作:
earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif
如果您指定多个输入图片文件,系统会将它们解读为单个图片素材资源的平铺。如需详细了解将图片上传到 Earth Engine 的选项,请参阅上传图片素材资源:高级选项。
您可以使用 --pyramiding_policy 标志指定金字塔缩减政策,该标志可以设置为 mean(默认值)、sample、mode、min 或 max 之一。此参数将控制 Earth Engine 如何生成图像的低分辨率版本金字塔:
earthengine upload image --asset_id=projects/my-project/assets/asset_id --pyramiding_policy=sample gs://bucket/image.tif
您可以使用 --last_band_alpha 指示应从最后一个波段中的 Alpha 通道获取图片掩码:
earthengine upload image --asset_id=projects/my-project/assets/asset_id --last_band_alpha gs://bucket/image.tif
您可以使用 --nodata_value 标志指定缺失数据值。这会遮盖图片中具有该值的任何像素:
earthengine upload image --asset_id=users/myuser/asset --nodata_value=255 gs://bucket/image.tif
您还可以使用 asset set 命令接受的相同标志指定要为资产设置的元数据属性(如上所述)。映像清单指南中也介绍了这些选项。
表
如需将 Shapefile、CSV 或 TFRecord 从 Google Cloud Storage 上传到 Earth Engine 表格资产,您可以使用以下任一方法:
earthengine upload table --asset_id=projects/my-project/assets/myUploadedShapefile gs://bucket/foo.shp
earthengine upload table --asset_id=projects/my-project/assets/myUploadedCSV gs://bucket/foo.csv
earthengine upload table --asset_id=projects/my-project/assets/myUploadedTFRecord gs://bucket/foo.tfrecord
在解读 CSV 和 TFRecord 文件方面,有很多选项。您可以访问表格清单指南或使用以下命令查看表格上传选项的完整列表:
earthengine upload table -h
external_image
如需创建由外来图片支持的资源,请运行带有清单的 upload_image 命令:
earthengine upload external_image --manifest /tmp/foo.json
清单示例如下:
{
"name": "projects/{project}/assets/cogdemo1",
"tilesets": [
{ "id": "0", "sources": [{ "uris": ["gs://ee-docs-demos/COG_demo.tif"] }] }
],
"properties": {
"source": "https://code.earthengine.google.com/d541cf8b268b2f9d8f834c255698201d"
},
"startTime": "2016-01-01T00:00:00.000000000Z",
"endTime": "2016-12-31T15:01:23.000000000Z"
}
如需详细了解如何构建清单,请参阅 Cloud GeoTIFF 指南和图片清单指南。