Ora che hai tutto il necessario per iniziare a scrivere codice JavaScript di Earth Engine, copia 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, consulta il tutorial su JavaScript per Earth Engine.
Image Constructor
La prima novità di questo esempio è il costruttore di immagini
ee.Image(). L'argomento fornito al costruttore è l'ID stringa di un'immagine nel Data Catalog di Earth Engine. (Consulta la scheda Documenti a sinistra dell'editor di codice per visualizzare un elenco completo dei possibili argomenti per il costruttore di immagini. La scheda Documenti rappresenta le informazioni più aggiornate su ciò che Earth Engine può fare.
Per trovare un ID immagine, cerca nel Data Catalog di Earth Engine utilizzando lo strumento di ricerca nella parte superiore dell'editor di codice. Ad esempio, digita "elevation" 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 sul set di dati. Sul lato destro della descrizione del set di dati è presente un campo ID immagine. Tieni presente 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 è utilizzare il pulsante Importa nella descrizione del set di dati o il 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 delle importazioni.
Configurazione della 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 e alla latitudine indicate (in gradi decimali) e al livello di zoom, dove 1 è lo zoom indietro in modo che la mappa mostri l'intera superficie della Terra. I numeri più grandi aumentano lo zoom. Scopri tutti i metodi dell'oggetto Map consultando la sezione Map nella scheda Docs sul lato sinistro dell'editor di codice.
Aggiunta di un livello alla mappa
L'ultima riga dell'esempio dice: utilizza il metodo addLayer() dell'oggetto Map per aggiungere un'immagine alla visualizzazione della mappa nell'editor di codice.
Complimenti! Hai creato il tuo primo script di Earth Engine. Nella prossima sezione, scoprirai come migliorare l'aspetto dell'immagine.
Digressione: immagini in Earth Engine
Le immagini in Earth Engine (per maggiori dettagli, consulta questa pagina) sono costituite da una o più bande. Ogni banda di un'immagine ha un nome, valori dei pixel, una risoluzione dei pixel e una proiezione propri. Come scoprirai presto, l'immagine SRTM ha una sola 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 un'immagine a banda singola viene aggiunta a una mappa, 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 minimo e massimo, Earth Engine utilizzerà i valori predefiniti. Ad esempio, l'immagine che hai appena aggiunto alla mappa viene visualizzata come un'immagine in scala di grigi estesa all'intero intervallo dei dati o un numero intero con segno a 16 bit [-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 quanto segue dopo il codice 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 sull'icona di espansione () a sinistra dell'oggetto o della proprietà. Espandi l'oggetto immagine, la proprietà "bands", 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.
Personalizzazione della 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 il Gestore livelli per estendere i dati in modo interattivo, quindi osserva il minimo e il massimo corrispondenti alle estensioni dei percentili o della deviazione standard. Supponiamo che, attraverso questa sperimentazione, tu stabilisca 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. Per saperne di più sugli oggetti JavaScript, consulta il tutorial su JavaScript o questo riferimento esterno. Tieni presente che il terzo parametro per Map.addLayer() è il nome del livello visualizzato in Gestione 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.
Per visualizzare una singola banda utilizzando una tavolozza dei 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.
Digressione: palette
Le tavolozze ti consentono di impostare la combinazione di colori per le immagini a banda singola. Una tavolozza è un elenco di stringhe di colori delimitate da virgole 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; i pixel maggiori o uguali al valore massimo verranno visualizzati con l'ultimo colore dell'elenco. I colori intermedi vengono estesi in modo lineare ai valori dei pixel intermedi.
I colori vengono definiti utilizzando lo schema dei valori dei colori CSS standard del web (per saperne di più, consulta questo riferimento esterno). 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. Sono possibili altri allungamenti utilizzando gli Styled Layer Descriptor, come descritto in questa sezione.
Più avanti in questo tutorial imparerai a visualizzare immagini multibanda. Ma prima, visita la pagina successiva per scoprire come eseguire calcoli con le immagini.