5

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

请帮忙。我找不到下载图像的正确功能。

4

5 回答 5

8

如果您使用的是 python API,则必须使用 'batch' 子模块。默认行为是保存到您的谷歌驱动器。您也可以将边界框指定为坐标列表:

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()

这应该会在您的 GoogleDrive 顶部文件夹中生成一个名为“exportExample.tif”的文件。

另请注意,每行末尾的分号在 python 中不是必需的。

于 2016-12-22T18:56:40.843 回答
2

要以Ben 的回答为基础,您还可以使用:

geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])

来自您的原始帖子,但在其下方添加以下行,以便task_config-->Region字段的坐标格式正确:

geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])
geometry = geometry['coordinates'][0]

当您到达此处时,它可以防止“task_config”格式不匹配:

task = ee.batch.Export.image(landsat, 'exportExample', task_config)

这将允许您使用 API 中的给定函数,但它将以您可以按照上面 Ben 建议的方法使用它们的方式提取坐标。

于 2017-05-21T17:44:22.143 回答
1

您的代码中有错字,Export应该从大写字母开始。请参阅文档

于 2016-08-30T06:14:08.297 回答
0

你在哪里指定日期?是否有任何好的、快速的 Python 文档或教程?似乎有很多关于 JavaScript 的!

于 2019-11-09T22:15:32.537 回答
0

python api有一个很好的快速示例。您可以查看此链接。有 1 篇使用 python api 下载卫星图像的帖子。

于 2019-12-12T08:53:23.600 回答