Google地球引擎:将MODIS图像从GEE导出到AWS S3存储桶

时间:2017-09-14 02:30:36

标签: python amazon-s3 geotiff satellite-image google-earth-engine

我目前正在开发一个使用MODIS数据集的机器学习项目。由于我的PC无法满足项目的计算要求,因此我选择了AWS服务器。现在的问题是地球引擎正在将图像导出到Google云端硬盘或Google云端存储,但我希望它们能够导出到我的S3存储桶。

我遇到了建议将数据下载到本地存储然后将其上传到S3存储桶的答案。鉴于庞大的数据集和我糟糕的数据速度,我需要花费很多年的时间。因此,我想直接使用Earth Engine将它们导出到我的S3存储桶。

我已经浏览了导出发生的文档(ee.batch.Export.image)。我正在考虑编写一个将Geotiff图像导出到AWS S3存储桶而不是Google Drive或Cloud Storage的功能。

P.S。

  • 我已经使用亚马逊MODIS公共数据集进行了验证,亚马逊不提供我想要的数据集(MOD09A1和其他一些数据集)。
  • 我的电脑上安装了Windows 10。

1 个答案:

答案 0 :(得分:1)

MODIS影像已在AWS S3(https://aws.amazon.com/public-datasets/modis/

然而,对于任何其他数据集来说这是一个有趣的问题,这里有一些需要考虑的事项

1)目前,Google地球引擎只能写入免费高达5 GB的谷歌云存储桶(GCS)或谷歌驱动器,其中包括您的Gmail,其限制为15 GB。因此,为了能够在推送到AWS S3之前将这些映像下载到本地驱动器,您需要确保GCS或驱动器上有足够的可用空间。

2)Google地球引擎不会导出元数据,如果超过某些文件大小限制(需要注意某些事项),则会拆分大型GeoTiff,因为您希望在上传到AWS之前将拆分图像拼接成单个图像。您还可以将属性导出为CSV或kml文件的元数据。

3)一旦您知道GCS或Google Drive中有足够的缓冲区空间,理想的方法就是

  • 从EE推送到Drive / GCS
  • 从Drive / GCS拉到本地,然后推送到AWS(如果您想使用Google的Network Speed而不是客户端资源执行此操作,则可以启动always free model from Google下的小型微实例
  • 不使用客户端资源的另一种方法是使用Web集成 例如,Zapier可以帮助您将Drive链接到AWS,因为新文件会被复制到AWS,您可以使用新文件作为触发器。 [我没试过,但我知道可以用Zapier或IFTTT来完成。

  • 定期检查您的云存储并删除文件复制到GCS时,您基本上可以检查文件或文件夹是否已同步,然后在GCS / Drive上删除文件以再次释放空间并重复此过程。 / p>

我相信其他人可能会有一些其他很好的建议,但这只是我的方式。希望有所帮助

萨姆