命令行工具

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_modecolab,如需了解其他选项,请参阅 身份验证指南

import ee
ee.Authenticate()

命令执行

如需运行命令行实用程序(例如 Earth Engine CLI),您需要在命令调用前加上感叹号。

!earthengine -h

设置 Cloud 项目

使用 --project 选项为每个 earthengine 命令设置云项目。

!earthengine --project my-project <command>

或者,设置供所有 earthengine 调用使用的默认项目,使用 set_project 命令。该项目将添加到凭据文件 (~/.config/earthengine/credentials) 中,并用于后续命令,除非被 --project 选项替换。为每个新的 Colab 会话设置默认项目,或者在虚拟机因不活跃而过期时设置默认项目(凭据不会跨会话保存)。

!earthengine set_project my-project

命令参考

authenticate

对命令行工具和 Python 客户端库进行身份验证,以访问 Earth Engine。 示例:

    earthengine authenticate

Earth Engine 使用 OAuth 2.0 协议对 客户端进行身份验证。earthengine authenticate 命令将使用您的 Web 浏览器引导您完成身份验证过程。

如果使用默认的 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 格式。您可以将 ACL 从一项资产复制到其他资产,方法是保存 get 的输出并将其提供给 set

set 子命令还接受两个特殊的 ACL 名称:

  • private:移除除所有者以外的所有人的权限。
  • public:向所有用户授予读取权限。

借助 ch 子命令,您可以对 ACL 进行单独更改。如需授予读取 权限,请指定 -u username@gmail.com:R;如需授予写入权限,请指定 -u username@gmail.com:W;如需移除用户的权限,请指定 -d username@gmail.com。特殊用户标识符 AllUsers 可用于向所有用户授予或撤消读取权限。(请注意,撤消 AllUsers 权限不会撤消您可能还授予给个别用户的任何其他权限。)

asset

输出或更新与 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 和平台,这些引号可能是必需的,也可能不是必需的。)

如需删除属性,请将其设置为 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 命令将列出您拥有的顶级文件夹。

model

用于操控 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

如果您有权查看项目的批量任务设置,则输出包含

此外,如果您有权查看方案配置,则输出包含

  • 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

在运行需要 Cloud 功能的命令(例如 model)之前,需要运行此命令。

task

输出有关长时间运行的任务的信息或管理长时间运行的任务。示例:

    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,或创建由外部图片支持的资产。

image

如需使用默认设置上传图片素材资源,请执行以下操作:

    earthengine upload image --asset_id=projects/my-project/assets/asset_id gs://bucket/image.tif

如果您指定多个输入图片文件,它们将被解读为单个图片素材资源的图块。如需详细了解将图片上传到 Earth Engine 的选项,请参阅上传图片资产:高级 选项

您可以使用 --pyramiding_policy 标志指定金字塔缩减政策,该标志可以设置为 mean(默认值)、samplemodeminmax 之一。这将控制 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 命令 所述接受的相同 标志,指定要对资产设置的元数据属性。 图片清单指南中也介绍了这些选项。

table

如需将 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 指南和 图片清单 指南。