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
コマンドに Cloud プロジェクトを設定します。
!earthengine --project my-project <command>
または、set_project
コマンドを使用して、すべての earthengine
呼び出しで使用するデフォルトのプロジェクトを設定します。プロジェクトは認証情報ファイル(~/.config/earthengine/credentials)に追加され、--project
!earthengine set_project my-project
コマンド リファレンス
authenticate
コマンドライン ツールと 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
サブコマンドは、同じ JSON 形式のファイルで指定された ACL を設定します。あるアセットから別のアセットに ACL をコピーするには、get
の出力を保存して set
に提供します。
set サブコマンドでは、次の 2 つの特別な ACL 名も使用できます。
private
: オーナーを除くすべてのユーザーから権限を削除します。public
: すべてのユーザーに読み取り権限を付与します。
ch
サブコマンドを使用すると、ACL を個別に変更できます。読み取り権限を付与するには -u username@gmail.com:R
を指定します。書き込み権限を付与するには -u username@gmail.com:W
を指定します。ユーザーの権限を削除するには -d
username@gmail.com
を指定します。特別なユーザー ID 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
(この例の引用符は、シェルがかっこを解釈しないようにします。シェルとプラットフォームによっては必要になる場合と必要でない場合があります)。
プロパティを削除するには、タイプなしで null
に設定します。
earthengine asset set -p name=null projects/my-project/assets/asset_id
Date プロパティは、Unix エポック(1970 年 1 月 1 日午前 0 時)からのミリ秒数を表す数値です。数値として直接指定することも、次のいずれかの形式で指定することもできます。
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
1 つ以上のフォルダまたはコレクションの内容を一覧表示します。例:
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
サブコマンドを使用します。次の設定を構成できます。
max_concurrent_exports
: プロジェクトの最大バッチタスクの並列処理を制御します。- 適切な権限が必要
たとえば、特定のプロジェクトで 10 個のタスクのみを同時に実行できるようにプロジェクトを構成するには、次のようにします。
earthengine alpha project_config set --max_concurrent_exports=10
出力には、get
が返すものと同様の、更新されたプロジェクト構成が表示されます。
バッチタスクの並列処理の詳細については、Earth Engine の割り当てのページをご覧ください。
rm
1 つ以上のアセットを削除します。例:
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
サブコマンドは、実行中の 1 つ以上のタスクをキャンセルします。
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
を使用すると、画像のマスクを最後のバンドのアルファ チャンネルから取得することを指定できます。
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
コマンドで使用できるフラグを使用して、アセットに設定するメタデータ プロパティを指定することもできます。これらのオプションについては、イメージ マニフェスト ガイドでも説明しています。
テーブル
Google Cloud Storage から Earth Engine テーブル アセットにシェープファイル、CSV、TFRecord をアップロードするには、次のいずれかを使用します。
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 alpha 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 ガイドと 画像マニフェスト ガイドをご覧ください。