Puoi esportare le immagini da Earth Engine in GeoTIFF o TFRecord. Per ulteriori opzioni di output, consulta Parametri di configurazione per altre opzioni di output.
Configurazione di esempio
Inizia definendo i dati immagine che verranno esportati:
Editor di codice (JavaScript)
// Load a landsat image and select three bands. var landsat = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_123032_20140515') .select(['B4', 'B3', 'B2']); // Create a geometry representing an export region. var geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236]);
import ee import geemap.core as geemap
Colab (Python)
# Load a landsat image and select three bands. landsat = ee.Image('LANDSAT/LC08/C02/T1_TOA/LC08_123032_20140515').select( ['B4', 'B3', 'B2'] ) # Create a geometry representing an export region. geometry = ee.Geometry.Rectangle([116.2621, 39.8412, 116.4849, 40.01236])
Definisci quindi i parametri di proiezione che verranno utilizzati nelle
seguenti esportazioni. Utilizziamo il parametro crs per specificare il sistema di coordinate,
e il parametro crsTransform per specificare con precisione la griglia di pixel. Il
crsTransform parametro è un elenco di parametri di una trasformazione affine
matrice in ordine di riga
[xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]. L'origine di un'immagine è definita dai valori xTranslation e yTranslation, mentre le dimensioni dei pixel dell'immagine sono definite dai valori xScale e yScale. Vedi
esempi di matrici
affini.
Editor di codice (JavaScript)
// Retrieve the projection information from a band of the original image. // Call getInfo() on the projection to request a client-side object containing // the crs and transform information needed for the client-side Export function. var projection = landsat.select('B2').projection().getInfo();
import ee import geemap.core as geemap
Colab (Python)
# Retrieve the projection information from a band of the original image. # Call getInfo() on the projection to request a client-side object containing # the crs and transform information needed for the client-side Export function. projection = landsat.select('B2').projection().getInfo()
Impostazione di scale
Come scorciatoia, puoi specificare un parametro scale e Earth Engine calcolerà un parametro crsTransform per te. Tuttavia, la semplice impostazione della scala di un'immagine non specifica l'origine della proiezione e potrebbe comportare uno spostamento dell'immagine rispetto a un'altra immagine con le stesse dimensioni dei pixel.
Il motivo del potenziale spostamento è che il parametro scale viene utilizzato per popolare i valori xScale e yScale di crsTransform, ma i valori xTranslation e yTranslation vengono calcolati in modo che, se divisi per i valori xScale e yScale corrispondenti, il resto sia zero. Questi parametri specificano una griglia di pixel in cui l'origine della proiezione si trova all'angolo di un pixel. Questa convenzione è diversa dai parametri di traduzione utilizzati da alcuni fornitori di dati, che utilizzano griglie offset rispetto all'origine della proiezione. Ad esempio, le immagini Landsat fornite da USGS utilizzano parametri di traduzione offset di 1/2 pixel rispetto all'origine della proiezione (offset di 15 m per le bande di 30 m), mentre le immagini Sentinel-2 fornite da ESA utilizzano parametri di traduzione allineati all'origine della proiezione. Se il parametro crsTransform specificato in un'esportazione non corrisponde al parametro crsTransform dell'immagine originale, i pixel di output verranno ricampionati (utilizzando per impostazione predefinita il vicino più prossimo), il che comporterà uno spostamento dell'immagine risultante rispetto all'immagine originale.
In sintesi, se devi abbinare i pixel dell'immagine esportata a un'immagine specifica
immagine, assicurati di utilizzare i parametri crs e crsTransform per il controllo completo
della griglia.
su Drive
Per esportare un'immagine nel tuo account Drive, utilizza Export.image.toDrive(). Ad esempio, per esportare porzioni di un'immagine Landsat, definisci una regione da esportare, quindi chiama Export.image.toDrive():
Editor di codice (JavaScript)
// Export the image, specifying the CRS, transform, and region. Export.image.toDrive({ image: landsat, description: 'imageToDriveExample_transform', crs: projection.crs, crsTransform: projection.transform, region: geometry });
import ee import geemap.core as geemap
Colab (Python)
# Export the image, specifying the CRS, transform, and region. task = ee.batch.Export.image.toDrive( image=landsat, description='imageToDriveExample_transform', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, ) task.start()
Quando questo codice viene eseguito, nella scheda Attività dell'Editor di codice viene creata un'attività di esportazione. Fai clic sul pulsante Esegui accanto all'attività per avviarla. (Scopri
di più su Gestione attività nella sezione Editor di codice
section). L'immagine verrà creata nel tuo account Drive con il fileFormat specificato.
su Cloud Storage
Per esportare un'immagine in un bucket Google Cloud Storage, utilizza Export.image.toCloudStorage(). Per esportare l'immagine Landsat nell'esempio precedente in Cloud Storage anziché in Drive, utilizza:
Editor di codice (JavaScript)
// Export the image to Cloud Storage. Export.image.toCloudStorage({ image: landsat, description: 'imageToCloudExample', bucket: 'your-bucket-name', fileNamePrefix: 'exampleExport', crs: projection.crs, crsTransform: projection.transform, region: geometry });
import ee import geemap.core as geemap
Colab (Python)
# Export the image to Cloud Storage. task = ee.batch.Export.image.toCloudStorage( image=landsat, description='imageToCloudExample', bucket='your-bucket-name', fileNamePrefix='exampleExport', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, ) task.start()
Come per le esportazioni su Drive, avvia l'esportazione dalla scheda Attività. La località del bucket Cloud Storage può influire sulle prestazioni e sui costi di archiviazione. Per maggiori informazioni, consulta la voce delle Domande frequenti sulle considerazioni relative alla località .
su Asset
Per esportare un'immagine in un asset nella cartella degli asset di Earth Engine, utilizza Export.image.toAsset(). Per gestire gli asset di Earth Engine o controllare la quota di spazio di archiviazione in uso
, utilizza Asset Manager. L'esempio seguente illustra l'esportazione di porzioni di un'immagine Landsat utilizzando diverse policy di piramidalizzazione per la stessa banda. La policy di piramidalizzazione indica in che modo Earth Engine calcola le versioni a risoluzione inferiore dell'asset. Scopri di più
su come Earth Engine gestisce più risoluzioni nel documento sulla scala.
Editor di codice (JavaScript)
// Get band 4 from the Landsat image, copy it. var band4 = landsat.select('B4').rename('b4_mean') .addBands(landsat.select('B4').rename('b4_sample')) .addBands(landsat.select('B4').rename('b4_max')); // Export the image to an Earth Engine asset. Export.image.toAsset({ image: band4, description: 'imageToAssetExample', assetId: 'exampleExport', crs: projection.crs, crsTransform: projection.transform, region: geometry, pyramidingPolicy: { 'b4_mean': 'mean', 'b4_sample': 'sample', 'b4_max': 'max' } });
import ee import geemap.core as geemap
Colab (Python)
# Get band 4 from the Landsat image, copy it. band_4 = ( landsat.select('B4') .rename('b4_mean') .addBands(landsat.select('B4').rename('b4_sample')) .addBands(landsat.select('B4').rename('b4_max')) ) # Export the image to an Earth Engine asset. task = ee.batch.Export.image.toAsset( image=band_4, description='imageToAssetExample', assetId='projects/your-project/assets/exampleExport', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, pyramidingPolicy={ 'b4_mean': 'mean', 'b4_sample': 'sample', 'b4_max': 'max', }, ) task.start()
Puoi fornire una policy di piramidalizzazione predefinita per ogni banda non
specificata in modo esplicito utilizzando la chiave '.default'. Puoi anche passare solo
la '.default' chiave. Ad esempio, per impostare tutte le bande sulla policy di piramidalizzazione "sample" per impostazione predefinita, utilizza {'.default': 'sample'}.
Parametri di configurazione
Tieni presente che il dizionario dei parametri di configurazione passati a Export.image include scale (in metri) e la regione di esportazione come ee.Geometry. L'immagine esportata coprirà la regione specificata con i pixel alla scala specificata. Se non specificato in modo esplicito, il CRS dell'output verrà ricavato dalla prima banda dell'immagine da esportare.
Puoi anche specificare dimensions, crs e/o crsTransform dell'
immagine esportata. Per maggiori informazioni
su crs e crsTransform, consulta il glossario. Ad esempio, per ottenere un blocco di pixel allineato con precisione
a un'altra origine dati, specifica dimensions, crs e crsTransform.
Per ottenere un blocco di pixel di dimensioni predefinite (ad esempio un'immagine miniatura di 256 x 256) che copre una regione, specifica dimensions e region.
Puoi specificare il formato di output dell'immagine (se la destinazione non è toAsset()) con
il fileFormat parametro ('GeoTIFF' per impostazione predefinita).
Parametro formatOptions
Le altre opzioni di configurazione vengono impostate con il parametro formatOptions, che deve essere un dizionario con chiavi per altre opzioni di formato, specifiche per ogni fileFormat come descritto di seguito.
GeoTIFF
GeoTIFF ottimizzato per il cloud
Per esportare un GeoTIFF ottimizzato per il cloud, passa un letterale JavaScript
per formatOptions in cui la chiave cloudOptimized è impostata su
true. Continuando l'esempio precedente:
Editor di codice (JavaScript)
// Export a cloud-optimized GeoTIFF. Export.image.toDrive({ image: landsat, description: 'imageToCOGeoTiffExample', crs: projection.crs, crsTransform: projection.transform, region: geometry, fileFormat: 'GeoTIFF', formatOptions: { cloudOptimized: true } });
import ee import geemap.core as geemap
Colab (Python)
# Export a cloud-optimized GeoTIFF. task = ee.batch.Export.image.toDrive( image=landsat, description='imageToCOGeoTiffExample', crs=projection['crs'], crsTransform=projection['transform'], region=geometry, fileFormat='GeoTIFF', formatOptions={'cloudOptimized': True}, ) task.start()
I GeoTIFF ottimizzati per il cloud possono essere ricaricati da Cloud Storage in un Image o registrati come asset. Per le specifiche e le opzioni di esportazione complete, consulta la
panoramica di GeoTIFF ottimizzato per il cloud (COG).
Nodata
Specifica il valore nodata GeoTIFF utilizzando la chiave noData all'interno del parametro formatOptions. Ad esempio:
Editor di codice (JavaScript)
// Set a nodata value and replace masked pixels around the image edge with it. var noDataVal = -9999; landsat = landsat.unmask(noDataVal); Export.image.toDrive({ image: landsat, description: 'imageNoDataExample', crs: projection.crs, scale: 2000, // large scale for minimal demo region: landsat.geometry(), // full image bounds fileFormat: 'GeoTIFF', formatOptions: { noData: noDataVal, } });
import ee import geemap.core as geemap
Colab (Python)
# Set a nodata value and replace masked pixels around the image edge with it. no_data_val = -9999 landsat = landsat.unmask(no_data_val) task = ee.batch.Export.image.toDrive( image=landsat, description='imageNoDataExample', crs=projection['crs'], scale=2000, # large scale for minimal demo region=landsat.geometry(), # full image bounds fileFormat='GeoTIFF', formatOptions={'noData': no_data_val}, ) task.start()
Tieni presente che il valore nodata deve rientrare nell'intervallo valido per PixelType dell'immagine. Puoi controllare PixelType stampando i metadati dell'immagine e esaminando la proprietà data_type della prima banda. Puoi anche impostare PixelType dell'immagine eseguendo il cast dei dati a un tipo specifico utilizzando i metodi dell'immagine toShort() o toInt(), ad esempio.
TFRecord
Consulta la pagina Formato dei dati TFRecord.
maxPixels
Il parametro maxPixels ha lo scopo di impedire la creazione involontaria di esportazioni di grandi dimensioni. Se il valore predefinito è troppo basso per l'immagine di output prevista, puoi aumentare maxPixels. Ad esempio:
Export.image.toDrive({ image: landsat, description: 'maxPixelsExample', crs: projection.crs, crsTransform: projection.transform, region: geometry, maxPixels: 1e9 });
Esportazioni di file di grandi dimensioni
Se l'immagine di output è di grandi dimensioni, verrà esportata come più file. Se esegui l'esportazione in GeoTIFF, l'immagine viene suddivisa in riquadri. Il nome file di ogni
riquadro sarà nel formato baseFilename-yMin-xMin dove xMin e yMin sono
le coordinate di ogni riquadro all'interno del riquadro di delimitazione complessivo dell'immagine esportata.
Se esegui l'esportazione in TFRecord, ai file verranno aggiunti i suffissi -00000, -00001,... -0000N per N+1 file. Mantenere questo ordine è importante se intendi eseguire l'inferenza sui file e caricare le previsioni di nuovo in Earth Engine come immagine. Per maggiori dettagli, consulta Caricare immagini come file TFRecord
files.
Esportare le immagini così come appaiono nell'Editor di codice
Per esportare le immagini così come vengono visualizzate sullo schermo in Earth Engine, crea immagini di visualizzazione
come illustrato nelle sezioni Immagini di visualizzazione e Composizione e
mosaico. Poiché l'Editor di codice utilizza il
'EPSG:3857' CRS, specifica un CRS di 'EPSG:3857' nell'esportazione per ottenere un'immagine
nella stessa proiezione di quella visualizzata nella mappa dell'Editor di codice. Per maggiori dettagli sulla specifica della risoluzione e del sistema di coordinate dell'output, consulta la sezione sulla configurazione delle esportazioni di immagini.