Earth Engine 中的雲端最佳化 GeoTIFF (COG)

Google Earth Engine 可讓您處理儲存在自有 Google Cloud Storage (GCS) bucket 中的點陣資料。使用雲端最佳化 GeoTIFF (COG),即可直接在 Earth Engine 中存取及分析資料,不必將像素擷取至 Earth Engine 的資產儲存庫。

這種雲端優先的做法有多項優點,特別適合用於管理大型資料集,或將 Earth Engine 整合至更廣泛的 Google Cloud 工作流程,或外部工具和平台。

為什麼要使用 Cloud Storage 和 COG?

  • 彈性和互通性:將資料保存在標準 Cloud Storage bucket 中,其他工具和服務即可存取。無論是直接上傳資料,還是從 Earth Engine 匯出資料,Cloud Storage 都是 Earth Engine 和外部工作流程的單一事實來源。
  • 資料控制項和輸出:將資料儲存在 Cloud Storage,可提供標準物件儲存庫管理功能。這樣一來,您就能使用 Cloud Storage 功能 (例如要求者付費或公開 bucket) 下載、遷移或共用資料,並使用標準 Cloud IAM 管理存取權。
  • 彈性調度:避免 Earth Engine 儲存空間用量超出上限。Cloud Storage 提供近乎無限的自助式儲存空間擴充功能,可擴充至 PB 級。
  • 不需等待擷取:註冊 COG 的速度很快,因為 Earth Engine 只會從檔案標頭讀取中繼資料 (例如投影和維度),用於建立索引和驗證。實際的像素資料會保留在 Cloud Storage 中,並在運算期間隨選讀取,因此不需要另外執行擷取工作。

Earth Engine 中的 COG 工作流程

Earth Engine 支援與 Cloud Storage 上的 COG 進行雙向工作流程:您可以直接從 GCS 將 COG 讀取到 Earth Engine,也可以將 Earth Engine 的運算結果直接寫入 GCS 做為 COG。

從 Cloud Storage 讀取 COG

如要將 GCS 代管的 COG 匯入 Earth Engine,有兩種做法:

  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. 已註冊的資產:使用上傳資訊清單,將一或多個 COG 註冊為 Earth Engine 資產 (請參閱 COG 註冊指南)。建議您在正式版工作流程中採用這種做法,特別是建構圖片集時。

功能 直接載入 (loadGeoTIFF) 已註冊的素材資源 (資訊清單)
設定方式 無 (僅限 GCS URI) 資訊清單 (Python 用戶端、CLI 或 REST)
效能 Standard (讀取時讀取標頭) 最佳化 (建立時建立索引)
管理 未建立任何資產 計入資產數量配額,而非儲存空間。
用途 原型設計、臨時分析 需要快速讀取作業的正式環境工作流程。

將 COG 寫入 Cloud Storage

如要將 Earth Engine 運算結果儲存為 Cloud Storage bucket 中的 COG,請使用Export.image.toCloudStorage批次匯出函式 (請參閱匯出圖片),並在 formatOptions 中將 cloudOptimized 參數設為 true。這會指示 Earth Engine 編譯圖片,並直接寫入 GCS bucket,成為完全符合規範的 COG。

支援的 Cloud Storage bucket 位置

如要讓 Earth Engine 存取 Cloud Storage bucket,該 bucket 必須位於下列其中一個資料中心區域或多區域:

  • us 多區域
  • 任何包含 us-central1 的美國雙區域
  • us-central1 區域

如果 bucket 位於其他區域資料中心,Earth Engine 會拒絕註冊和讀取要求。Earth Engine 存取的 COG 僅儲存在 Google Cloud Storage bucket 中。系統不支援外部雲端儲存空間供應商和一般 HTTP 網址。

成本考量和儲存空間級別

分析已註冊的 COG 資產時,從 Earth Engine 讀取資料不會產生 Cloud Storage 讀取作業費用,也不會產生 Google Cloud 專案的資料擷取費用。

Cloud Storage 主要會根據標準每月靜態資料儲存空間 (GB/月) 向您收費,以及任何外部用戶端資料傳輸或網路輸出費用 (視值區位置和用戶端網路設定而定)。

儲存空間級別建議

  • 標準儲存空間 (建議):標準儲存空間最適合用於執行中的 Earth Engine 工作流程。由於沒有最短儲存時間規則,您可以自由覆寫、更新或刪除暫時性 COG,不會產生提前刪除罰款。此外,如果您或協作者使用桌面 GIS 軟體、GDAL 指令碼或 Earth Engine 以外的機器學習筆記本存取 bucket,Standard Storage 不會產生零售檢索附加費用。
  • 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 bucket。
  • 權限:確認您和所有專案協作者都具備 Cloud Storage 檔案讀取權限 (請參閱 COG 權限)。
  • 註冊:使用 Python 用戶端程式庫、earthengine 指令列工具或 REST API,將 COG 註冊為 Earth Engine 資產 (請參閱 COG 註冊)。

匯出結果:

  • 匯出:從 Earth Engine 批次匯出至 Cloud Storage,並將 cloudOptimized 設為 true (請參閱匯出圖片)。
  • 註冊 (選用):將匯出的 COG 註冊回 Earth Engine,做為新資產以供進一步分析 (請參閱 COG 註冊)。

準備好了嗎?請按照詳細的 COG 註冊指南,註冊第一個資產。