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 提供几乎无限的自助式存储空间扩缩,可扩缩到 PB 级。
  • 无需等待提取: 注册 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,您有两种选择:

  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)
性能 标准 (读取时读取标头) 已优化 (创建时已编入索引)
管理 未创建任何资源 计入资源数量配额,而不是存储空间配额。
用例 原型设计、临时分析 需要快速读取的生产工作流。

将 COG 写入 Cloud Storage

如需将 Earth Engine 计算结果另存为 Cloud Storage 存储桶中的 COG, 请使用 Export.image.toCloudStorage 批量导出函数(请参阅导出 图片),并在formatOptions中将cloudOptimized参数设置为true。这会告知 Earth Engine 编译图片并将其作为完全兼容的 COG 直接写入您的 GCS 存储桶。

受支持的 Cloud Storage 存储桶位置

如需让 Earth Engine 访问您的 Cloud Storage 存储桶,该存储桶必须 位于以下数据中心区域或多区域之一:

  • us 多区域
  • 包含 us-central1 的任何美国双区域
  • us-central1 区域

如果您的存储桶位于任何其他区域数据中心,Earth Engine 将拒绝注册和读取请求。Earth Engine 仅访问存储在 Google Cloud Storage 存储桶中的 COG。不支持外部云端存储空间提供商和通用 HTTP 网址。

费用注意事项和存储类别

分析已注册的 COG 资源时,Earth Engine 的读取操作不会在您的 Google Cloud 项目中产生 Cloud Storage 读取操作或数据检索费用。

Cloud Storage 主要根据标准每月静态数据存储空间(GB/月) 以及任何外部客户端数据传输或网络出站流量费用(具体取决于您的存储桶位置和客户端网络配置)向您收费。

存储类别建议

  • 标准存储空间(推荐): 标准存储空间最适合活跃的 Earth Engine 工作流。由于没有最短存储期限规则,您可以随意覆盖、更新或删除临时 COG,而不会产生提前删除罚款。此外,如果您或您的协作者在 Earth Engine 之外使用桌面 GIS 软件、GDAL 脚本或机器学习笔记本访问存储桶,则标准存储空间不会产生任何零售检索附加费。
  • 近线、冷线和归档存储空间: 所有 Cloud Storage 类别都提供与标准存储空间相同的低延迟访问和吞吐量,因此在 Earth Engine 中使用较冷的存储层级时,不会产生读取性能损失。虽然 Earth Engine 计算也可以读取这些层级,而无需支付零售数据检索费用,但 Cloud Storage 零售规则强制执行严格的最短存储期限(近线为 30 天,冷线为 90 天,归档为 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 注册指南注册您的 第一个资源。