1

我需要从 Google Earth Engine 下载一堆 Landsat 图像,我在它的 Python API 中使用

task = ee.batch.Export.image(IMAGE, NAME, config=CONFIG)
task.start()

虽然它正在工作,但速度非常慢。我的图像大小约为 70kb,但每张需要 4 分钟或更长时间。目前这发生在 for 循环中,所以如果可能的话,我如何将多个图像打包为一项任务?或者其他加快这个过程的方法?

4

2 回答 2

4

出口的启动成本相当高。如果您只是导出小块,则可以使用image.getThumbnailRGB 可视化图像或image.getDownloadURL()原始数字来执行此操作。

getThumbnail()函数将为您提供 PNG 或 JPEG文件,getDownloadURL()并为您提供一个带有作为单独 geotiff 的带的 zip 文件。请注意,对于需要大量计算的大型下载或图像,两者都不可靠。由于一旦您访问生成的 URL 就开始计算图像,因此无法传达失败;如果出现问题,您只会得到一个空/损坏的文件。

于 2017-12-05T14:55:48.153 回答
0

你根本做不到。这是一个发生在 Google 服务器中的过程,因此您无能为力。我唯一能想到的是:如果您进行不必要的操作,我猜可能需要更长的时间。例如(一个非常简单的):

img_1 = ee.Image(A).add(ee.Image(B)).add(ee.Image(C)).subtract(ee.Image(B))

img_2 = ee.Image(A).add(ee.Image(C))

导出 img_1 可能需要比导出 img_2 更长的时间。但我只是猜测,因为我真的不知道“服务器端”会发生什么......你可以在地球引擎论坛(https://groups.google.com/forum/ )中询问知道这一点的人#!forum/google-earth-engine-developers)。

顺便说一句,如果您使用 Python API,这可能很有用:https ://github.com/gee-community/gee_tools

于 2017-08-10T12:14:09.530 回答