AI-generated Key Takeaways
-
The
ee.data.getDownloadIdmethod is used to obtain a download ID and token for downloading data. -
It takes a
paramsobject with various options for customizing the download, such as specifying bands, region, scale, and format. -
The method can return the download ID synchronously or accept an optional callback function for asynchronous operation.
-
The download can be configured to produce single or multi-band GeoTIFFs (zipped or unzipped) or NumPy binary format.
-
Band-specific transformations can be applied using the
bandsparameter with individual band dictionaries.
Returns a download id and token, or null if a callback is specified.
| Usage | Returns |
|---|---|
ee.data.getDownloadId(params, callback) | DownloadId |
| Argument | Type | Details | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
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); var downloadId = ee.data.getDownloadId({ image: img, name: 'single_band', bands: ['B3', 'B8', 'B11'], region: region }); print('Single-band GeoTIFF files wrapped in a zip file', ee.data.makeDownloadUrl(downloadId)); var downloadId = ee.data.getDownloadId({ image: img, name: 'multi_band', bands: ['B3', 'B8', 'B11'], region: region, scale: 20, filePerBand: false }); print('Multi-band GeoTIFF file wrapped in a zip file', ee.data.makeDownloadUrl(downloadId)); var downloadId = ee.data.getDownloadId({ image: img, name: 'custom_single_band', bands: [ {id: 'B3', scale: 10}, {id: 'B8', scale: 10}, {id: 'B11', scale: 20} ], region: region }); print('Band-specific transformations', ee.data.makeDownloadUrl(downloadId)); var downloadId = ee.data.getDownloadId({ image: img, bands: ['B3', 'B8', 'B11'], region: region, scale: 20, format: 'GEO_TIFF' }); print('Multi-band GeoTIFF file', ee.data.makeDownloadUrl(downloadId));
import ee import geemap.core as geemap
Colab (Python)
"""Demonstrates the ee.data.getDownloadId method.""" import io import numpy import requests # 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. download_id = ee.data.getDownloadId({ 'image': img, 'bands': ['B3', 'B8', 'B11'], 'region': region, 'scale': 20, 'format': 'NPY' }) response = requests.get(ee.data.makeDownloadUrl(download_id)) data = numpy.load(io.BytesIO(response.content)) print(data) print(data.dtype) # Single-band GeoTIFF files wrapped in a zip file. download_id = ee.data.getDownloadId({ 'image': img, 'name': 'single_band', 'bands': ['B3', 'B8', 'B11'], 'region': region }) response = requests.get(ee.data.makeDownloadUrl(download_id)) with open('single_band.zip', 'wb') as fd: fd.write(response.content) # Multi-band GeoTIFF file wrapped in a zip file. download_id = ee.data.getDownloadId({ 'image': img, 'name': 'multi_band', 'bands': ['B3', 'B8', 'B11'], 'region': region, 'scale': 20, 'filePerBand': False }) response = requests.get(ee.data.makeDownloadUrl(download_id)) with open('multi_band.zip', 'wb') as fd: fd.write(response.content) # Band-specific transformations. download_id = ee.data.getDownloadId({ 'image': img, 'name': 'custom_single_band', 'bands': [ {'id': 'B3', 'scale': 10}, {'id': 'B8', 'scale': 10}, {'id': 'B11', 'scale': 20} ], 'region': region }) response = requests.get(ee.data.makeDownloadUrl(download_id)) with open('custom_single_band.zip', 'wb') as fd: fd.write(response.content) # Multi-band GeoTIFF file. download_id = ee.data.getDownloadId({ 'image': img, 'bands': ['B3', 'B8', 'B11'], 'region': region, 'scale': 20, 'format': 'GEO_TIFF' }) response = requests.get(ee.data.makeDownloadUrl(download_id)) with open('multi_band.tif', 'wb') as fd: fd.write(response.content)