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.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 アプリへのアクセス権を付与することもできます。プルダウン リストからアプリの名前(アクティブな 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 を使用して、アセットの割り当てを確認します。