Puoi esportare le immagini da Earth Engine in formato GeoTIFF o TFRecord. Per altre opzioni di output, consulta Parametri di configurazione.
Configurazione di esempio
Inizia definendo i dati delle immagini 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])
Poi definisci 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 parametro crsTransform
è un elenco di parametri di una matrice di trasformazione affine in ordine di riga[xScale, xShearing, xTranslation, yShearing, yScale, yTranslation]
. L'origine di un'immagine è definita dai valori xTranslation
e yTranslation
, mentre le dimensioni in pixel dell'immagine sono definite dai valori xScale
e yScale
. Vedi
esempi di matrici
affine.
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()
Configurazione di scale
in corso…
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 può comportare un'immagine scorretta rispetto a un'altra immagine con le stesse dimensioni in pixel.
Il motivo del potenziale spostamento è che il parametro scale
viene utilizzato per compilare 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 nell'angolo di un pixel. Questa convenzione è diversa dai parametri di traslazione utilizzati da alcuni fornitori di dati, che utilizzano griglie spostate rispetto all'origine della proiezione. Ad esempio, le immagini Landsat fornite dall'USGS utilizzano parametri di traslazione con un offset di 1/2 pixel dall'origine della proiezione (offset di 15 m per le bande di 30 m), mentre le immagini Sentinel-2 fornite dall'ESA utilizzano parametri di traslazione allineati all'origine della proiezione. Se il crsTransform
specificato in un'esportazione non corrisponde al crsTransform
dell'immagine originale, i pixel di output verranno ricampionati (utilizzando il vicino più vicino per impostazione predefinita), il che comporterà lo spostamento dell'immagine risultante rispetto all'immagine originale.
In sintesi, se devi associare i pixel dell'immagine esportata a un'immagine specifica, assicurati di utilizzare i parametri crs
e crsTransform
per un controllo completo della griglia.
a Drive
Per esportare un'immagine nel tuo account Drive, utilizza Export.image.toDrive()
. Per
esempio, per esportare parti 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 viene eseguito questo codice, nella scheda Attività di Editor di codice viene creata un'attività di esportazione. Fai clic sul pulsante Esegui accanto all'attività per avviarla. Scopri di più su Task Manager nella sezione Editor di codice. L'immagine verrà creata nel tuo account Drive con il fileFormat
specificato.
a 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 posizione del bucket Cloud Storage può influire sulle prestazioni e sui costi di archiviazione. Per ulteriori informazioni, consulta la voce delle domande frequenti sulle considerazioni relative alla posizione.
a 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 quanto della quota di spazio di archiviazione è in uso, utilizza Asset Manager. L'esempio seguente illustra l'esportazione di parti di un'immagine Landsat utilizzando diversi criteri di piramidizzazione per la stessa banda. Il criterio di piramidizzazione indica come Earth Engine calcola le versioni a risoluzione inferiore della risorsa. Scopri di più su come Earth Engine gestisce più risoluzioni nel documento relativo alla 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 un criterio di piramidizzazione predefinito per ogni banda non specificata esplicitamente utilizzando la chiave '.default'
. Puoi anche passare solo la chiave '.default'
. Ad esempio, per impostare per impostazione predefinita il criterio di piramidizzazione "sample" per tutte le bande, 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 estratta coprirà la regione specificata con pixel alla scala specificata. Se non specificato esplicitamente, il sistema di riferimento cartografico dell'output verrà preso dalla prima banda dell'immagine da esportare.
Puoi anche specificare dimensions
, crs
e/o crsTransform
dell'immagine esportata. Per ulteriori 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 di miniatura di 256 x 256) che copra una regione, specifica dimensions
e region
.
Puoi specificare il formato di output delle immagini (se la destinazione non è toAsset()
) con il parametro fileFormat
('GeoTIFF'
per impostazione predefinita).
Parametro formatOptions
Altre opzioni di configurazione vengono impostate con il parametro formatOptions
, che deve essere un dizionario basato su altre opzioni di formato, specifiche per ogni fileFormat
, come descritto di seguito.
GeoTIFF
GeoTIFF ottimizzato per il cloud
Per esportare un file GeoTIFF ottimizzato per il cloud, passa un valore letterale JavaScript per formatOptions
in cui la chiave cloudOptimized
è impostata su
true. Continuando con 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 file GeoTIFF ottimizzati per il cloud possono essere ricaricati da Cloud Storage in un Image
. Per maggiori dettagli, consulta la documentazione di panoramica di Image
.
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 essere compreso nell'intervallo valido per PixelType
dell'immagine. Puoi controllare PixelType
stampando i metadati dell'immagine e osservando
la proprietà data_type
del primo intervallo. Puoi anche impostare il valorePixelType
dell'immagine trasmettendo i dati a un tipo specifico utilizzando i metodi di immagine toShort()
o
toInt()
, ad esempio.
TFRecord
Consulta la pagina Formato di dati TFRecord.
maxPixels
Il parametro maxPixels
è progettato per 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 esportazione in file GeoTIFF, l'immagine viene suddivisa in riquadri. Il nome del file di ogni
riquadro sarà nel formato baseFilename-yMin-xMin
, dove xMin
e yMin
sono
le coordinate di ogni riquadro all'interno del riquadro delimitante complessivo dell'immagine
esportata.
Se esporti in TFRecord, i file verranno aggiunti da -00000
,
-00001
,… -0000N
per N+1 file. Mantenere questo ordine è importante se intendi eseguire l'inferenza sui file e ricaricare le previsioni su Earth Engine come immagine. Per informazioni dettagliate, consulta la sezione sul caricamento delle immagini come file TFRecord.
Esportazione delle immagini così come appaiono nell'editor di codice
Per esportare le immagini come visualizzate sullo schermo in Earth Engine, crea immagini di visualizzazione come mostrato nelle sezioni Immagini di visualizzazione e Compositing e composizione di mosaici. Poiché l'editor di codice utilizza il sistema di riferimento 'EPSG:3857'
, specifica un sistema di riferimento 'EPSG:3857'
nell'esportazione per ottenere un'immagine nella stessa proiezione di quella visualizzata nella mappa dell'editor di codice. Per informazioni dettagliate su come specificare la risoluzione e il sistema di coordinate dell'output, consulta la sezione sulla configurazione delle esportazioni di immagini.