我正在使用Google的Earth Engine API来访问LandSat图片。 该计划如下,
import ee
ee.Initialize()
加载一张贴图并选择三个波段。
landsat = ee.Image('LANDSAT/LC8_L1T_TOA
/LC81230322014135LGN00').select(['B4', 'B3', 'B2']);
创建表示导出区域的几何图形。
geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);
导出图像,指定比例和区域。
export.image.toDrive({
image: landsat,
description: 'imageToDriveExample',
scale: 30,
region: geometry
});
它会抛出以下错误。
Traceback (most recent call last):
File "e6.py", line 11, in <module>
export.image.toDrive({
NameError: name 'export' is not defined
请帮助。我无法找到下载图像的正确功能。
答案 0 :(得分:6)
如果您使用的是python API,则必须使用&#39;批处理&#39;子模块。默认行为是保存到您的谷歌硬盘。您也可以将边界框指定为坐标列表:
llx = 116.2621
lly = 39.8412
urx = 116.4849
ury = 40.01236
geometry = [[llx,lly], [llx,ury], [urx,ury], [urx,lly]]
task_config = {
'description': 'imageToDriveExample',
'scale': 30,
'region': geometry
}
task = ee.batch.Export.image(landsat, 'exportExample', task_config)
task.start()
这应生成一个名为&#39; exportExample.tif&#39;的文件。在您的GoogleDrive顶级文件夹中。
另请注意,python中不需要每行末尾的分号。
答案 1 :(得分:2)
要在Ben's answer上构建,您还可以使用:
geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])
从您的原始帖子,但在其下方添加以下行,以便 task_config - &gt; Region 字段的坐标格式正确:
geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])
geometry = geometry['coordinates'][0]
它会阻止&#34; task_config&#34;到达此处时格式不匹配:
task = ee.batch.Export.image(landsat, 'exportExample', task_config)
这将允许您使用API中的给定函数,但它将以这样的方式提取坐标,您可以按照上面Ben建议的方法使用它们。
答案 2 :(得分:1)
您的代码中存在拼写错误,Export
应该从大写字母开始。请参阅documentation。
答案 3 :(得分:0)
您在哪里指定日期?是否有任何适用于Python的优质,快速文档或教程?似乎有很多关于JavaScript的知识!
答案 4 :(得分:-1)
有一个很好的,快速的python api示例。您可以检查此link。有1个帖子使用python API下载卫星图像。