图片数据提取

从 Earth Engine 获取图片数据

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

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

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

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

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

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

手动并行处理请求

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

多线程处理

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

Apache Beam

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