AI-generated Key Takeaways
-
ee.data.getDownloadId
generates a unique ID and token for downloading Earth Engine data, essential for initiating downloads. -
It accepts parameters like image, bands, region, and format to customize the download request to user specifications.
-
Users can specify download formats including zipped GeoTIFFs (single or multi-band), NumPy arrays, and uncompressed GeoTIFFs.
-
The function provides flexibility by allowing band-specific transformations such as scale and projection settings for individual bands.
-
Download links are created using the generated download ID with
ee.data.makeDownloadUrl
for accessing the requested data.
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 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 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)