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>
または、earthengine
呼び出しで使用されるデフォルト プロジェクトをset_project コマンドを使用して設定します。プロジェクトは認証情報ファイル(~/.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 に提供することで、1 つのアセットから他のアセットに 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
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
(この例の引用符は、シェルがかっこを解釈しないようにするためのものです。 シェルとプラットフォームによっては、引用符が必要ない場合もあります)。
分類バンドの可視化用の特別なプロパティを作成するには、値と色のリストをカンマ区切りの文字列として保存します。たとえば、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 日午前 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 サブコマンドを使用します。次の設定を構成できます。
たとえば、特定のプロジェクトで並行して実行できるタスクを 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 コマンド described aboveで受け入れられるのと同じ
フラグを使用して、アセットに設定するメタデータ プロパティを指定することもできます。
オプションについては、
画像マニフェスト
ガイドでも説明しています。
テーブル
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 ガイドと 画像マニフェスト ガイドをご覧ください。