コマンドライン ツール

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 コマンドに Cloud プロジェクトを設定します。

!earthengine --project my-project <command>

または、set_project コマンドを使用して、すべての earthengine 呼び出しで使用するデフォルトのプロジェクトを設定します。プロジェクトは認証情報ファイル(~/.config/earthengine/credentials)に追加され、--project オプションでオーバーライドされない限り、後続のコマンドに使用されます。新しい Colab セッションごとに、または仮想マシンが非アクティブ状態になって期限切れになった場合(認証情報がセッション間で保存されない場合)に、デフォルトのプロジェクトを設定します。

!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 サブコマンドを使用します。次の設定を構成できます。

たとえば、特定のプロジェクトで 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(デフォルト)、samplemodeminmax のいずれかに設定できます。これにより、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 ガイドと 画像マニフェスト ガイドをご覧ください。