是否可以使用适用于python的Earth Engine API获取图像集中每个图像的下载URL?

时间:2019-07-16 13:45:20

标签: python api download google-earth-engine satellite-image

我以前曾问过这个问题,但似乎专注于导出到GDrive,我想将图像导出/下载到我的计算机而不是Google驱动器上。

我正在尝试使用地球引擎的python API从图像集中下载每个图像。

按照他们的示例,很容易捕获单个图像并获得下载URL:

image1 = ee.Image('CGIAR/SRTM90_V4')
path = image1.getDownloadUrl({
    'scale': 30,
    'crs': 'EPSG:4326',
    'region': '[[-120, 35], [-119, 35], [-119, 34], [-120, 34]]'})
print(path)

这为我提供了一个URL,我可以从该URL下载图像。

类似地,对于图像集合,我可以使用:

collection = (ee.ImageCollection('LANDSAT/LE07/C01/T1')
              .filterDate(datetime.datetime(2002, 11, 8),
                          datetime.datetime(2002, 11, 15)))

是否可以遍历每个图像并获取每个下载URL?即希望每月一次或不使用Google云端硬盘获取相同区域的图像。现在,我将问题简单了一点,但是将图像剪切到我的区域并在下载之前根据需要执行其他操作。

我在这里找到了这个问题:How to iterate over and download each image in an image collection from the Google Earth Engine python api

但无法提出最终解决方案...

我们将不胜感激!

1 个答案:

答案 0 :(得分:0)

您可以这样做:


    data = images.toList(images.size());
    for i in range(43): #This is the number of images in the images collection
      image = ee.Image(data.get(i));
      #image = image.select(["B2","B3","B4","B8","B12"])
      path = image.getDownloadUrl({
      'scale' : scale,
      'crs' : 'EPSG:4326',
      'region' : polys})
    
      print(path)

您可以检查此代码,我基于上面的代码。 它在javascript中,但概念相同 https://github.com/Yichabod/natural_disaster_pred/blob/master/image_download_script.js 。注释掉的代码就是您感兴趣的代码