Earth Engine è un potente strumento di analisi, ma potresti aver bisogno di esportare i risultati
dell'analisi per incorporare grafici, immagini, mappe e così via in report o
pubblicazioni. In questa sezione imparerai a creare grafici e immagini
che possono essere esportati e visualizzati in altri software. Ricorda che nella
sezione precedente, hai utilizzato un codice simile al seguente per aggiungere una
banda NDVI a ogni immagine di una raccolta, dove la variabile l8
fa riferimento alla
raccolta di riflettanza TOA di Landsat 8:
Editor di codice (JavaScript)
// Import the Landsat 8 TOA image collection. var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); // Map a function over the Landsat 8 TOA collection to add an NDVI band. var withNDVI = l8.map(function(image) { var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); return image.addBands(ndvi); });
Creazione di grafici
Supponiamo che tu voglia un grafico dell'NDVI nel tempo in una determinata posizione. Per
creare un grafico di questo tipo, il primo passo è scegliere una località di interesse. Crea un punto
ottenendo lo strumento di disegno del punto ()
e crea una singola geometria del punto nell'area di interesse. (Se hai già importazioni,
passa il mouse sopra Importazioni geometria e fai clic prima su + nuovo livello).
Individua il punto in un'area di agricoltura, foresta decidua, prateria annuale o in un'altra copertura del suolo con un ciclo annuale. Assegna un nome all'importazione
roi
. (Per informazioni sulla creazione programmatica di geometrie, consulta
questa pagina).
Ora utilizziamo il punto roi
per creare un grafico dell'NDVI nel tempo nel pixel
sotto questo punto. Il modo per creare grafici in Earth Engine è con il pacchetto ui.Chart
. Scopri di più sulla creazione di grafici in Earth Engine.
In particolare, per creare un grafico nel tempo, puoi utilizzare il
metodo ui.Chart.image.series()
:
Editor di codice (JavaScript)
// Create a chart. var chart = ui.Chart.image.series({ imageCollection: withNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'NDVI over time'}); // Display the chart in the console. print(chart);
Per la geometria roi
, abbiamo scelto un punto in un'area agricola, ottenendo
un grafico simile a quello della Figura 10. Tieni presente che i parametri del costruttore
del grafico includono un riduttore e una scala come reduceRegion()
. Poiché il punto che forniamo come regione può intersecare un solo pixel, è sufficiente utilizzare il riduttore "first". Se hai una regione più grande, devi utilizzare una funzione di riduzione "media" o un'altra funzione di riduzione
che specifica come aggregare i pixel. Tieni presente inoltre che per visualizzare un grafico, ti basta stamparlo.

Digressione: semplice mascheramento delle nuvole per Landsat
Una cosa che potresti aver notato di questo grafico è che la serie temporale dei valori NDVI
nel punto sembra un po' rumorosa. Ciò è probabilmente dovuto alle nuvole. Per attenuare questo
effetto, Earth Engine include un algoritmo di mascheramento delle nuvole per i sensori Landsat con una
banda termica: ee.Algorithms.Landsat.simpleCloudScore()
. Prende come input un'immagine di riflettanza TOA di Landsat e aggiunge una banda denominata cloud
, che è un indice di nuvolosità nel pixel da 0 a 100, rispettivamente da meno a più nuvoloso. Modificando la funzione mappata sulla raccolta, puoi utilizzare una soglia arbitraria (20) sull'indice cloud per pulire un po' il grafico:
Editor di codice (JavaScript)
var cloudlessNDVI = l8.map(function(image) { // Get a cloud score in [0, 100]. var cloud = ee.Algorithms.Landsat.simpleCloudScore(image).select('cloud'); // Create a mask of cloudy pixels from an arbitrary threshold. var mask = cloud.lte(20); // Compute NDVI. var ndvi = image.normalizedDifference(['B5', 'B4']).rename('NDVI'); // Return the masked image with an NDVI band. return image.addBands(ndvi).updateMask(mask); }); print(ui.Chart.image.series({ imageCollection: cloudlessNDVI.select('NDVI'), region: roi, reducer: ee.Reducer.first(), scale: 30 }).setOptions({title: 'Cloud-masked NDVI over time'}));
Il risultato con la maschera delle nuvole è illustrato nella Figura 11. Tieni presente che la serie temporale appare un po' più uniforme, ma potrebbe comunque contenere pixel interessati dalle nuvole. Modifica la soglia nell'indice cloud e osserva la serie temporale rappresentata nel grafico per scoprire in che modo questa soglia può influire sui risultati.

Esportare le immagini
Hai visto un modo per esportare un grafico dei dati calcolati da Earth Engine, ma cosa succede con un'intera immagine? Supponiamo, ad esempio, di aver creato un composito di pixel più verdi come descritto nella sezione precedente:
Editor di codice (JavaScript)
var greenest = cloudlessNDVI.qualityMosaic('NDVI');
L'unica differenza in questo codice rispetto a quello che hai fatto in precedenza è che ora utilizziamo
la raccolta mascherata dal cloud. Puoi esportare un sottoinsieme (definito da una regione) di questo
utilizzando il pacchetto Export
. Scopri di più sull'esportazione
di dati raster e vettoriali da Earth Engine. Ad esempio, per esportare un'immagine che può essere
incorporata facilmente in altri documenti, creiamo un'immagine di visualizzazione,
come hai fatto in precedenza, ed esportiamola nella tua
cartella Google Drive:
Editor di codice (JavaScript)
// Create a 3-band, 8-bit, color-IR composite to export. var visualization = greenest.visualize({ bands: ['B5', 'B4', 'B3'], max: 0.4 }); // Create a task that you can launch from the Tasks tab. Export.image.toDrive({ image: visualization, description: 'Greenest_pixel_composite', scale: 30 });
Quando esegui questo codice, tieni presente che viene creata una nuova attività nella scheda Attività. Per aprire la finestra di dialogo di configurazione dell'esportazione, fai clic sul pulsante ESEGUI nella scheda Attività. Dopo aver configurato l'attività, fai clic sul pulsante Esegui nella finestra di dialogo per avviare l'esportazione. Ma prima di farlo, tieni presente che:
Il motivo per cui devi prestare attenzione quando esporti senza un argomento region
è che se imposti un valore relativamente piccolo per scale
e la mappa viene ridotta per visualizzare un'area di grandi dimensioni, esporterai un'immagine potenzialmente molto grande nella cartella Drive. Consulta la documentazione di Export.image.toDrive()
nella scheda Documenti per ulteriori dettagli e un elenco dei possibili parametri di configurazione.
Con questo si conclude l'introduzione all'API Earth Engine. Ora hai visto gran parte delle funzionalità più comuni di Earth Engine e dovresti essere in grado di procedere con sicurezza ad analisi più complesse. Assicurati di leggere la documentazione e di cercare nel forum le risposte ad altre domande. Buona programmazione!