如何使用谷歌地球引擎的python API下载图像

时间:2016-08-30 05:54:05

标签: python google-earth-engine

我正在使用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

请帮助。我无法找到下载图像的正确功能。

5 个答案:

答案 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下载卫星图像。