Visualizzare immagini e bande di immagini

Ora che sei pronto per iniziare a scrivere codice JavaScript di Earth Engine, inizia copiando il seguente codice nell'editor di codice:

Editor di codice (JavaScript)

// Instantiate an image with the Image constructor.
var image = ee.Image('CGIAR/SRTM90_V4');

// Zoom to a location.
Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon.

// Display the image on the map.
Map.addLayer(image);

Fai clic sul pulsante Esegui nella parte superiore dell'editor di codice e osserva che sulla mappa viene visualizzata un'immagine molto grigia. Non preoccuparti, presto lo renderai più bello. Se la sintassi di una parte di questo esempio non ti è familiare, assicurati di consultare il tutorial su JavaScript per Earth Engine.

Image Constructor

La prima novità in questo esempio è il costruttore di immagini ee.Image(). L'argomento fornito al costruttore è l'ID stringa di un'immagine nel catalogo dati di Earth Engine. (Consulta la scheda Docs a sinistra dell'editor di codice per visualizzare un elenco completo dei possibili argomenti del costruttore di immagini. La scheda Documenti contiene le informazioni più aggiornate su cosa può fare Earth Engine.

Per scoprire l'ID di un'immagine, esegui una ricerca nel catalogo dati di Earth Engine utilizzando lo strumento di ricerca nella parte superiore dell'editor di codice. Ad esempio, digita "elevazione" nel campo di ricerca e nota che viene restituito un elenco di raster. Fai clic sulla voce "SRTM Digital Elevation Data Version 4" per visualizzare ulteriori informazioni su questo set di dati. Sul lato destro della descrizione del set di dati è presente un campo ID immagine. Nota che l'ID immagine nell'esempio viene copiato dall'ID immagine mostrato nella descrizione del set di dati.

Un'alternativa alla copia e all'incolla degli ID immagine è l'utilizzo del pulsante Importa nella descrizione del set di dati o del link Importa sul lato destro dei risultati di ricerca. Se fai clic sul link o sul pulsante di importazione, viene creata automaticamente una variabile in una sezione speciale, denominata "Importazioni", nella parte superiore dello script. Puoi rinominare la variabile facendo clic sul suo nome nella sezione Importazioni.

Configurare la mappa

La seconda nuova parte di questo esempio è la chiamata Map.setCenter(). Questo metodo sull'oggetto Map, che rappresenta la visualizzazione della mappa nell'editor di codice, centra la mappa in base alla longitudine, alla latitudine (in gradi decimali) e al livello di zoom, dove 1 indica che la mappa è stata rimpicciolita in modo da mostrare l'intera superficie terrestre. I numeri più grandi vengono ingranditi da lì. Scopri tutti i metodi dell'oggetto Map controllando la sezione Mappa nella scheda Documenti sul lato sinistro dell'editor di codice.

Aggiungere un livello alla mappa

L'ultima riga dell'esempio indica di utilizzare il metodo Mapdell'oggetto addLayer() per aggiungere un'immagine alla visualizzazione della mappa nell'editor di codice.

Complimenti! Hai creato il tuo primo script Earth Engine. Nella prossima sezione, imparerai a migliorare l'aspetto di questa immagine.

Digressione: immagini in Earth Engine

Le immagini in Earth Engine (per maggiori dettagli, consulta questa pagina) sono composte da una o più bande. Ogni banda di un'immagine ha il proprio nome, valori dei pixel, risoluzione dei pixel e proiezione. Come scoprirai presto, l'immagine SRTM ha una banda: "elevation".

Quando aggiungi un'immagine a una mappa utilizzando Map.addLayer(), Earth Engine deve determinare come mappare i valori nelle bande dell'immagine ai colori sul display. Se a una mappa viene aggiunta un'immagine a banda singola, per impostazione predefinita Earth Engine visualizza la banda in scala di grigi, dove il valore minimo è assegnato al nero e il valore massimo al bianco. Se non specifichi i valori minimi e massimi, Earth Engine utilizzerà i valori predefiniti. Ad esempio, l'immagine che hai appena aggiunto alla mappa viene visualizzata come immagine in scala di grigi estesa all'intera gamma di dati o come numero intero a 16 bit con segno [-32768, 32767]. (le bande float vengono estese a [0, 1] e le bande byte vengono estese a [0, 255] per impostazione predefinita).

Puoi scoprire il tipo di dati dell'immagine stampandola e ispezionando l'oggetto immagine nella scheda Console. Ad esempio, incolla il seguente codice dopo quello precedente:

Editor di codice (JavaScript)

print('SRTM image', image);

Quando fai clic su Esegui, tieni presente che nella console viene visualizzato un oggetto. Per esaminare le proprietà dell'oggetto, espandilo facendo clic sulla freccia () a sinistra dell'oggetto o della proprietà. Espandi l'oggetto immagine, la proprietà "bande", la banda "elevation" all'indice "0" e la proprietà "data_type" della banda "elevation" per scoprire che si tratta di un tipo di dati signed int16.

Personalizzare la visualizzazione dei livelli

Per modificare il modo in cui i dati vengono estesi, puoi fornire un altro parametro alla chiamata Map.addLayer(). In particolare, il secondo parametro, visParams, consente di specificare i valori minimo e massimo da visualizzare. Per scoprire quali valori utilizzare, attiva la scheda Inspector e fai clic sulla mappa per farti un'idea dell'intervallo di valori dei pixel. In alternativa, utilizza Gestore livelli per estendere in modo interattivo i dati, quindi osserva il minimo e il massimo corrispondenti alle estensioni dei percentili o della deviazione standard. Supponiamo che, attraverso questo esperimento, tu determini che i dati debbano essere estesi a [0, 3000]. Per visualizzare l'immagine utilizzando questo intervallo, utilizza:

Editor di codice (JavaScript)

Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');

Tieni presente che il parametro visParams è un oggetto con proprietà che specificano min e max. Scopri di più sugli oggetti JavaScript nel tutorial JavaScript o in questo riferimento esterno. Tieni presente che il terzo parametro per Map.addLayer() è il nome del livello visualizzato in Gestore livelli. Il risultato dovrebbe essere simile alla Figura 1. Passa il mouse sopra la casella Livelli a destra per vedere l'effetto della ridenominazione del livello.

Tutorial_api_01_elevation.png
Figura 1. Immagine dell'elevazione in scala di grigi, estesa a [0, 3000].

Per visualizzare una singola banda utilizzando una tavolozza di colori, aggiungi una proprietà palette all'oggetto visParams:

Editor di codice (JavaScript)

Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']},
    'custom palette');

Il risultato dovrebbe essere simile alla Figura 2.

Tutorial_api_02_palette.png
Figura 2. Immagine dell'elevazione come rampa di colori dal blu al rosso, estesa a [0, 3000].

Digressione: tavolozze

Le tavolozze consentono di impostare la combinazione di colori per le immagini a banda singola. Una tavolozza è un elenco delimitato da virgole di stringhe di colore che vengono interpolate linearmente tra i valori massimo e minimo nei parametri di visualizzazione (o i valori predefiniti in base al tipo di banda, come descritto in precedenza). Ad esempio, i pixel inferiori o uguali al valore minimo verranno visualizzati con il primo colore dell'elenco, mentre i pixel superiori o uguali al valore massimo verranno visualizzati con l'ultimo colore dell'elenco. I colori intermedi vengono estesi linearmente ai valori dei pixel intermedi.

I colori sono definiti utilizzando lo schema di valori di colore CSS standard per il web (vedi questo riferimento esterno per saperne di più). I colori possono essere specificati per nome o come stringhe esadecimali che indicano la combinazione di rosso, verde e blu. Il valore più basso in una delle tre posizioni è 00 (che rappresenta il numero decimale 0), mentre il più alto è FF (che rappresenta il numero decimale 255). La stringa "000000" rappresenta il colore nero, "FFFFFF" il bianco, "FF0000" il rosso, "00FF00" il verde e "0000FF" il blu. Per maggiori dettagli, consulta la sezione Tavolozze di colori. È possibile utilizzare altre estensioni utilizzando i descrittori di layer stilizzati, come descritto in questa sezione.

Più avanti in questo tutorial imparerai a visualizzare immagini multibanda. Prima, però, visita la pagina successiva per scoprire come eseguire calcoli con le immagini.