アセットを管理する

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 アセットは、フォルダとコレクションの階層システムに整理されています。構造は一般的なファイル システムに似ています。

ルート

アセットはクラウド プロジェクトが所有します。プロジェクト名はアセット ディレクトリのルートを定義します。たとえば、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 です。サポートされているテーブル形式には、Shapefile と 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 アプリへのアクセス権を付与することもできます。

コマンドライン

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 クライアントまたはコードエディタを使用して、アセットの割り当てを確認します。