我对 Google 地球引擎还是比较陌生,但有一个关于获取图像集中每个图像的下载 URL 的问题。问题正是,我如何获得图像集合中每个图像的下载 url 集——假设我已将每个图像缩减到合理的大小。
请注意,我确实查看了 Stackoverflow 并发现了一个关于将单个图像下载到 google Drive 的现有问题,但这个问题没有提供有关图像集合的任何信息。
以下代码将生成一些 Landsat 8 图像的小图像块。每个补丁的大小只有几 kb。
import ee
ee.Initialize()
col = ee.ImageCollection('LANDSAT/LC08/C01/T1').select('B8')
col.filterDate('1/1/2015', '1/30/2015')
boundary_region = ee.Geometry.Point([-2.40986111110000012, 26.76033333330000019]).buffer(300)
col.filterBounds(boundary_region)
def clipper(image):
return image.clip(region)
col.map(clipper)
现在我想下载集合中的每个图像col
。
Earth Engine 提供了几种迭代图像集合的方法:map()
anditerate()
函数,但显然这两个函数都不适用于下载函数。
现在看来,一旦我可以使用该函数为单个图像生成 url:
boundary_geojson = ee.Geometry.Polygon(boundary_region.bounds().getInfo().coordinates[0]).toGeoJSONString()
def downloader(image):
url = ee.data.makeDownloadUrl(
ee.data.getDownloadId({
'image': image.serialize(),
'scale': 30,
'filePerBand': 'false',
'name': 'test',
'region': boundary_geojson,
}))
return url
请注意,由于某种原因,我似乎无法让boundary_geojson
变量正常工作。
现在这组 url 应该是一个简单的调用
col.map(downloader)
但这不起作用。
有谁知道如何生成与图像集中的图像对应的 url 列表?