Il set di dati Global Forest Change di Hansen et al. (2013) in Earth Engine rappresenta il cambiamento delle foreste, con una risoluzione di 30 metri, a livello globale, tra il 2000 e il 2014. Iniziamo aggiungendo i dati di Hansen et al. alla mappa. Importa i dati sul cambiamento globale delle foreste
(scopri di più sulla ricerca e sull'importazione di set di dati)
cercando "Hansen forest" e assegnando all'importazione il nome gfc2014 oppure copia il
seguente codice nell'editor di codice:
Editor di codice (JavaScript)
var gfc2014 = ee.Image('UMD/hansen/global_forest_change_2015'); Map.addLayer(gfc2014);
Fai clic sul pulsante Esegui nella parte superiore dell'editor di codice. Dovresti vedere qualcosa di simile alla Figura 1.
Non preoccuparti, presto lo renderai più bello. (Scopri di più sulle visualizzazioni predefinite delle immagini in Earth Engine). Al termine di questa sezione, avrai un'immagine simile alla Figura 2, in cui il verde rappresenta le aree in cui lo studio ha rilevato la presenza di foreste nell'anno 2000, il rosso rappresenta la perdita stimata di foreste nel periodo di studio, il blu rappresenta l'aumento delle foreste durante quel periodo, il magenta rappresenta le aree in cui le foreste sono state perse e recuperate e le aree non forestali sono mascherate.
Ricorda che quando un'immagine multibanda viene aggiunta a una mappa, le prime tre bande dell'immagine vengono scelte rispettivamente come rosso, verde e blu e vengono allungate in base al tipo di dati di ciascuna banda. L'immagine appare rossa perché le prime tre bande sono treecover2000, loss e gain. La banda treecover2000 è espressa in percentuale e ha valori molto più elevati di loss (verde) e gain (blu), che sono binari ({0, 1}). L'immagine viene quindi visualizzata con una predominanza di rosso.
Le bande nei dati Global Forest Change sono:
| Nome della band | Descrizione | Intervallo |
|---|---|---|
| treecover2000 | Percentuale di copertura arborea nel pixel. | 0 - 100 |
| perdita | 1 se si verifica una perdita durante il periodo di studio. | 0 o 1 |
| guadagno | 1 se l'aumento si verifica durante il periodo di studio. | 0 o 1 |
| lossyear | L'anno in cui si è verificata la perdita, indicizzato a partire dal 2001, o zero se non si è verificata alcuna perdita. | 0 - 12 |
| first_b30 | La banda rossa di Landsat 7 creata dai primi pixel validi nel 2000 (o precedenti se non erano presenti pixel validi nel 2000). | 0 - 255 |
| first_b40 | La banda nel vicino infrarosso di Landsat 7 creata dai primi pixel validi nel 2000. | 0 - 255 |
| first_b50 | La prima banda a infrarossi a onde corte di Landsat 7 creata dai primi pixel validi nel 2000. | 0 - 255 |
| first_b70 | La seconda banda a infrarossi a onde corte di Landsat 7 creata dai primi pixel validi nel 2000. | 0 - 255 |
| last_b30 | La banda rossa di Landsat 7 creata dagli ultimi pixel validi nel 2012. | 0 - 255 |
| last_b40 | La banda nel vicino infrarosso di Landsat 7 creata dagli ultimi pixel validi nel 2012. | 0 - 255 |
| last_b50 | La prima banda a infrarossi a onde corte di Landsat 7 creata dagli ultimi pixel validi del 2012. | 0 - 255 |
| last_b70 | La seconda banda a infrarossi a onde corte di Landsat 7 creata dagli ultimi pixel validi del 2012. | 0 - 255 |
| datamask | Nessun dato (0), superficie terrestre mappata (1) e corpi idrici permanenti (2). | 0, 1, 2 |
Per visualizzare la copertura forestale nell'anno 2000 come immagine in scala di grigi, puoi utilizzare la banda treecover2000, specificata nel secondo argomento di Map.addLayer():
Editor di codice (JavaScript)
Map.addLayer(gfc2014, {bands: ['treecover2000']}, 'treecover2000');
In questo modo, l'immagine dovrebbe avere un aspetto simile a quello della Figura 3.
Ecco un'immagine che utilizza 3 bande, le bande Landsat 5, 4 e 3 per il 2015. Questa combinazione di bande mostra la vegetazione sana in verde e il suolo in malva:
Editor di codice (JavaScript)
Map.addLayer( gfc2014, {bands: ['last_b50', 'last_b40', 'last_b30']}, 'false color');
Il risultato dovrebbe essere simile alla Figura 4.
Una bella visualizzazione del set di dati Global Forest Change mostra l'estensione della foresta nel 2000 in verde, la perdita di foresta in rosso e l'aumento di foresta in blu. In particolare, imposta loss come prima banda (rosso), treecover2000 come seconda banda (verde) e gain come terza banda (blu):
Editor di codice (JavaScript)
Map.addLayer(gfc2014, {bands: ['loss', 'treecover2000', 'gain']}, 'green');
I valori delle bande di perdita e guadagno sono binari, quindi saranno appena visibili sull'immagine, che dovrebbe assomigliare alla Figura 5.
Vogliamo che la perdita di foreste venga visualizzata in rosso acceso e l'aumento di foreste in blu acceso. Per risolvere il problema, possiamo utilizzare il parametro di visualizzazione max per impostare l'intervallo di estensione dei dati dell'immagine. Tieni presente che il parametro di visualizzazione max accetta un elenco di valori, corrispondenti ai massimi per ogni banda:
Editor di codice (JavaScript)
Map.addLayer(gfc2014, { bands: ['loss', 'treecover2000', 'gain'], max: [1, 255, 1] }, 'forest cover, loss, gain');
Il risultato dovrebbe essere simile alla Figura 6.
In questo modo si ottiene un'immagine verde dove c'è una foresta, rossa dove c'è una perdita di foresta, blu dove c'è un aumento di foresta e magenta dove c'è sia un aumento che una perdita. Tuttavia, un'ispezione più attenta rivela che non è del tutto corretto. Invece di essere contrassegnata in rosso, la perdita è arancione. Questo perché i pixel rosso vivo si mescolano con i pixel verdi sottostanti, producendo pixel arancioni. Allo stesso modo, i pixel in cui sono presenti foresta, perdita e aumento sono rosa, una combinazione di verde, rosso brillante e blu brillante. Per un'illustrazione, vedi la Figura 7.
Per ottenere l'immagine promessa all'inizio del tutorial, puoi creare immagini separate per foresta, perdita, guadagno e per perdita e guadagno. Aggiungi ciascuna di queste immagini alla mappa nell'ordine migliore per la visualizzazione.
Tavolozze
Per visualizzare ogni immagine con un colore diverso, puoi utilizzare il parametro palette di Map.addLayer() per le immagini a banda singola. Le tavolozze ti consentono di impostare
la combinazione di colori con cui viene visualizzata l'immagine
(scopri di più sulle tavolozze). Ricorda dal tutorial sull'API Earth Engine che i colori di una tavolozza vengono estesi in modo lineare a min e max.
Ad esempio, per utilizzare una tavolozza verde per visualizzare l'immagine dell'estensione della foresta, puoi utilizzare:
Editor di codice (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'] }, 'forest cover palette');
Il risultato dovrebbe essere simile alla Figura 8.
Aumentando lo zoom, puoi farti un'idea più precisa della risoluzione delle immagini. La Figura 9 mostra un'area intorno a Mariscal Estigarribia in Paraguay.
L'immagine mostrata nella Figura 3 è un po' scura. Il problema è che la banda treecover2000 ha un tipo di dati byte ([0, 255]), quando in realtà i valori sono percentuali ([0, 100]). Per rendere l'immagine più luminosa, puoi impostare i parametri min
e/o max di conseguenza. La tavolozza viene quindi estesa tra questi estremi.
Editor di codice (JavaScript)
Map.addLayer(gfc2014, { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover percent');
Il risultato dovrebbe essere simile alla Figura 9. Tieni presente che in questo esempio è impostato solo max. Il valore predefinito di min è zero.
Mascheramento
Tutte le immagini mostrate finora presentavano grandi aree nere in cui i dati erano pari a zero. Ad esempio, non ci sono alberi nell'oceano. Per rendere trasparenti queste aree, puoi mascherare i relativi valori. Ogni pixel in Earth Engine ha un valore e una maschera. L'immagine viene visualizzata con la trasparenza impostata dalla maschera, dove zero è completamente trasparente e uno è completamente opaco.
Puoi mascherare un'immagine con se stessa. Ad esempio, se mascheri la banda treecover2000 con se stessa, tutte le aree in cui la copertura forestale è pari a zero saranno trasparenti:
Editor di codice (JavaScript)
Map.addLayer(gfc2014.mask(gfc2014), { bands: ['treecover2000'], palette: ['000000', '00FF00'], max: 100 }, 'forest cover masked');
Il risultato dovrebbe essere simile alla Figura 10.
Esempio
È quasi possibile creare una visualizzazione dei dati di Hansen come quella all'inizio del tutorial. In questo esempio, mettiamo insieme tutti gli elementi con una piccola differenza. Anziché specificare il parametro bands nella chiamata Map.addLayer, creiamo nuove immagini utilizzando select():
Editor di codice (JavaScript)
var treeCover = gfc2014.select(['treecover2000']); var lossImage = gfc2014.select(['loss']); var gainImage = gfc2014.select(['gain']); // Add the tree cover layer in green. Map.addLayer(treeCover.updateMask(treeCover), {palette: ['000000', '00FF00'], max: 100}, 'Forest Cover'); // Add the loss layer in red. Map.addLayer(lossImage.updateMask(lossImage), {palette: ['FF0000']}, 'Loss'); // Add the gain layer in blue. Map.addLayer(gainImage.updateMask(gainImage), {palette: ['0000FF']}, 'Gain');
Il risultato dovrebbe essere simile alla Figura 11.
Osserva che sono presenti tre chiamate addLayer(). Ogni annuncio di chiamata addLayer() aggiunge un livello alla mappa. Passando il mouse sopra il pulsante Livelli in alto a destra nella mappa, vengono visualizzati questi livelli. Ogni livello può essere attivato o disattivato utilizzando la casella di controllo accanto e l'opcursore accanto al nome del livello può influire sull'opacità del livello.
Siamo quasi in grado di creare l'immagine mostrata all'inizio del tutorial. Tuttavia, manca il livello che mostra i pixel con perdita e guadagno. Manca perché dobbiamo sapere come eseguire alcuni calcoli sulle bande delle immagini prima di poter calcolare quali pixel mostrano sia la perdita sia l'aumento. Questo è l'argomento della sezione successiva.