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.tifearthengine 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-nameearthengine 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.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)
コードエディタ
アセット マネージャーで、アセットにカーソルを合わせて、共有アイコンをクリックします。ダイアログで、アセットを共有するメールアドレスまたはドメインを入力し、プルダウン リストから付与する権限レベルを選択します。[アクセス権限を追加] ボタンをクリックして変更を確定します。[誰でも読み取り可能] チェックボックスをオンにして、任意のエンティティに読み取り権限を付与します。ダイアログで、プルダウン リストからアプリの名前(アクティブなコードエディタ プロジェクトが所有するアセット)を選択して、Earth Engine アプリへのアクセス権を付与することもできます。
コマンドライン
earthengine acl set コマンドを使用して、アセットの読み取りアクセス権を public または private に設定します。
earthengine acl set public projects/my-project/assets/asset-nameearthengine 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_timeend_timeproperties
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 クライアントまたはコードエディタを使用して、アセットの割り当てを確認します。