我是谷歌地球引擎的新手,并试图了解如何使用谷歌地球引擎 python api。我可以创建一个图像集合,但显然该getdownloadurl()方法仅适用于单个图像。所以我试图了解如何迭代和下载集合中的所有图像。
这是我的基本代码。对于我正在做的其他一些工作,我非常详细地分解了它。
import ee
ee.Initialize()
col = ee.ImageCollection('LANDSAT/LC08/C01/T1')
col.filterDate('1/1/2015', '4/30/2015')
pt = ee.Geometry.Point([-2.40986111110000012, 26.76033333330000019])
buff = pt.buffer(300)
region = ee.Feature.bounds(buff)
col.filterBounds(region)
Run Code Online (Sandbox Code Playgroud)
所以我拉了 Landsat 集合,按日期和缓冲区几何过滤。所以我应该在集合中有 7-8 张图片(所有乐队)。
但是,我似乎无法通过迭代来处理集合。
例如:
for i in col:
print(i)
Run Code Online (Sandbox Code Playgroud)
错误表明 TypeError: 'ImageCollection' object is not iterable
因此,如果集合不可迭代,我如何访问单个图像?
一旦我有了图像,我应该可以使用通常的
path = col[i].getDownloadUrl({
'scale': 30,
'crs': 'EPSG:4326',
'region': region
})
Run Code Online (Sandbox Code Playgroud) 我正在使用Google的Earth Engine API来访问LandSat图像。该程序如下所示,
import ee
ee.Initialize()
Run Code Online (Sandbox Code Playgroud)
加载landsat图像并选择三个波段。
landsat = ee.Image('LANDSAT/LC8_L1T_TOA
/LC81230322014135LGN00').select(['B4', 'B3', 'B2']);
Run Code Online (Sandbox Code Playgroud)
创建代表输出区域的几何。
geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);
Run Code Online (Sandbox Code Playgroud)
导出图像,指定比例和区域。
export.image.toDrive({
image: landsat,
description: 'imageToDriveExample',
scale: 30,
region: geometry
});
Run Code Online (Sandbox Code Playgroud)
它引发以下错误。
Traceback (most recent call last):
File "e6.py", line 11, in <module>
export.image.toDrive({
NameError: name 'export' is not defined
Run Code Online (Sandbox Code Playgroud)
请帮忙。我找不到正确的功能来下载图像。