Maintenant que vous savez comment charger et afficher une image, il est temps de lui appliquer un calcul.
Par exemple, vous pouvez calculer la pente du terrain en transmettant l'image d'altitude SRTM à la méthode slope
du package ee.Terrain
.
Éditeur de code (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');
Notez que dans le code ee.Terrain.slope(srtm)
, l'image srtm
est fournie en tant qu'argument à l'algorithme de pente. Le résultat doit ressembler à la figure 3.

Calculs sur les images
La classe ee.Image
contient également des méthodes qui peuvent être appelées sur un objet image. Par exemple, supposons que vous souhaitiez effectuer des calculs à l'aide de bandes d'image (parfois appelées band math ou map algebra). Par exemple, vous pouvez être intéressé par les opérations trigonométriques sur une image d'aspect. Pour ce faire, commencez par convertir une image au format ratio en radians, puis appelez sin()
. Réutiliser notre image srtm
Éditeur de code (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');
Le résultat doit ressembler à la figure 4. Il vaut la peine d'examiner de plus près le code aspect.divide(180).multiply(Math.PI).sin()
. En enchaînant plusieurs méthodes de cette manière, le code indique : "divise l'aspect par 180, multiplie le résultat par π, puis prends le sinus". Vous pouvez effectuer des opérations mathématiques complexes sur les images en combinant les méthodes de cette manière. Consultez la documentation Image
pour obtenir la liste complète des opérations mathématiques, add()
, subtract()
, multiply()
, etc.

Statistiques sur les images
Une autre classe d'opérations utiles sur les images consiste à calculer des statistiques sur les pixels dans les régions d'image ou les superpositions raster-vecteur. Pour calculer des statistiques dans Earth Engine, utilisez un réducteur tel que représenté par les classes du package ee.Reducer
. Par exemple, supposons que vous soyez intéressé par la moyenne de l'altitude dans une région donnée. Vous pouvez définir une région en dessinant un polygone à l'aide des outils de dessin de géométrie.
Pour dessiner une région de manière interactive, sélectionnez l'outil de dessin de polygones (), puis numérisez un polygone sur la zone qui vous intéresse et cliquez sur Quitter lorsque vous avez terminé. Notez que l'objet
ee.Geometry
résultant est automatiquement nommé geometry
et ajouté en tant qu'importation en haut de votre script. Renommez cette variable "polygon" en cliquant sur son nom dans les importations et en saisissant le nouveau nom.
Ensuite, obtenez la valeur moyenne des pixels du polygone à l'aide du code suivant :
Éditeur de code (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);
Plusieurs points sont à noter ici. Tout d'abord, notez que reduceRegion()
est une méthode disponible pour les objets Image
(en savoir plus sur la réduction des régions). Deuxièmement, les arguments de la méthode sont fournis dans un objet JavaScript transmis en tant qu'argument unique. (Plus précisément, les clés de l'objet sont les noms des paramètres de la méthode. Les valeurs sont les arguments de la méthode). Troisièmement, le paramètre reducer
spécifie le type de statistique à calculer, et le paramètre geometry
spécifie la région dans laquelle calculer la statistique. Le paramètre scale
correspond à la taille en pixels à utiliser (en mètres). Pour éviter toute ambiguïté, vous devez toujours spécifier l'échelle lorsque vous effectuez des réductions, car Earth Engine peut ne pas être en mesure de déterminer automatiquement l'échelle appropriée à partir des entrées.
(En savoir plus sur l'échelle dans Earth Engine)
Enfin, la valeur renvoyée de reduceRegion()
est un dictionnaire dans lequel les clés sont des noms de bandes et les valeurs sont les statistiques de pixels pour les bandes. La méthode get()
sur un dictionnaire renvoie la valeur correspondant à la clé fournie en tant qu'argument. Dans ce cas, l'image srtm
comporte une bande, "elevation". Le code d'exemple extrait donc cette statistique du dictionnaire et l'imprime.
Lorsque vous exécutez ce code, si vous obtenez une erreur semblable à celle-ci :
Pas d'inquiétude ! Plusieurs solutions s'offrent à vous pour résoudre cette erreur. La méthode reduceRegion()
comporte une vérification pour s'assurer que vous avez bien réfléchi à la question de savoir si vous souhaitez vraiment inclure autant de pixels dans votre calcul. Cela vise à vous éviter de faire des bêtises, comme essayer de calculer la moyenne de chaque pixel d'un mètre dans le monde (ne le faites pas). Pour résoudre cette erreur, définissez le paramètre bestEffort
sur true
en ajoutant bestEffort: true
au dictionnaire de paramètres, ou définissez le paramètre maxPixels
sur une valeur supérieure à la valeur par défaut de 10 millions de pixels, ou les deux. Si bestEffort
est défini sur "true", Earth Engine recalculera automatiquement l'échelle de sorte que maxPixels
ne soit pas dépassé.
Digression : Échelle dans Earth Engine
Dans l'exemple précédent, scale
est défini sur une valeur approximativement égale à la résolution native de l'image SRTM. Pour connaître la résolution native d'une image, vous pouvez :
Éditeur de code (JavaScript)
var scale = srtm.projection().nominalScale(); print('SRTM scale in meters', scale);
Si vous spécifiez une échelle inférieure à la résolution native, Earth Engine rééchantillonnera volontiers l'image d'entrée à l'aide du voisin le plus proche, puis inclura tous ces pixels plus petits dans le calcul. Si vous définissez une échelle plus grande, Earth Engine utilisera les pixels d'entrée à partir d'une version agrégée de l'entrée (c'est-à-dire qu'il obtiendra les pixels à partir d'un niveau supérieur de la pyramide d'images). Pour en savoir plus sur la façon dont Earth Engine gère l'échelle, consultez ce document.
Jusqu'à présent, vous avez travaillé avec une seule image comportant une seule bande. Sur la page suivante, vous découvrirez les images multibandes et les collections d'images.