Export.image.toDrive
Creates a batch task to export an Image as a raster to Drive. Tasks can be started from the Tasks tab. "crsTransform", "scale", and "dimensions" are mutually exclusive.
Usage | Returns | Export.image.toDrive(image, description, folder, fileNamePrefix, dimensions, region, scale, crs, crsTransform, maxPixels, shardSize, fileDimensions, skipEmptyTiles, fileFormat, formatOptions, priority) | |
Argument | Type | Details | image | Image | The image to export. |
description | String, optional | A human-readable name of the task. May contain letters, numbers, -, _ (no spaces). Defaults to "myExportImageTask". |
folder | String, optional | The Google Drive Folder that the export will reside in. Note: (a) if the folder name exists at any level, the output is written to it, (b) if duplicate folder names exist, output is written to the most recently modified folder, (c) if the folder name does not exist, a new folder will be created at the root, and (d) folder names with separators (e.g. 'path/to/file') are interpreted as literal strings, not system paths. Defaults to Drive root. |
fileNamePrefix | String, optional | The filename prefix. May contain letters, numbers, -, _ (no spaces). Defaults to the description. |
dimensions | Number|String, optional | The dimensions to use for the exported image. Takes either a single positive integer as the maximum dimension or "WIDTHxHEIGHT" where WIDTH and HEIGHT are each positive integers. |
region | Geometry.LinearRing|Geometry.Polygon|String, optional | A LinearRing, Polygon, or coordinates representing region to export. These may be specified as the Geometry objects or coordinates serialized as a string. |
scale | Number, optional | Resolution in meters per pixel. Defaults to 1000. |
crs | String, optional | CRS to use for the exported image. |
crsTransform | List, optional | Affine transform to use for the exported image. Requires "crs" to be defined. |
maxPixels | Number, optional | Restrict the number of pixels in the export. By default, you will see an error if the export exceeds 1e8 pixels. Setting this value explicitly allows one to raise or lower this limit. |
shardSize | Number, optional | Size in pixels of the tiles in which this image will be computed. Defaults to 256. |
fileDimensions | List, optional | The dimensions in pixels of each image file, if the image is too large to fit in a single file. May specify a single number to indicate a square shape, or an array of two dimensions to indicate (width,height). Note that the image will still be clipped to the overall image dimensions. Must be a multiple of shardSize. |
skipEmptyTiles | Boolean, optional | If true, skip writing empty (i.e. fully-masked) image tiles. Defaults to false. Only supported on GeoTIFF exports. |
fileFormat | String, optional | The string file format to which the image is exported. Currently only 'GeoTIFF' and 'TFRecord' are supported, defaults to 'GeoTIFF'. |
formatOptions | ImageExportFormatConfig, optional | A dictionary of string keys to format-specific options. For 'GeoTIFF': 'cloudOptimized'
(Boolean), 'noData' (float). For 'TFRecord': see https://developers.google.com/earth-engine/guides/tfrecord#formatoptions |
priority | Number, optional | The priority of the task within the project. Higher priority tasks are scheduled sooner. Must be an integer between 0 and 9999. Defaults to 100. |
Examples
Code Editor (JavaScript)
// A Landsat 8 surface reflectance image.
var image = ee.Image('LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508')
.select(['SR_B.']); // reflectance bands
// A region of interest.
var region = ee.Geometry.BBox(-122.24, 37.13, -122.11, 37.20);
// Set the export "scale" and "crs" parameters.
Export.image.toDrive({
image: image,
description: 'image_export',
folder: 'ee_demos',
region: region,
scale: 30,
crs: 'EPSG:5070'
});
// Use the "crsTransform" export parameter instead of "scale" for more control
// over the output grid. Here, "crsTransform" is set to align the output grid
// with the grid of another dataset. To view an image's CRS transform:
// print(image.projection())
Export.image.toDrive({
image: image,
description: 'image_export_crstransform',
folder: 'ee_demos',
region: region,
crsTransform: [30, 0, -2493045, 0, -30, 3310005],
crs: 'EPSG:5070'
});
// If the export has more than 1e8 pixels, set "maxPixels" higher.
Export.image.toDrive({
image: image,
description: 'image_export_maxpixels',
folder: 'ee_demos',
region: region,
scale: 30,
crs: 'EPSG:5070',
maxPixels: 1e13
});
// Export a Cloud Optimized GeoTIFF (COG) by setting the "cloudOptimized"
// parameter to true.
Export.image.toDrive({
image: image,
description: 'image_export_cog',
folder: 'ee_demos',
region: region,
scale: 30,
crs: 'EPSG:5070',
formatOptions: {
cloudOptimized: true
}
});
// Define a nodata value and replace masked pixels with it using "unmask".
// Set the "sameFootprint" parameter as "false" to include pixels outside of the
// image geometry in the unmasking operation.
var noDataVal = -9999;
var unmaskedImage = image.unmask({value: noDataVal, sameFootprint: false});
// Use the "noData" key in the "formatOptions" parameter to set the nodata value
// (GeoTIFF format only).
Export.image.toDrive({
image: unmaskedImage,
description: 'image_export_nodata',
folder: 'ee_demos',
region: image.geometry(), // full image bounds
scale: 2000, // large scale for minimal demo
crs: 'EPSG:5070',
fileFormat: 'GeoTIFF',
formatOptions: {
noData: noDataVal
}
});
Python setup
See the
Python Environment page for information on the Python API and using
geemap
for interactive development.
import ee
import geemap.core as geemap
Colab (Python)
# A Landsat 8 surface reflectance image.
image = ee.Image(
'LANDSAT/LC08/C02/T1_L2/LC08_044034_20210508'
).select(['SR_B.']) # reflectance bands
# A region of interest.
region = ee.Geometry.BBox(-122.24, 37.13, -122.11, 37.20)
# Set the export "scale" and "crs" parameters.
task = ee.batch.Export.image.toDrive(
image=image,
description='image_export',
folder='ee_demos',
region=region,
scale=30,
crs='EPSG:5070'
)
task.start()
# Use the "crsTransform" export parameter instead of "scale" for more control
# over the output grid. Here, "crsTransform" is set to align the output grid
# with the grid of another dataset. To view an image's CRS transform:
# print(image.projection().getInfo())
task = ee.batch.Export.image.toDrive(
image=image,
description='image_export_crstransform',
folder='ee_demos',
region=region,
crsTransform=[30, 0, -2493045, 0, -30, 3310005],
crs='EPSG:5070'
)
task.start()
# If the export has more than 1e8 pixels, set "maxPixels" higher.
task = ee.batch.Export.image.toDrive(
image=image,
description='image_export_maxpixels',
folder='ee_demos',
region=region,
scale=30,
crs='EPSG:5070',
maxPixels=1e13
)
task.start()
# Export a Cloud Optimized GeoTIFF (COG) by setting the "cloudOptimized"
# parameter to true.
task = ee.batch.Export.image.toDrive(
image=image,
description='image_export_cog',
folder='ee_demos',
region=region,
scale=30,
crs='EPSG:5070',
formatOptions={
'cloudOptimized': True
}
)
task.start()
# Define a nodata value and replace masked pixels with it using "unmask".
# Set the "sameFootprint" parameter as "false" to include pixels outside of the
# image geometry in the unmasking operation.
nodata_val = -9999
unmasked_image = image.unmask(value=nodata_val, sameFootprint=False)
# Use the "noData" key in the "formatOptions" parameter to set the nodata value
# (GeoTIFF format only).
task = ee.batch.Export.image.toDrive(
image=unmasked_image,
description='image_export_nodata',
folder='ee_demos',
region=image.geometry(), # full image bounds
scale=2000, # large scale for minimal demo
crs='EPSG:5070',
fileFormat='GeoTIFF',
formatOptions={
'noData': nodata_val
}
)
task.start()
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-03-06 UTC.
[null,null,["Last updated 2024-03-06 UTC."],[[["This function exports an Earth Engine image as a raster to your Google Drive."],["You can customize the export by specifying parameters like file name, folder, region, scale, and projection."],["For large exports, you can control the tiling and pixel limits using parameters like `maxPixels`, `shardSize`, and `fileDimensions`."],["GeoTIFF and TFRecord are the supported export file formats with options for compression and NoData values."],["Tasks are initiated from the 'Tasks' tab in the Earth Engine Code Editor and can be monitored for progress and completion."]]],[]]