Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to download images using google earth engine's python API

I am using Google's Earth Engine API to access LandSat images. The program is as given below,

import ee
ee.Initialize()

Load a landsat image and select three bands.

landsat = ee.Image('LANDSAT/LC8_L1T_TOA
/LC81230322014135LGN00').select(['B4', 'B3', 'B2']);

Create a geometry representing an export region.

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

Export the image, specifying scale and region.

 export.image.toDrive({
    image: landsat,
    description: 'imageToDriveExample',
    scale: 30,  
    region: geometry
    });

it throws the following error.

Traceback (most recent call last):
File "e6.py", line 11, in <module>
export.image.toDrive({
NameError: name 'export' is not defined

Please Help. I am unable to find the right function to download images.

like image 606
A S Avatar asked Aug 30 '16 05:08

A S


People also ask

How do I export an image from Google Earth Engine?

To export an image to an asset in your Earth Engine assets folder, use Export. image.

Is Google Earth Engine API free?

Earth Engine is free for noncommercial use: learn more here. For commercial or operational applications, please click here to learn more about pricing options.


2 Answers

If you are using the python API, you have to use the 'batch' submodule. The default behaviour is to save to your google drive. You can specify your bounding box as a list of coordinates as well:

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

This should generate a file called 'exportExample.tif' in your GoogleDrive top folder.

Also note that the semicolons at the end of each line are not necessary in python.

like image 115
Ben DeVries Avatar answered Oct 15 '22 11:10

Ben DeVries


To build on Ben's answer, you can also use:

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

from your original post, but add the following line beneath it so the coordinates are in the correct format for the task_config-->Region field:

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

It prevents a "task_config" formatting mismatch when you get to here:

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

This will allow you to use the given function from the API, but it will extract the coordinates in such a way that you can use them in the approach suggested by Ben above.

like image 36
MikeS Avatar answered Oct 15 '22 11:10

MikeS