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
命令参考
身份验证
向 Earth Engine 验证命令行工具和 Python 客户端库。 示例:
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 子命令用于设置以相同 JSON 格式在文件中提供的 ACL。您可以通过保存 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
earthengine asset setbands projects/my-project/assets/asset_id band1 band2
info 子命令会以 JSON 格式输出有关资产的详细信息,包括其元数据。set 子命令用于设置资产的各个元数据属性。setbands 子命令用于更新资产的波段名称。
您设置的元数据属性值可以是数字或字符串。
使用 --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
在运行需要 Cloud 功能的命令(例如 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
如需将 Cloud Storage 中的 Cloud Optimized GeoTIFF (COG) 注册为 COG 支持的资源(在 API 中称为外部图片),请运行带有清单的 upload external_image 命令:
earthengine upload external_image --manifest /tmp/foo.json
添加 --force 以覆盖现有资产,例如将其指向其文件的新版本(请参阅更新 COG 支持的资产)。
示例清单如下:
{
"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"
}