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
コマンド リファレンス
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 を設定します。get の出力を保存して set に渡すことで、あるアセットから他のアセットに ACL をコピーできます。
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
日付プロパティは、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
複数の入力画像ファイルを指定すると、それらは 1 つの画像アセットのタイルとして解釈されます。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 テーブル アセットに Shapefile、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 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 ガイドとイメージ マニフェスト ガイドをご覧ください。