Una raccolta di immagini si riferisce a un insieme di immagini di Earth Engine. Ad esempio, la raccolta di tutte le immagini Landsat 8 è un ee.ImageCollection. Come l'immagine SRTM con cui hai lavorato, anche le raccolte di immagini hanno un ID. Come per le singole immagini, puoi scoprire l'ID di una raccolta di immagini cercando nel Data Catalog di Earth Engine dall'editor di codice e consultando la pagina dei dettagli del set di dati. Ad esempio, cerca "landsat 8 toa" e fai clic sul primo risultato, che dovrebbe corrispondere al set di dati
USGS Landsat 8 Collection 1 Tier 1 TOA Reflectance.
Importa il set di dati utilizzando il pulsante Importa e rinominalo in l8 oppure copia l'ID nel costruttore della raccolta di immagini:
Editor di codice (JavaScript)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA');
Filtrare le raccolte di immagini
Vale la pena notare che questa raccolta rappresenta ogni scena Landsat 8 raccolta, in tutto il mondo. Spesso è utile estrarre una singola immagine o un sottoinsieme di immagini su cui testare gli algoritmi. Per limitare la raccolta in base al tempo o allo spazio, devi filtrarla. Ad esempio, per filtrare la raccolta in base alle immagini che coprono una determinata località, definisci prima l'area di interesse con un punto (o una linea o un poligono) utilizzando gli strumenti di disegno della geometria. Esegui la panoramica sull'area di interesse, passa il mouse sopra Geometry Imports (se hai già definito una o più geometrie) e fai clic su +new layer (se non hai importazioni, vai al passaggio successivo). Seleziona lo strumento di disegno dei punti (
) e crea un punto nell'area di interesse. Assegna un nome all'importazione point. Ora, filtra la raccolta l8 per ottenere solo le immagini che intersecano il punto, quindi aggiungi un secondo filtro per limitare la raccolta solo alle immagini acquisite nel 2015:
Editor di codice (JavaScript)
var spatialFiltered = l8.filterBounds(point); print('spatialFiltered', spatialFiltered); var temporalFiltered = spatialFiltered.filterDate('2015-01-01', '2015-12-31'); print('temporalFiltered', temporalFiltered);
In questo caso, filterBounds() e filterDate() sono metodi di scorciatoia per il metodo filter() più generale sulle raccolte di immagini, che accetta un ee.Filter() come argomento. Esplora la scheda Docs dell'editor di codice per scoprire di più su questi metodi. L'argomento di filterBounds()
è il punto che hai digitalizzato e gli argomenti di filterDate() sono due date,
espresse come stringhe.
Tieni presente che puoi print() le raccolte filtrate. Non puoi stampare più di 5000 elementi alla volta, quindi non puoi, ad esempio, stampare l'intera raccolta l8. Dopo aver eseguito il metodo print(), puoi esaminare le raccolte stampate nella console. Tieni presente che quando espandi ImageCollection utilizzando il pulsante di espansione () e poi espandi l'elenco di
features, vedrai un elenco di immagini, ognuna delle quali può essere espansa e ispezionata. Questo è un modo per scoprire l'ID di una singola immagine. Un altro modo, più programmatico, per ottenere singole immagini per l'analisi è ordinare la raccolta per ottenere l'immagine più recente, più vecchia o ottimale rispetto a una proprietà dei metadati. Ad esempio, esaminando gli oggetti immagine nelle raccolte di immagini stampate, potresti aver osservato una proprietà dei metadati denominata CLOUD_COVER. Puoi utilizzare questa proprietà per ottenere l'immagine meno nuvolosa del 2015 nella tua area di interesse:
Editor di codice (JavaScript)
// This will sort from least to most cloudy. var sorted = temporalFiltered.sort('CLOUD_COVER'); // Get the first (least cloudy) image. var scene = sorted.first();
Ora puoi visualizzare l'immagine.
Digressione: visualizzazione di immagini RGB
Quando un'immagine multibanda viene aggiunta a una mappa, Earth Engine sceglie le prime tre bande dell'immagine e le visualizza come rosso, verde e blu per impostazione predefinita, allungandole in base al tipo di dati, come descritto in precedenza. In genere, questo non è sufficiente. Ad esempio, se aggiungi l'immagine Landsat (scene nell'esempio precedente) alla mappa, il risultato non è soddisfacente:
Editor di codice (JavaScript)
Map.centerObject(scene, 9); Map.addLayer(scene, {}, 'default RGB');
Tieni presente che, innanzitutto, la mappa è centrata sull'immagine con un fattore di zoom pari a 9. L'immagine viene quindi visualizzata con un oggetto vuoto ({}) per il parametro visParams (per maggiori dettagli, consulta la documentazione di Map.addLayer()). Di conseguenza, l'immagine viene visualizzata con la visualizzazione predefinita: le prime tre bande vengono mappate rispettivamente a R, G, B e allungate a [0, 1] poiché le bande sono di tipo di dati float. Ciò significa che la banda degli aerosol costieri ("B1") viene visualizzata in rosso, la banda blu ("B2") in verde e la banda verde ("B3") in blu. Per eseguire il rendering dell'immagine come composito true-color, devi indicare a Earth Engine di utilizzare le bande Landsat 8 "B4", "B3" e "B2" rispettivamente per R, G e B. Specifica quali bande utilizzare con la proprietà bands dell'oggetto visParams. Scopri di più sulle bande Landsat in questo riferimento.
Devi anche fornire i valori min e max adatti per visualizzare la riflettanza dei target tipici della superficie terrestre. Sebbene sia possibile utilizzare gli elenchi per specificare valori diversi per ogni banda, in questo caso è sufficiente specificare 0.3 come max e utilizzare il valore predefinito zero per il parametro min. Combinazione dei parametri di visualizzazione in un unico oggetto e visualizzazione:
Editor di codice (JavaScript)
var visParams = {bands: ['B4', 'B3', 'B2'], max: 0.3}; Map.addLayer(scene, visParams, 'true-color composite');
Il risultato dovrebbe essere simile alla Figura 5. Tieni presente che questo codice assegna l'oggetto dei parametri di visualizzazione a una variabile per un possibile utilizzo futuro. Come scoprirai presto, questo oggetto sarà utile quando visualizzerai le raccolte di immagini.
Prova a visualizzare diverse bande. Un'altra combinazione molto utilizzata è "B5", "B4" e "B3", chiamata composizione in falsi colori. Alcune altre interessanti combinazioni di falsi colori sono descritte qui.
Poiché Earth Engine è progettato per eseguire analisi su larga scala, non sei limitato a lavorare con una sola scena. Ora è il momento di visualizzare un'intera raccolta come composizione RGB.
Visualizzazione delle raccolte di immagini
L'aggiunta di una raccolta di immagini a una mappa è simile all'aggiunta di un'immagine a una mappa. Ad esempio, utilizzando le immagini del 2016 nella raccolta l8 e l'oggetto visParams definito in precedenza,
Editor di codice (JavaScript)
var l8 = ee.ImageCollection('LANDSAT/LC08/C02/T1_TOA'); var landsat2016 = l8.filterDate('2016-01-01', '2016-12-31'); Map.addLayer(landsat2016, visParams, 'l8 collection');
Tieni presente che ora puoi diminuire lo zoom e visualizzare un mosaico continuo in cui vengono raccolte le immagini Landsat (ovvero sulla terraferma). Tieni inoltre presente che quando utilizzi la scheda Inspector e fai clic sull'immagine, vedrai un elenco di valori dei pixel (o un grafico) nella sezione Pixel e un elenco di oggetti immagine nella sezione Oggetti dell'Inspector.
Se hai diminuito lo zoom abbastanza, probabilmente hai notato alcune nuvole nel mosaico. Quando
aggiungi un ImageCollection alla mappa, viene visualizzato come un composito di valori recenti, il che significa che vengono visualizzati solo i pixel più recenti (come la chiamata di
mosaic() sulla raccolta). Ecco perché potresti notare delle discontinuità tra i percorsi acquisiti in momenti diversi. Questo è anche il motivo per cui molte aree potrebbero apparire nuvolose. Nella pagina successiva, scopri come modificare il modo in cui le immagini vengono composte per eliminare quelle fastidiose nuvole.