Ora che sai come caricare e visualizzare un'immagine, è il momento di applicarvi un calcolo.
Ad esempio, puoi calcolare la pendenza del terreno passando l'immagine dell'elevazione SRTM al metodo slope
del pacchetto ee.Terrain
.
Editor di codice (JavaScript)
// Load the SRTM image. var srtm = ee.Image('CGIAR/SRTM90_V4'); // Apply an algorithm to an image. var slope = ee.Terrain.slope(srtm); // Display the result. Map.setCenter(-112.8598, 36.2841, 9); // Center on the Grand Canyon. Map.addLayer(slope, {min: 0, max :60}, 'slope');
Tieni presente che nel codice ee.Terrain.slope(srtm)
, l'immagine srtm
viene
fornita come argomento all'algoritmo di pendenza. Il risultato dovrebbe essere simile a quello
della Figura 3.

Image math
Esistono anche metodi nella classe ee.Image
che possono essere richiamati su un
oggetto immagine. Ad esempio, supponiamo che tu voglia fare dei calcoli utilizzando le bande delle immagini (a volte chiamate band math o map algebra). Ad esempio, potresti essere interessato a
operazioni trigonometriche su un'immagine in formato. Per farlo, converti prima un'immagine
proporzionale in radianti, poi chiama sin()
. Riutilizzare la nostra immagine srtm
,
Editor di codice (JavaScript)
// Get the aspect (in degrees). var aspect = ee.Terrain.aspect(srtm); // Convert to radians, compute the sin of the aspect. var sinImage = aspect.divide(180).multiply(Math.PI).sin(); // Display the result. Map.addLayer(sinImage, {min: -1, max: 1}, 'sin');
Il risultato dovrebbe essere simile alla Figura 4. Vale la pena dare un'occhiata più da vicino al codice aspect.divide(180).multiply(Math.PI).sin()
. Concatenando più metodi
in questo modo, il codice dice: "dividi l'aspetto per 180, moltiplica il risultato per
π e infine calcola il seno". Puoi eseguire operazioni matematiche complesse sulle immagini combinando i metodi in questo modo. Consulta la
documentazione di Image
per un elenco completo delle operazioni matematiche,
add()
, subtract()
, multiply()
e così via.

Statistiche delle immagini
Un'altra classe utile di operazioni sulle immagini prevede il calcolo delle statistiche dei pixel nelle regioni dell'immagine o le sovrapposizioni raster-vettoriali. Per calcolare le statistiche in Earth Engine, utilizza un
reducer rappresentato dalle classi nel
pacchetto ee.Reducer
. Ad esempio, supponiamo
che ti interessi la media dell'elevazione in una determinata regione. Puoi definire una regione disegnando un poligono utilizzando gli strumenti di disegno di geometrie.
Per disegnare in modo interattivo una regione, seleziona lo strumento di disegno del poligono
(), quindi digitalizza un poligono sull'area
di interesse e fai clic su Esci al termine dell'operazione. Tieni presente che l'oggetto
ee.Geometry
risultante viene denominato automaticamente geometry
e aggiunto
come importazione nella parte superiore dello script. Rinomina la variabile in "polygon" facendo clic
sul nome della variabile nelle importazioni e digitando il nuovo nome.
Successivamente, ottieni il valore medio dei pixel nel poligono utilizzando il seguente codice:
Editor di codice (JavaScript)
// Compute the mean elevation in the polygon. var meanDict = srtm.reduceRegion({ reducer: ee.Reducer.mean(), geometry: polygon, scale: 90 }); // Get the mean from the dictionary and print it. var mean = meanDict.get('elevation'); print('Mean elevation', mean);
Ci sono diversi aspetti da notare. Innanzitutto, osserva che reduceRegion()
è
un metodo disponibile per gli oggetti Image
(scopri
di più sulla riduzione delle regioni qui). In secondo luogo, gli argomenti del metodo vengono forniti in un
oggetto JavaScript passato come singolo argomento. (Nello specifico, le chiavi dell'oggetto
sono i nomi dei parametri del metodo. I valori sono gli argomenti del metodo. Terzo, il parametro reducer
specifica il tipo di statistica da
calcolare e il parametro geometry
specifica la regione in cui calcolare
la statistica. Il parametro scale
è la dimensione in metri del pixel da utilizzare. Per
evitare ambiguità, devi sempre specificare la scala quando esegui riduzioni, in quanto Earth Engine
potrebbe non essere in grado di determinare automaticamente la scala appropriata dagli input.
Scopri di più sulla scala in Earth Engine.
Infine, il valore restituito di reduceRegion()
è un dizionario
in cui le chiavi sono i nomi delle bande e i valori sono le statistiche sui pixel per le bande. Il metodo
get()
su un dizionario restituisce il valore corrispondente alla chiave
fornita come argomento. In questo caso, l'immagine srtm
ha una banda,
"elevation", quindi il codice di esempio recupera questa statistica dal dizionario e la stampa.
Quando esegui questo codice, se ricevi un errore simile a questo:
Non temere: Esistono diverse soluzioni per risolvere l'errore. Il metodo
reduceRegion()
prevede un controllo per assicurarsi che tu valuti se
vuoi davvero includere così tanti pixel nel calcolo. Questo per evitare
di fare qualcosa di sciocco, come calcolare la media di ogni
pixel di un metro al mondo (non farlo). Per risolvere l'errore, imposta il parametro
bestEffort
su true
aggiungendo bestEffort: true
al dizionario dei parametri oppure imposta il parametro maxPixels
su un valore
superiore al valore predefinito di 10 milioni di pixel o entrambe le cose. Se bestEffort
è
true, Earth Engine ricalcola automaticamente la scala in modo che maxPixels
non venga superato.
Digressione: scala in Earth Engine
Nell'esempio precedente, scale
è impostato approssimativamente sulla risoluzione nativa
dell'immagine SRTM. Puoi scoprire la risoluzione nativa di un'immagine con:
Editor di codice (JavaScript)
var scale = srtm.projection().nominalScale(); print('SRTM scale in meters', scale);
Se specifichi una scala più piccola della risoluzione nativa, Earth Engine ricampionerà l'immagine di input utilizzando il metodo del vicino più prossimo, quindi includerà tutti i pixel più piccoli nel calcolo. Se imposti una scala più grande, Earth Engine utilizzerà i pixel di input di una versione aggregata dell'input (ovvero otterrà i pixel da un livello superiore della piramide dell'immagine). Scopri di più su come Earth Engine gestisce la scala in questo documento.
Finora hai lavorato con una singola immagine con una singola banda. Nella pagina successiva, scoprirai di più sulle immagini multibanda e sulle raccolte di immagini.