アセットを管理する

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

アセットタイプ

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

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

アセットの整理

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

ルート

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

ディレクトリ

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

  • folder_dataprojects/my-project/assets/
    • folder folder-name/
      • photo image-name
      • view_comfy table-name
      • 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 と TFRecord があります。Cloud Storage の Cloud Optimized GeoTIFF(COG)は、取り込む代わりに、その場で登録することもできます。サポートされているテーブル形式には、シェープファイルと 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)

フォルダまたは 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

フォルダまたは ImageCollection

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

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

外部画像

Cloud Storage バケット内の Cloud Optimized GeoTIFF(COG)ファイルは、COG を基盤とするアセット(API では外部画像と呼ばれます)として登録し、Earth Engine で直接使用できます。マニフェストの作成については、COG 登録ガイドをご覧ください。

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

アセットの一覧表示

Python クライアント

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

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

ee.data.listImages と ee.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)

コードエディタ

アセット マネージャー内で、アセットにポインタを合わせて、共有アイコンをクリックします。ダイアログで、アセットを共有するメールアドレスまたはドメインを入力し、プルダウン リストから付与する権限レベルを選択します。[アクセス権を追加] ボタンをクリックして変更を確定します。[Anyone can read] チェックボックスをオンにして、任意のエンティティに読み取り権限を付与します。このダイアログで、プルダウン リスト(アクティブなコードエディタ プロジェクトが所有するアセット)からアプリの名前を選択して、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 クライアントまたはコードエディタを使用して、アセットの割り当てを確認します。