AI-generated Key Takeaways
-
Use
getDownloadURL
to retrieve small chunks of image data in GeoTIFF or NumPy format, with maximum request size of 32 MB and grid dimensions up to 10000. -
getThumbURL
is used for obtaining RGB visualization formats like PNG and JPG. -
The
getDownloadURL
function returns a download URL string or an Object, and an optional callback function can be provided for asynchronous calls. -
Download options in the
params
object include specifying band names, CRS, scale, region, output format (ZIPPED_GEO_TIFF, GEO_TIFF, NPY), and whether to output a file per band. -
The examples demonstrate how to download image data as single-band or multi-band GeoTIFF files (zipped or unzipped) and as a NumPy array using both JavaScript (Code Editor) and Python (Colab).
Use getThumbURL for RGB visualization formats PNG and JPG.
Returns returns a download URL, or undefined if a callback was specified.
Usage | Returns |
---|---|
Image.getDownloadURL(params, callback) | Object|String |
Argument | Type | Details | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
this: image | Image | The Image instance. | |||||||||
params | Object | An object containing download options with the following possible values:
| |||||||||
callback | Function, optional | An optional callback. If not supplied, the call is made synchronously. |
Examples
Code Editor (JavaScript)
// A Sentinel-2 surface reflectance image. var img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG'); // A small region within the image. var region = ee.Geometry.BBox(-122.0859, 37.0436, -122.0626, 37.0586); print('Single-band GeoTIFF files wrapped in a zip file', img.getDownloadURL({ name: 'single_band', bands: ['B3', 'B8', 'B11'], region: region })); print('Multi-band GeoTIFF file wrapped in a zip file', img.getDownloadURL({ name: 'multi_band', bands: ['B3', 'B8', 'B11'], region: region, scale: 20, filePerBand: false })); print('Band-specific transformations', img.getDownloadURL({ name: 'custom_single_band', bands: [ {id: 'B3', scale: 10}, {id: 'B8', scale: 10}, {id: 'B11', scale: 20} ], region: region })); print('Multi-band GeoTIFF file', img.getDownloadURL({ bands: ['B3', 'B8', 'B11'], region: region, scale: 20, format: 'GEO_TIFF' }));
import ee import geemap.core as geemap
Colab (Python)
"""Demonstrates the ee.Image.getDownloadURL method.""" import io import requests import ee ee.Authenticate() ee.Initialize() # A Sentinel-2 surface reflectance image. img = ee.Image('COPERNICUS/S2_SR/20210109T185751_20210109T185931_T10SEG') # A small region within the image. region = ee.Geometry.BBox(-122.0859, 37.0436, -122.0626, 37.0586) # Image chunk as a NumPy structured array. import numpy url = img.getDownloadUrl({ 'bands': ['B3', 'B8', 'B11'], 'region': region, 'scale': 20, 'format': 'NPY' }) response = requests.get(url) data = numpy.load(io.BytesIO(response.content)) print(data) print(data.dtype) # Single-band GeoTIFF files wrapped in a zip file. url = img.getDownloadUrl({ 'name': 'single_band', 'bands': ['B3', 'B8', 'B11'], 'region': region }) response = requests.get(url) with open('single_band.zip', 'wb') as fd: fd.write(response.content) # Multi-band GeoTIFF file wrapped in a zip file. url = img.getDownloadUrl({ 'name': 'multi_band', 'bands': ['B3', 'B8', 'B11'], 'region': region, 'scale': 20, 'filePerBand': False }) response = requests.get(url) with open('multi_band.zip', 'wb') as fd: fd.write(response.content) # Band-specific transformations. url = img.getDownloadUrl({ 'name': 'custom_single_band', 'bands': [ {'id': 'B3', 'scale': 10}, {'id': 'B8', 'scale': 10}, {'id': 'B11', 'scale': 20} ], 'region': region }) response = requests.get(url) with open('custom_single_band.zip', 'wb') as fd: fd.write(response.content) # Multi-band GeoTIFF file. url = img.getDownloadUrl({ 'bands': ['B3', 'B8', 'B11'], 'region': region, 'scale': 20, 'format': 'GEO_TIFF' }) response = requests.get(url) with open('multi_band.tif', 'wb') as fd: fd.write(response.content)