Maintenant que vous êtes prêt à commencer à écrire du code JavaScript Earth Engine, copiez le code suivant dans l'éditeur de code :
Éditeur de code (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);
Cliquez sur le bouton Run (Exécuter) en haut de l'éditeur de code et observez qu'une image très grise apparaît sur la carte. Ne vous inquiétez pas, vous allez bientôt l'améliorer. Si la syntaxe d'une partie de cet exemple ne vous est pas familière, consultez le tutoriel JavaScript pour Earth Engine.
Image Constructor
La première nouveauté de cet exemple est le constructeur d'image
ee.Image(). L'argument fourni au constructeur est l'ID de chaîne d'une image dans le Data Catalog Earth Engine. (Consultez l'onglet Docs, à gauche de l'éditeur de code, pour obtenir la liste complète des arguments possibles pour le constructeur d'image. L'onglet Docs contient les informations les plus à jour sur les fonctionnalités d'Earth Engine.
Pour découvrir un ID d'image, effectuez une recherche dans le Data Catalog Earth Engine à l'aide de l'outil de recherche situé en haut de l'éditeur de code. Par exemple, saisissez "elevation" dans le champ de recherche et notez qu'une liste de rasters est renvoyée. Cliquez sur l'entrée "SRTM Digital Elevation Data Version 4" pour afficher plus d'informations sur cet ensemble de données. Sur le côté droit de la description de l'ensemble de données se trouve un champ ID d'image. Notez que l'ID d'image de l'exemple est copié à partir de l'ID d'image indiqué dans la description de l'ensemble de données.
Au lieu de copier et coller les ID d'image, vous pouvez utiliser le bouton Importer dans la description de l'ensemble de données ou le lien Importer à droite des résultats de recherche. Si vous cliquez sur le lien ou le bouton d'importation, une variable est automatiquement créée dans une section spéciale, nommée Imports, en haut de votre script. Vous pouvez renommer la variable en cliquant sur son nom dans la section des importations.
Configurer la carte
La deuxième nouveauté de cet exemple est l'appel Map.setCenter(). Cette méthode sur l'objet Map, qui représente l'affichage de la carte dans l'éditeur de code, centre la carte sur la longitude et la latitude données (en degrés décimaux) et le niveau de zoom, où 1 correspond à un zoom arrière permettant d'afficher l'intégralité de la surface de la Terre. Les nombres plus élevés effectuent un zoom avant à partir de là. Découvrez toutes les méthodes de l'objet Map en consultant la section "Map" de l'onglet "Docs" à gauche de l'éditeur de code.
Ajouter un calque à la carte
La dernière ligne de l'exemple indique d'utiliser la méthode addLayer() de l'objet Map pour ajouter une image à l'affichage de la carte dans l'éditeur de code.
Félicitations ! Vous avez créé votre premier script Earth Engine. Dans la section suivante, vous allez apprendre à améliorer l'apparence de cette image.
Digression : Images dans Earth Engine
Les images dans Earth Engine (consultez cette page pour en savoir plus) sont composées d'une ou de plusieurs bandes. Chaque bande d'une image possède son propre nom, ses propres valeurs de pixel, sa propre résolution de pixel et sa propre projection. Comme vous le découvrirez bientôt, l'image SRTM comporte une bande : "elevation".
Lorsque vous ajoutez une image à une carte à l'aide de Map.addLayer(), Earth Engine doit déterminer comment mapper les valeurs des bandes d'images aux couleurs de l'affichage. Si une image à bande unique est ajoutée à une carte, Earth Engine affiche par défaut la bande en nuances de gris, où la valeur minimale est attribuée au noir et la valeur maximale au blanc.
Si vous ne spécifiez pas de valeurs minimale et maximale, Earth Engine utilisera les valeurs par défaut. Par exemple, l'image que vous venez d'ajouter à la carte s'affiche sous la forme d'une image en niveaux de gris étirée sur l'ensemble des données, ou d'un entier signé de 16 bits [-32768, 32767]. (Les bandes float sont étirées sur [0, 1] et les bandes byte sont étirées sur [0, 255] par défaut).
Vous pouvez découvrir le type de données de l'image en l'imprimant et en inspectant l'objet image dans l'onglet Console. Par exemple, collez le code suivant après le code précédent :
Éditeur de code (JavaScript)
print('SRTM image', image);
Lorsque vous cliquez sur "Exécuter", un objet s'affiche dans la console. Pour examiner les propriétés de l'objet, développez-le en cliquant sur la flèche () à gauche de l'objet ou de la propriété. Développez l'objet image, la propriété "bands", la bande "elevation" à l'index "0" et la propriété "data_type" de la bande "elevation" pour découvrir qu'il s'agit d'un type de données
signed int16.
Personnaliser la visualisation des couches
Pour modifier la façon dont les données sont étirées, vous pouvez fournir un autre paramètre à l'appel Map.addLayer(). Plus précisément, le deuxième paramètre, visParams, vous permet de spécifier les valeurs minimale et maximale à afficher. Pour découvrir les valeurs à utiliser, activez l'onglet Inspecteur et cliquez sur la carte pour vous faire une idée de la plage de valeurs de pixels. Vous pouvez également utiliser le gestionnaire de calques pour étirer les données de manière interactive, puis observer les valeurs minimale et maximale correspondant aux étirements des centiles ou de l'écart-type. Supposons que, grâce à cette expérimentation, vous déterminez que les données doivent être étirées sur [0, 3000]. Pour afficher l'image à l'aide de cette plage, utilisez :
Éditeur de code (JavaScript)
Map.addLayer(image, {min: 0, max: 3000}, 'custom visualization');
Notez que le paramètre visParams est un objet, avec des propriétés spécifiant min et max. (Pour en savoir plus sur les objets JavaScript, consultez le tutoriel JavaScript ou cette référence externe). Notez que le troisième paramètre de Map.addLayer() est le nom de la couche affichée dans le gestionnaire de couches. Le résultat doit ressembler à la figure 1. Passez la souris sur la zone Calques à droite pour voir l'effet du changement de nom de ce calque.
Pour afficher une seule bande à l'aide d'une palette de couleurs, ajoutez une propriété palette à l'objet visParams :
Éditeur de code (JavaScript)
Map.addLayer(image, {min: 0, max: 3000, palette: ['blue', 'green', 'red']}, 'custom palette');
Le résultat doit ressembler à la figure 2.
Digression : Palettes
Les palettes vous permettent de définir le jeu de couleurs des images à bande unique. Une palette est une liste de chaînes de couleur délimitées par une virgule, qui sont interpolées de manière linéaire entre les valeurs maximale et minimale des paramètres de visualisation (ou les valeurs par défaut selon le type de bande, comme décrit précédemment). Par exemple, les pixels inférieurs ou égaux au minimum seront affichés avec la première couleur de la liste, tandis que les pixels supérieurs ou égaux au maximum seront affichés avec la dernière couleur de la liste. Les couleurs intermédiaires sont étirées de manière linéaire vers les valeurs de pixel intermédiaires.
Les couleurs sont définies à l'aide du schéma de valeurs de couleur CSS standard du Web (pour en savoir plus, consultez cette référence externe). Les couleurs peuvent être spécifiées par leur nom ou sous forme de chaînes hexadécimales indiquant la combinaison de rouge, de vert et de bleu. La valeur la plus faible dans l'une des trois positions est 00 (représentant le nombre décimal 0), tandis que la valeur la plus élevée est FF (représentant le nombre décimal 255). La chaîne "000000" représente la couleur noire, "FFFFFF" le blanc, "FF0000" le rouge, "00FF00" le vert et "0000FF" le bleu. Pour en savoir plus, consultez la section Palettes de couleurs. D'autres étirements sont possibles à l'aide de descripteurs de calques stylisés, comme décrit dans cette section.
Plus loin dans ce tutoriel, vous apprendrez à afficher des images multibandes. Mais d'abord, consultez la page suivante pour découvrir comment effectuer des calculs avec des images.