1

我目前正在研究一个使用 MODIS 数据集的机器学习项目。由于我的 PC 不符合项目的计算要求,所以我使用了 AWS 服务器。现在的问题是地球引擎正在将图像导出到 Google Drive 或 Google Cloud Storage,但我希望它们导出到我的 S3 存储桶。

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

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

附言

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

1 回答 1

1

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

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

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

2) 如果您想在上传到 AWS 之前将拆分的图像拼接成单个图像,Google Earth Engine 不会导出元数据,并且如果它超过某些文件大小限制(请记住某些事项),它将拆分一个大的 GeoTiff。您还可以将属性作为元数据导出为 CSV 或 kml 文件。

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

  • 从 EE 推送到 Drive/GCS
  • 从 Drive/GCS 拉到本地,然后推送到 AWS(如果您想使用 Google 的网络速度而不是客户端资源来执行此操作,您可以启动一个小型微型实例,该实例处于Google 始终免费的模型下)
  • 不使用客户端资源的另一种方法是使用 Web 集成服务,例如,Zapier 可以帮助您将 Drive 链接到 AWS,因为新文件进入它们被复制到 AWS,您可以使用新文件作为触发器)。[我没有尝试过,但我知道可以使用 Zapier 或 IFTTT 来完成。

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

我相信其他人可能对此有其他一些很好的建议,但这只是我的做法。希望有帮助

山姆

于 2017-09-14T17:18:50.017 回答