アセットを管理する

Earth Engine アセットは、プラットフォーム内に保存されているプロジェクト所有の地理空間データです。独自のデータをアップロードしたり、Earth Engine 分析から生成されたデータをアセットとして保存したりできます。

アセットタイプ

Earth Engine には、さまざまなデータ型に対応したさまざまなアセット形式と、整理するためのコンテナ要素が用意されています。

アセットタイプ
Image ラスター: 地理情報をグリッドベースで表したもの。グリッド内の各セルには、地球上の特定の位置に対応する値が格納されます。
ImageCollection モザイクまたは時系列を構成する関連するラスター画像のコレクション。機能的にはフォルダに似ていますが、フィルタリングと分析のための一連のメソッドを含む ee.ImageCollection オブジェクトとして Earth Engine にインポートできます。
Table ベクトル特徴(行)で構成されるテーブル データ構造。各行には一連のプロパティ(列)が含まれます。これは ee.FeatureCollection オブジェクトで表され、フィルタリングと分析のための一連のメソッドが含まれています。
Classifier トレーニング済みの Earth Engine ML モデル。これは ee.Classifier オブジェクトで表され、アプリケーションと分析用の一連のメソッドが含まれています。
FeatureView Earth Engine アプリで使用するための表の可視化ビュー。
Folder アセットと、整理に役立つ追加のフォルダを格納するコンテナ。

アセットの整理

Earth Engine アセットは、フォルダとコレクションの階層システムに編成されます。構造は一般的なファイル システムに似ています。

ルート

アセットは Cloud プロジェクトが所有します。プロジェクト名は、アセット ディレクトリのルートを定義します。たとえば、my-project のルート パスは projects/my-project/assets です。my-project に属するアセットはすべて、projects/my-project/assets フォルダまたはその中のサブフォルダ(または ImageCollection)にあります。

ディレクトリ

Earth Engine では、ツリー状のディレクトリ構造を使用してアセットを整理します。各 Cloud プロジェクトには、個々のアセットとフォルダを含めることができるルート ディレクトリがあります。ImageCollection は、時系列やモザイクなど、関連する画像のセットを保持するために特別に設計された特別なアセットタイプです。フォルダとは異なり、ImageCollection には画像アセットのみを含めることができ、他のフォルダやコレクションをネストすることはできません。

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy テーブル名
      • satellite featureview-name
      • bubble_chart classifier-name
      • photo_library imagecollection-name/
        • photo image-name-1
        • photo image-name-2

アセット ID

Earth Engine は、スクリプトとコマンドライン オペレーションの両方で、アセット ID を使用してデータを参照します。ディレクトリ間の区切り文字としてスラッシュ(/)を使用して、アセットの場所を定義します。たとえば、projects/my-project/assets/my-asset は「my-project」ルートに存在する「my-asset」という名前のアセットを指定します。次の例は、この ID を使用してアセットに関する情報を取得する方法を示しています。

Python

print(ee.data.getAsset('projects/my-project/assets/my-asset'))

コードエディタ

print(ee.Image('projects/my-project/assets/my-asset'))

コマンドライン

earthengine asset info projects/my-project/assets/my-asset

アセットの作成

フォルダと ImageCollection を作成し、ローカル ファイルまたは Google Cloud Storage バケット内のファイルから画像とテーブルを取り込むことができます。サポートされている画像形式には、GeoTIFF(標準と COG)、TFRecord などがあります。サポートされているテーブル形式には、シェープファイルと CSV があります。(バッチ関数 Export.*.toAsset を使用して Earth Engine 分析結果をエクスポートしてアセットを作成することもできます)。

Python クライアント

画像

ee.data.startIngestion 関数を使用して、Cloud Storage から画像を取り込みます。アップロードの構成の詳細については、イメージ マニフェスト ページをご覧ください。

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'tilesets': [
    {
      'sources': [
        {
          'uris': [
            'gs://my-bucket/filename.tif'
          ]
        }
      ]
    }
  ]
}
ee.data.startIngestion(None, manifest)

ee.data.startTableIngestion 関数を使用して、Cloud Storage からテーブルを取り込みます。アップロードの構成の詳細については、イメージ マニフェスト ページをご覧ください。

manifest = {
  'name': 'projects/my-project/assets/asset-name',
  'sources': [
    {
      'uris': [
        'gs://my-bucket/filename.csv'
      ]
    }
  ]
}
ee.data.startTableIngestion(None, manifest)

Folder または ImageCollection

ee.data.createAsset 関数を使用して、空のフォルダまたは ImageCollection を作成します。

ee.data.createAsset(
    {'type': 'FOLDER'}, # or 'IMAGE_COLLECTION'
    'projects/my-project/assets/asset-name'
)

コードエディタ

アセット マネージャーで [新規] ボタンをクリックし、アップロードまたは作成するアセットタイプをプルダウン リストから選択します。ダイアログでアセットのアップロードまたは作成を構成します。

コマンドライン

画像または表

earthengine upload image --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.tif
earthengine upload table --asset_id=projects/my-project/assets/asset-name gs://my-bucket/filename.csv

Folder または ImageCollection

earthengine create コマンドを使用して、空のフォルダまたは ImageCollection を作成します。

earthengine create folder projects/my-project/assets/folder-name
earthengine create collection projects/my-project/assets/collection-name

外部画像

Google Cloud Storage バケットにアップロードしたクラウドに最適化された GeoTIFF(COG)ファイルを外部画像アセットとして登録し、Earth Engine で直接使用できます。COG でサポートされているアセットとマニフェストの作成の詳細については、リファレンス ドキュメントをご覧ください。

earthengine alpha upload external_image --manifest /tmp/foo.json

アセットの一覧表示

Python クライアント

ee.data.listAssets 関数を使用して、フォルダまたはコレクション内のアセットを一覧表示します(再帰的ではありません)。フィルタリングとページネーションの詳細については、リファレンス ドキュメントをご覧ください。

ee.data.listAssets('projects/my-project/assets')

ee.data.listImagesee.data.listFeatures もご覧ください。

コードエディタ

アセット マネージャーでフォルダを開いてアセットを表示します。

コマンドライン

earthengine ls コマンドを使用して、フォルダまたはコレクション内のアセットを一覧表示します(再帰的ではありません)。一覧表示するアセットの数と返される金額の詳細の制限については、リファレンス ドキュメントをご覧ください。

earthengine ls projects/my-project/assets

アセットの権限を設定する

Python クライアント

ee.data.setAssetAcl 関数を使用して、アセットの権限を設定します。

asset_id = 'projects/my-project/assets/asset-name'
acl_update = {
    'owners': [
        'user:big_cheese@example.com',
        'user:el_jefe@example.com'
    ],
    'writers': [
        'user:romeo@example.com',
        'user:juliet@example.com'
    ],
    'readers': [
        'group:some-group@googlegroups.com',
        'domain:example.com',
        'serviceAccount:some-project-id@appspot.gserviceaccount.com'
    ],
    'all_users_can_read': False
}
ee.data.setAssetAcl(asset_id, acl_update)

コードエディタ

アセット マネージャーで、アセットにカーソルを合わせて共有アイコンをクリックします。ダイアログで、アセットを共有するメールアドレスまたはドメインを入力し、プルダウン リストから付与する権限レベルを選択します。[アクセス権を追加] ボタンをクリックして変更を確定します。[誰でも読み取り可能] チェックボックスをオンにして、任意のエンティティに読み取り権限を付与します。ダイアログから Earth Engine アプリへのアクセス権を付与することもできます。プルダウン リストからアプリの名前(アクティブな Code Editor プロジェクトが所有するアセット)を選択します。

コマンドライン

earthengine acl set コマンドを使用して、アセットの読み取りアクセス権を public または private に設定します。

earthengine acl set public projects/my-project/assets/asset-name

earthengine acl ch コマンドを使用して、アセットの読み取りと書き込みの個別の権限を設定します。

earthengine acl ch -u person@gmail.com:R projects/my-project/assets/asset-name

詳細については、コマンドライン リファレンスのページをご覧ください。

アセットの権限を確認する

Python クライアント

ee.data.getAssetAcl 関数を使用して、アセットのアクセス制御リストを取得します。

ee.data.getAssetAcl('projects/my-project/assets/asset-name')

コードエディタ

アセット マネージャーで、アセットにカーソルを合わせて共有アイコンをクリックします。ダイアログに、メールアドレスとドメインのリストと、それぞれのアクセスレベルが表示されます。

コマンドライン

earthengine acl get コマンドを使用して、アセットのアクセス制御リストを取得します。

earthengine acl get projects/my-project/assets/asset-name

アセットをコピーする

Python クライアント

アセットをコピーするには、ee.data.copyAsset 関数を使用します。

ee.data.copyAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/asset-copy-name')

コードエディタ

Python クライアントまたはコマンドライン ツールを使用してアセットをコピーします。

コマンドライン

アセットをコピーするには、earthengine cp コマンドを使用します。

earthengine cp projects/my-project/assets/asset-name projects/my-project/assets/asset-copy-name

アセットの移動または名前変更

Python クライアント

ee.data.renameAsset 関数を使用して、アセットを移動または名前変更します。

ee.data.renameAsset('projects/my-project/assets/asset-name', 'projects/my-project/assets/new-asset-name')

コードエディタ

移動

アセット マネージャーで、アセットを新しいフォルダにドラッグします。

名前を変更

アセット マネージャーで、アセットにカーソルを合わせ、編集アイコンをクリックし、編集可能な入力フィールドに新しい名前を入力します。

コマンドライン

earthengine mv コマンドを使用して、アセットを移動または名前変更します。

earthengine mv projects/my-project/assets/asset-name projects/my-project/assets/new-asset-name

アセットの削除

Python クライアント

ee.data.deleteAsset 関数を使用してアセットを削除します。

ee.data.deleteAsset('projects/my-project/assets/asset-name')

コードエディタ

アセットをクリックしてアセット ダイアログ ページを開き、[削除] ボタンをクリックします。

コマンドライン

earthengine rm コマンドを使用してアセットを削除します。再帰実行とドライランのオプションについては、関数リファレンスをご覧ください。

earthengine rm projects/my-project/assets/asset-name

アセットのメタデータを表示する

Python クライアント

アセットのメタデータを取得するには、ee.data.getAsset 関数を使用します。

ee.data.getAsset('projects/my-project/assets/asset-name')

コードエディタ

アセットをクリックして、アセット ダイアログ ページを開きます。アセット情報を表示します。

コマンドライン

earthengine asset info コマンドを使用して、アセットのメタデータを取得します。

earthengine asset info projects/my-project/assets/asset-name

アセットのメタデータを設定する

次のアセット メタデータを設定できます。

  • start_time
  • end_time
  • properties

Python クライアント

ee.data.updateAsset 関数を使用して、アセットのメタデータを更新します。

asset_id = 'projects/my-project/assets/asset-name'
new_metadata = {
  'properties': {
    'name': 'value'
  },
  'start_time': '2024-10-02T15:01:24Z',
  'end_time': '2024-10-02T15:01:25Z',
}
update_these = ['start_time', 'end_time', 'properties']

ee.data.updateAsset(asset_id, new_metadata, update_these)

コードエディタ

アセットをクリックしてアセット ダイアログ ページを開き、右上の編集切り替えボタンをオンにします。説明、プロパティ、開始日、終了日を編集できます。編集切り替えボタンをオフにして、変更を保存します。

コマンドライン

アセットのメタデータを更新するには、earthengine asset set コマンドを使用します。詳細については、リファレンス ドキュメントをご覧ください。

earthengine asset set \
  --time_start 2024-10-02T15:01:24 \
  --time_end 2024-10-02T15:01:25 \
  --property 'name=value' \
  projects/my-project/assets/asset-name

アセットの割り当てを確認する

割り当てはプロジェクト レベルで適用されます。アセット割り当ての詳細については、使用量と割り当ての上限のページをご覧ください。

Python クライアント

ee.data.getAssetRootQuota 関数を使用して、アセットルートのストレージ割り当て使用量を取得します。

ee.data.getAssetRootQuota('projects/my-project/assets')

コードエディタ

アセット マネージャーで、プロジェクトルートの上にカーソルを合わせ、[data_usage] アイコンをクリックします。情報ダイアログが表示されます。

コマンドライン

Python クライアントまたは Code Editor を使用して、アセットの割り当てを確認します。