Exporting is the final step in many workflows. Choosing the right scale, projection, and format ensures your outputs are usable and your Let's talk about how to make our exports run smoothly. Exports succeed without errors.
Learning objectives
- Choose appropriate scale and CRS for Let's talk about how to make our exports run smoothly. Exports.
- Optimize Let's talk about how to make our exports run smoothly. Exports to avoid timeouts and memory errors.
- Select the right file format for your use case.
- Organize Let's talk about how to make our exports run smoothly. Exports with naming conventions.
Why it matters
A failed export means wasted time. Wrong scale means wrong data. This guide helps you get Let's talk about how to make our exports run smoothly. Exports right the first time.
The complete export template
Use this template for reliable Let's talk about how to make our exports run smoothly. Exports:
// Best practice export template
Export.image.toDrive({
image: myImage,
description: 'NDVI_Florida_Summer2023', // No spaces, descriptive
folder: 'EarthEngine', // Organize by project
fileNamePrefix: 'NDVI_Florida_Summer2023',
region: roi.bounds(), // Use .bounds() for efficiency
scale: 30, // Match source resolution
crs: 'EPSG:4326', // WGS84 for compatibility
maxPixels: 1e13, // Increase if needed
fileFormat: 'GeoTIFF', // or 'TFRecord'
formatOptions: {
cloudOptimized: true // For large files
}
});
Scale: Getting it right
| Data Source | Native Resolution | Recommended Export Scale |
|---|---|---|
| Landsat 8/9 | 30m | 30 |
| Sentinel-2 (visible) | 10m | 10 |
| Sentinel-2 (red edge) | 20m | 20 |
| MODIS | 250-1000m | 250, 500, or 1000 |
| SRTM DEM | 30m | 30 |
| Classification results | varies | Match input imagery |
Rule of thumb
Export at the native resolution of your source data. Exporting at finer resolution doesn't add information—it just makes bigger files.
CRS (Coordinate Reference System)
Common projections
| CRS | Use Case | Units |
|---|---|---|
EPSG:4326 |
Global, web maps, sharing | Degrees |
EPSG:32617 |
UTM Zone 17N (Florida) | Meters |
EPSG:5070 |
CONUS Albers Equal Area | Meters |
Tip: For area calculations, use an equal-area projection (Albers, UTM) not WGS84.
File formats
| Format | Best For | Notes |
|---|---|---|
| GeoTIFF | Raster images for GIS | Universal, use cloudOptimized: true |
| SHP (Shapefile) | Vector data for ArcGIS | Max 2GB, limited field names |
| GeoJSON | Web applications | Human-readable, larger files |
| CSV | Tabular data, statistics | No geometry by default |
| KML | Google Earth | Good for visualization |
Avoiding export failures
Problem: "User memory limit exceeded"
// Solution 1: Reduce area
var smallerRoi = roi.buffer(-5000); // Shrink by 5km
// Solution 2: Increase scale
Export.image.toDrive({
...
scale: 100, // Was 30
});
// Solution 3: Use bestEffort
var stats = image.reduceRegion({
reducer: ee.Reducer.mean(),
geometry: roi,
scale: 30,
bestEffort: true // Auto-adjusts scale
});
Problem: "Computation timed out"
// Solution: Export instead of print
// DON'T: print(bigComputation);
// DO: Export the result
Export.table.toDrive({
collection: bigFeatureCollection,
description: 'my_results'
});
Problem: Multiple TIF files created
Large Let's talk about how to make our exports run smoothly. Exports automatically split into tiles. This is normal!
// In your GIS software, use "Mosaic to New Raster" to combine them
// Or use fileDimensions to control tile size:
Export.image.toDrive({
...
fileDimensions: [4096, 4096] // Larger tiles, fewer files
});
Naming conventions
Use consistent, descriptive names:
// Pattern: Sensor_Variable_Location_Date_Notes
// Examples:
'L8_NDVI_Florida_2023Summer_Median'
'S2_Classification_Miami_2023_RF'
'MODIS_LST_California_2023_Max'
- No spaces (use underscores)
- Include sensor for multi-sensor projects
- Include date range
- Include processing notes (method, version)
Export to Asset vs Drive
| Export to Drive | Export to Asset | |
|---|---|---|
| Best for | Final products, sharing | Intermediate results, reuse in EE |
| Download? | Yes, easy | Not directly |
| Use in EE? | Must re-import | Instant access |
| Storage | Your Google Drive | EE cloud (quota limited) |
Try it: Export with all best practices
var roi = ee.Geometry.Rectangle([-82.5, 29.5, -82.0, 30.0]);
var composite = ee.ImageCollection('LANDSAT/LC08/C02/T1_L2')
.filterDate('2023-06-01', '2023-08-31')
.filterBounds(roi)
.median()
.multiply(0.0000275).add(-0.2);
var ndvi = composite.normalizedDifference(['SR_B5', 'SR_B4'])
.rename('NDVI');
Export.image.toDrive({
image: ndvi,
description: 'L8_NDVI_Gainesville_2023Summer',
folder: 'EarthEngine',
region: roi,
scale: 30,
crs: 'EPSG:32617', // UTM 17N for Florida
maxPixels: 1e9,
fileFormat: 'GeoTIFF'
});
Common mistakes
- Forgetting
scale(Let's talk about how to make our exports run smoothly. Exports at wrong resolution). - Not specifying
region(Let's talk about how to make our exports run smoothly. Exports entire globe attempt). - Using spaces in description or file names.
- Exporting visualized images when we need raw values.
- Not clicking "Run" in the Tasks panel.
Quick self-check
- What scale should you use for exporting Landsat imagery?
- When would you export to Asset instead of Drive?
- What does
cloudOptimized: truedo? - How do you prevent "memory limit exceeded" errors?
Next steps
- Exporting Data - basic Let's talk about how to make our exports run smoothly. Exports
- Reducers - aggregate before exporting
- Temporal Compositing