图片数据提取

从 Earth Engine 获取图片数据

如需将图片数据从 Earth Engine 导出到 Google 云端硬盘、Cloud Storage 或 Earth Engine 资产,您可以使用 Export,作业将完全由 Earth Engine 处理。如果您的导出作业存在扩缩问题(例如,耗时超过一天、返回内存或超时错误),或者您已经熟悉 Apache Beam、Spark 或 Dask 等框架,则可能更倾向于使用此处所述的数据提取方法。在这些框架中实现的工作流可以使用 Google Cloud 工具(例如 Dataflow 或 Dataproc)进行扩缩。

具体而言,本指南介绍了使用 getPixels 或 computePixels 手动发出图片数据请求的方法。 这里的“图片数据”是指具有一致比例和投影的多维像素值数组。区域、比例、投影和/或尺寸在请求中指定。ImageFileFormat 页面列出了可能的输出格式。输出目标位置包括 Cloud Storage 或任何本地装载的目录。手动请求会增加复杂性,但可以扩缩到更大的工作负载。

从现有素材资源中获取图片数据

使用 getPixels 从现有 Earth Engine 资源中获取图片数据。您需要将资产 ID 直接传递给请求,因此无法在提取像素之前对其进行任何计算。系统会返回指定区域、比例、投影和格式的像素块。以下示例演示了如何使用 getPixels 从 MODIS 影像集合中获取 NDVI 的时序。

从计算出的图片中获取图片数据

使用 computePixels 从计算出的图片(例如复合图片)中获取图片数据。使用 computePixels 时,您需要通过 expression 参数传递计算出的 ee.Image 对象。系统会返回指定区域、比例、投影和格式的计算像素块。以下示例展示了如何从无云 Sentinel-2 合成图像中获取多光谱数据块。

手动同时载入请求

虽然您可以出于任何目的发出任意数量的请求,但您可能需要针对较大的工作流并行处理请求。如需并行发出许多此类请求,您应使用 Earth Engine 高容量端点。您可以发出的并行请求数由并发交互式请求配额设置。如需详细了解何时使用大容量端点,请参阅 Earth Engine 大容量页面。

多线程处理

您可以使用线程发出并发请求。getPixels 和 computePixels 示例笔记本演示了此方法。

Apache Beam

您可以使用 Apache Beam 流水线并行处理请求。这些流水线可以在本地运行,也可以作为 Google Dataflow 作业运行。如需查看示例,请参阅此 Geo for Good 培训或此“人、地球和 AI”演示。或者,其他并行化库包括 Dask 和 Apache Spark。