Earth Engine の Cloud Optimized GeoTIFF(COG)

Google Earth Engine を使用すると、独自の Google Cloud Storage(GCS)バケットに保存されているラスターデータを操作できます。Cloud Optimized GeoTIFF(COG)を 使用すると、Earth Engine のアセットストアにピクセル を取り込むことなく、Earth Engine でデータに直接アクセス して分析できます。

このクラウド ファーストのアプローチには、特に大規模なデータセットの管理や、Earth Engine をより広範な Google Cloud ワークフローや外部ツール、プラットフォームに統合する場合に、いくつかのメリットがあります。

Cloud Storage と COG を使用する理由

  • 柔軟性と相互運用性: データを標準の Cloud Storage バケットに保存すると、他のツールやサービスからアクセスできます。 データを直接アップロードする場合でも、Earth Engine からエクスポートする場合でも、Cloud Storage は Earth Engine と外部ワークフローの両方にとって信頼できる唯一の情報源となります。
  • データ コントロールと下り(外向き): Cloud Storage にデータを保存すると、標準のオブジェクト ストレージ管理機能を利用できます。これにより、 リクエスタ支払いなどの Cloud Storage 機能や 公開バケットを使用してデータをダウンロード、移行、 共有し、 標準の Cloud IAMを使用してアクセスを管理できます。
  • 柔軟なスケーリング: Earth Engine のストレージ上限を回避できます。 Cloud Storage は、ペタバイト規模までほぼ無制限のセルフサービス ストレージ スケーリングを提供します。
  • 取り込みの待機なし: COG の登録は迅速に完了します。これは、Earth Engine がインデックス作成と検証のためにファイル ヘッダーからメタデータ(投影やディメンションなど)のみを読み取るためです。実際のピクセルデータは Cloud Storage に残り、計算時にオンデマンドで読み取られるため、個別の取り込みタスクは不要です。

Earth Engine の COG ワークフロー

Earth Engine は、Cloud Storage 上の COG を使用した双方向ワークフローをサポートしています。COG を GCS から Earth Engine に直接読み込むことも、Earth Engine から計算結果を COG として GCS に直接書き込むこともできます。

Cloud Storage から COG を読み取る

GCS でホストされている COG を Earth Engine に取り込むには、次の 2 つの方法があります。

  1. 直接読み込み (ee.Image.loadGeoTIFF): GCS URI を使用して単一の画像を直接読み込みます。これは、クイックテスト、アドホック分析、一時データに最適です。

    JavaScript

    var image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif');
    

    Python

    image = ee.Image.loadGeoTIFF('gs://google-sample-bucket/my_image.tif')
    

    完全な例については、 Cloud GeoTIFF からの画像をご覧ください。

  2. 登録済みアセット: アップロード マニフェストを使用して、1 つ以上の COG を Earth Engine アセットとして登録します( COG 登録ガイドをご覧ください)。これは、特に画像コレクションを構築する場合に、本番環境ワークフローで推奨される方法です。

機能 直接読み込み(loadGeoTIFF) 登録済みアセット(マニフェスト)
設定 なし(GCS URI のみ) マニフェスト(Python クライアント、CLI、REST)
パフォーマンス 標準 (読み取り時にヘッダーを読み取る) 最適化 (作成時にインデックスが作成される)
管理 アセットは作成されません ストレージではなく、アセット数の上限にカウントされます。
ユースケース プロトタイピング、アドホック分析 高速な読み取りを必要とする本番環境ワークフロー。

Cloud Storage に COG を書き込む

Earth Engine の計算結果を COG として Cloud Storage バケットに保存するには、 Export.image.toCloudStorage バッチ エクスポート関数を使用し(画像のエクスポートをご覧ください)、 cloudOptimized パラメータを true に設定します(formatOptions)。これにより、Earth Engine は画像をコンパイルし、完全に準拠した COG として GCS バケットに直接書き込みます。

サポートされている Cloud Storage バケットのロケーション

Earth Engine が Cloud Storage バケットにアクセスするには、バケットが次のいずれかのデータセンター リージョンまたはマルチリージョンに配置されている必要があります 。

  • us マルチリージョン
  • us-central1 を含む米国のデュアルリージョン
  • us-central1 リージョン

バケットが他のリージョン データセンターに配置されている場合、Earth Engine は登録リクエストと読み取りリクエストを拒否します。Earth Engine は、Google Cloud Storage バケットにのみ保存されている COG にアクセスします。外部クラウド ストレージ プロバイダと汎用 HTTP URL はサポートされていません。

費用に関する考慮事項とストレージ クラス

登録済みの COG アセットを分析する場合、Earth Engine からの読み取りでは、Google Cloud プロジェクトで Cloud Storage の読み取りオペレーションやデータ取得の料金は発生しません。

Cloud Storage では、主に標準の月額保存データ(GB/月) と、外部クライアントのデータ転送またはネットワークの下り(外向き)の料金(バケットのロケーションとクライアント ネットワーク構成によって異なります)に対して課金されます。

ストレージ クラスに関する推奨事項

  • 標準ストレージ(推奨): 標準ストレージは、アクティブな Earth Engine ワークフローに最適です。最小ストレージ期間のルールがないため、早期削除のペナルティを発生させることなく、一時的な COG を自由に上書き、更新、削除できます。さらに、Earth Engine の外部でデスクトップ GIS ソフトウェア、GDAL スクリプト、ML ノートブックを使用してバケットにアクセスする場合、標準ストレージでは小売りの取得追加料金は発生しません。
  • Nearline、Coldline、Archive Storage: すべての Cloud Storage クラスは、Standard Storage と同じ低レイテンシのアクセスとスループットを提供するため、Earth Engine でコールド ストレージ階層を使用しても読み取りパフォーマンスの低下はありません。Earth Engine の計算では、小売りのデータ取得料金を評価せずにこれらの階層を読み取ることもできますが、Cloud Storage の小売りのルールでは、厳格な最小ストレージ期間(Nearline は 30 日、Coldline は 90 日、Archive は 365 日)が適用されます。最小期間より前にファイルを変更または削除すると、早期削除の追加料金が発生します。また、外部クライアント ツールからコールド オブジェクトにアクセスすると、高額なデータ取得の追加料金が発生します。

小売りの料金と最小期間ポリシーの詳細については、 Google Cloud Storage の料金ガイドをご覧ください。

大まかなワークフロー

Earth Engine で COG を使用する一般的なワークフローには、次の手順が含まれます。

外部データを取り込む場合:

  • 最適化: 外部ツール(GDAL、ローカル ワークステーション スクリプト、クラウド処理パイプラインなど)を使用して、ラスターファイルを COG 形式に変換します。
  • アップロード: COG を、us-central1 または米国のマルチリージョンにあるサポートされている Cloud Storage バケットにアップロードします。
  • 権限: プロジェクト コラボレーターがファイルに対する Cloud Storage の読み取りアクセス権を持っていることを確認します(COG 権限をご覧ください)。
  • 登録: Python クライアント ライブラリ、earthengine コマンドライン ツール、または REST API を使用して、COG を Earth Engine アセットとして登録します(COG 登録をご覧ください)。

結果をエクスポートする場合:

  • エクスポート: Earth Engine から Cloud Storage へのバッチ エクスポートを cloudOptimized を true に設定して実行します(画像のエクスポートをご覧ください)。
  • 登録(省略可): エクスポートした COG を 新しいアセットとして Earth Engine に登録し、さらに分析します(COG 登録をご覧ください)。

準備ができたら、 COG 登録ガイドに沿って 最初のアセットを登録してください。