Styliser une couche à l’aide d’Arcade

Vous allez créer une expression Arcade et l'utiliser pour attribuer un style à une couche de votre carte. L'expression Arcade va calculer la consommation d'électricité annuelle par habitant. Elle va commencer par la consommation d’électricité annuelle dans chaque pays, puis la diviser par la population totale du pays. Ce calcul est important car il constitue un moyen de comparer de façon significative la consommation d'électricité en tenant compte des grands écarts de population entre les différents pays du monde. Vous allez ensuite attribuer un style à la couche des pays du monde en utilisant les valeurs de consommation d'électricité annuelle par habitant résultant de ce calcul.

Vous allez commencer par ajouter les couches à la carte et choisir un fond de carte différent.

Ajouter des couches à la carte et la modifier

Vous allez créer une nouvelle carte dans Map Viewer. Vous allez ensuite ajouter deux couches, Global Power Plants et World Countries Electricity Consumption, à la carte et en modifier le fond.

Remarque :

Map Viewer est l’outil de cartographie nouvelle génération de ArcGIS Online. Il vise à susciter les expérimentations et la créativité en offrant une expérience optimisée pour les principaux processus cartographiques.

  1. Connectez-vous à votre compte d’organisation ArcGIS.
    Remarque :

    Si vous ne disposez pas d’un compte d’organisation, consultez les options disponibles pour accéder aux logiciels.

  2. Sur le ruban, cliquez sur Map (Carte).

    Bouton Carte

    Remarque :

    Selon vos paramètres organisationnels et utilisateur, il est possible que vous ayez ouvert Map Viewer Classic. ArcGIS Online propose deux Map Viewers pour afficher, utiliser et créer des cartes. Pour obtenir plus d’informations sur les visionneuses de carte disponibles et savoir celle qu’il convient d’utiliser, consultez ce FAQ.

    Ce didacticiel utilise Map Viewer.

  3. Si nécessaire, dans la fenêtre contextuelle, cliquez sur Open in Map Viewer (Ouvrir dans Map Viewer) ou, sur le ruban, cliquez sur Open in Map Viewer (Ouvrir dans Map Viewer).

    Map Viewer s’ouvre.

    Map Viewer

    Vous allez maintenant ajouter la première couche, Global Power Plants, à la couche.

  4. Dans la fenêtre Layers (Couches), cliquez sur Add (Ajouter).

    Bouton Add (Ajouter)

  5. Cliquez sur My Content (Mon contenu) et choisissez ArcGIS Online.

    Option ArcGIS Online

  6. Dans la barre de recherche, saisissez global power plants owner: Learn_ArcGIS (propriétaire des centrales électriques dans le monde : Learn_ArcGIS).

    La couche Global Power Plants apparaît dans les résultats de la recherche.

  7. Pour le résultat de recherche Global Power Plants (Centrales électriques dans le monde), cliquez sur le bouton Add (Ajouter).

    Recherchez des centrales électriques dans le monde.

    La couche s’affiche sur la carte.

    Couche Global Power Plants (Centrales électriques dans le monde)

    La couche contient la liste complète des centrales électriques dans le monde entier, symbolisée par type d’énergie. Vous allez maintenant ajouter la seconde couche dont vous allez avoir besoin dans ce processus.

  8. Dans la barre de recherche, copiez et collez le texte suivant : electricity consumption owner:Learn_ArcGIS (propriétaire de la consommation d’électricité : Learn_ArcGIS).
  9. Pour le résultat de la recherche World Countries Electricity Consumption, cliquez sur Add (Ajouter).

    La couche s’affiche sur la carte.

    Ajoutez la couche World Countries Electricity Consumption (Consommation électrique mondiale par pays).

    La couche contient des informations sur la population et la consommation électrique de chaque pays du monde.

    Couche World Countries Electricity Consumption (Consommation électrique mondiale par pays) couvrant les centrales électriques

    La couche est dessinée en haut de la couche Global Power Plants et la recouvre en partie. Vous allez donc changer l'ordre des couches.

  10. Dans la fenêtre Add layer (Ajouter une couche), cliquez sur le bouton Back (Retour) pour revenir à la fenêtre Layers (Couches).

    Bouton Retour

  11. Dans la fenêtre Layers (Couches), faites glisser la couche World Countries Electricity Consumption sous la couche Global Power Plants.

    Les entités de centrale électrique sont maintenant visibles en haut de la couche des pays.

    Les deux couches sont affichées

    De nombreuses centrales électriques sont proches les unes des autres dans certains pays. Pour mieux visualiser leur répartition, vous allez activer l'agrégation dans la couche.

  12. Dans la fenêtre Layers (Couches), cliquez sur la couche Global Power Plants pour la sélectionner.
  13. Dans la barre d’outils (claire) Settings (Paramètres), cliquez sur Aggregation (Agrégation).

    Bouton Aggregation (Agrégation)

  14. Dans la fenêtre Aggregation (Agrégation), activez le bouton bascule Enable aggregation (Activer l’agrégation).

    Bouton curseur d'activation de l'agrégation

    L’option Clustering (Agrégation) est activée par défaut.

  15. Pour Clustering (Agrégation), cliquez sur Options.

    Options Clustering (Agrégation)

    La fenêtre Clustering (Agrégation) apparaît.

  16. Dans la fenêtre Clustering (Agrégation), pour Cluster radius (Rayon de l’agrégat), faites glisser le curseur vers Low (Faible). Pour Size range (Plage de tailles), faites glisser le curseur droit vers la gauche.

    Options de taille et de rayon d'agrégation

    La couche des centrales électriques est maintenant symbolisée par des agrégations. Lorsque vous faites des zooms avant et arrière, les agrégations sont reconfigurées être adaptées à l'échelle actuelle. Chaque agrégation est étiquetée avec le nombre de centrales électriques qu'elle représente.

    Vous allez maintenant choisir un autre fond de carte pour que les entités de centrale électrique ressortent mieux sur la carte. Comme les points de cette couche sont représentés par des couleurs vives, vous pouvez créer du contraste en les plaçant sur un fond de carte neutre et foncé.

  17. Cliquez sur Back (Retour) et fermez la fenêtre Aggregation (Agrégation).

    Fermez la fenêtre Aggregation (Agrégation).

  18. Dans la barre d’outils (foncée) Contents (Contenu), cliquez sur Basemap (Fond de carte). Dans la fenêtre Basemap (Fond de carte), sélectionnez Dark Gray Canvas (Nuances de gris foncé).

    Fond de carte Dark Gray Canvas (Nuances de gris foncé).

    Le fond de carte s’actualise sur la carte.

    Fond de carte Nuances de gris foncé

  19. Fermez la fenêtre Basemap (Fond de carte).

    Vous allez maintenant réduire la barre d’outils Contents (Contenu) pour faire de la place et voir la carte.

  20. Au bas de la barre d’outils Contents (Contenu), cliquez sur Collapse (Réduire).

    Réduisez la barre d’outils Contents (Contenu).

    Vous allez ensuite enregistrer la carte.

  21. Dans la barre d’outils réduite Contents (Contenu), cliquez sur Save and open (Enregistrer et ouvrir), puis sélectionnez Save as (Enregistrer sous).

    Enregistrer sous dans le menu Enregistrer et ouvrir

  22. Dans la fenêtre Save map (Enregistrer la carte), renseignez les informations suivantes :
    • Pour Title (Titre), saisissez Global Power Generation and Consumption (Production et consommation électrique mondiale), suivi de vos initiales.
    • Pour Tags (Balises), saisissez electricity consumption, power plants (consommation d’électricité, centrales électriques) et appuyez sur Entrée après chaque balise.
    • Pour Summary (Synthèse), saisissez This map shows power plants around the world, categorized by electricity type (Cette carte affiche les centrales électriques dans le monde, classées par type d'énergie).

    Fenêtre Save map (Enregistrer la carte)

  23. Cliquez sur Save (Enregistrer).

Explorez les données et l'éditeur d'expressions Arcade.

Vous allez maintenant explorer l’éditeur d’expression Arcade et l’utiliser pour attribuer un style à la couche World Countries Electricity Consumption. Votre objectif est de comparer facilement la consommation d'électricité annuelle dans chaque pays. Pour ce faire, vous allez construire une expression Arcade qui renvoie la consommation d'électricité annuelle par habitant en divisant la consommation d'électricité annuelle (en kilowattheures) d'un pays par sa population totale. Cela permettra de comparer de façon significative la consommation d'électricité en tenant compte des grands écarts de population entre les différents pays du monde.

Remarque :

On appelle ce type de calcul normalisation. Pour chaque pays, vous allez normaliser la consommation d'électricité par la population totale.

Avant de commencer à construire l'expression Arcade, vous allez examiner la table attributaire de la couche.

  1. Dans la barre d’outils Contents (Contenu), cliquez sur le bouton Layers (Couches).

    Bouton Couches

  2. Dans la fenêtre Layers (Couches), pour la couche World Countries Electricity Consumption, cliquez sur le bouton Options, puis sur Show table (Afficher la table).

    Option de menu Afficher la table

    La table attributaire s’affiche.

    Remarque :

    Pour avoir plus d’espace à l’écran, vous pouvez fermer la fenêtre Properties (Propriétés).

    Table attributaire

    La table comprend le champ COUNTRY qui répertorie les noms de pays, un champ Annual Electricity Consumption (Consommation d'électricité annuelle) avec les valeurs en kilowattheures (kWh) et un champ Pop (Contextuel) qui contient la population totale de chaque pays. Il s'agit là des attributs que vous allez utiliser dans l'expression Arcade.

    Remarque :

    Le kilowattheure est la mesure courante de la consommation électrique dans le temps. Si vous regardez attentivement votre facture d'électricité, vous constaterez que votre consommation mensuelle est généralement exprimée en kilowattheures.

    Vous allez vous familiariser avec Arcade. Arcade est un langage d’expression léger et sécurisé rédigé pour une utilisation dans ArcGIS. À l’instar d'autres langages d’expression, il permet d’effectuer des opérations mathématiques, de manipuler du texte et d’évaluer des instructions logiques. Arcade a été conçu spécifiquement pour créer des visualisations personnalisées et des étiquettes à la volée dans ArcGIS. Arcade permet aux utilisateurs de manipuler des données existantes et de dériver de nouvelles analyses via la création, le partage et l'exécution d'expressions personnalisées dans ArcGIS Pro, ArcGIS Runtime, ArcGIS Online, ArcGIS Enterprise et le ArcGIS API for JavaScript.

    Dans Map Viewer, Arcade est utile pour travailler avec des données dans étiquettes et les fenêtres contextuelles et pour attribuer un style à une couche. Vous pouvez élaborer et appliquer des expressions Arcade à l'aide de l'éditeur d'expressions Arcade. Vous allez maintenant ouvrir et explorer l'éditeur d'expressions. Votre objectif étant d'attribuer du style à la couche World Countries Electricity Consumption, vous allez ouvrir l'éditeur d'expressions depuis la fenêtre Styles de cette couche.

  3. Dans la fenêtre Layers (Couches), vérifiez que la couche World Countries Electricity Consumption est sélectionnée, puis dans la barre d’outils Settings (Paramètres), cliquez sur Styles.

    Bouton Styles de la barre d’outils Settings (Paramètres)

  4. Dans la fenêtre Styles, sous Choose attributes (Choisir des attributs), cliquez sur Expression.

    Fenêtre Styles

    La fenêtre de l’éditeur d’expressions Arcade apparaît.

  5. Cliquez sur l’icône de développement pour afficher les onglets latéraux.

    Bouton Expand (Développer)

    Révisez les différentes sections de la fenêtre de l’éditeur. C’est dans la fenêtre d’expression que vous allez créer l’expression. Les onglets Profile variables (Variables de profil) et Functions (Fonctions) contiennent les éléments à utiliser dans l’expression. L’onglet Help (Aide) ouvre la page d’aide Arcade.

    Onglets de la fenêtre d’une expression

  6. Examinez l’onglet Profile variables (Variables de profil).

    Cet onglet comprend la liste des variables prédéfinies, notamment les champs attributaires et la géométrie des entités de la couche.

  7. Cliquez sur l'onglet Fonctions.

    Cet onglet répertorie les fonctions Arcade. Vous pouvez cliquer sur le bouton d'information à droite de chaque fonction pour accéder à l'aide intégrée correspondante sur ses paramètres, sa syntaxe et son utilisation.

  8. Cliquez sur l’onglet Help (Aide).

    Cet onglet mène à la documentation Arcade.

  9. Cliquez sur le bouton Exécuter.

    bouton Run

    Les onglets Output (Sortie), Console et Log (Journal) apparaissent avec le résultat null. Une fois l’expression créée, vous pouvez cliquer sur le bouton Run (Exécuter) pour tester la sortie de l’expression. Mais pour l’heure, comme vous n’avez pas écrit de code Arcade, donc les onglets Output (Sortie) et Log (Journal) ne contiennent pas beaucoup de données.

Créer une expression Arcade pour la consommation d'électricité par habitant

Vous allez maintenant commencer à élaborer votre expression Arcade pour attribuer un style à la couche World Countries Electricity Consumption. Vous allez commencer par définir une variable pour accéder au champ attributaire Annual Electricity Consumption (KwH) (Consommation électrique annuelle (en kWh)).

  1. Dans la fenêtre de génération d’une expression, dans la ligne 1, saisissez (ou copiez et collez) var annualConsumptionKwh =.

    Déclarer la première variable

    AnnualConsumptionKwh est le nom de la nouvelle variable. L'utilisation de var <variableName> initialise des variables dans la mémoire pour une utilisation ultérieure dans l'expression. Vous allez spécifier la valeur de la variable à l'étape suivante.

  2. Cliquez sur l’onglet Profiles variables (Variables de profil). Sur l’onglet Profile variables (Variables de profil), cliquez sur la flèche en regard de $feature.

    Profile variables (Variables de profil)

  3. Sous Values (Valeurs), cliquez sur la variable $feature.Annual_Electricity_Consumption_.

    Insérez le premier champ attributaire.

    La chaîne est copiée dans la fenêtre d’expression, terminant ainsi la première ligne de code.

    Remarque :

    Annual_Electricity_Consumption_ est le nom de l’attribut tandis que Annual Electricity Consumption est l’alias, une façon plus conviviale de faire référence à l’attribut.

  4. Dans la fenêtre d’expression, appuyez sur la touche Entrée pour commencer la ligne suivante de l’expression.

    Première ligne de code terminée

    Toute autre référence à la variable annualConsumptionKwh va accéder à la valeur attributaire Annual Electricity Consumption (KwH) (Consommation électrique annuelle (en kWh)) pour chaque entité de la couche (dans ce cas, chaque pays du monde).

    Vous allez maintenant tester la première ligne de votre expression. Un bon moyen de tester une variable est de demander à Arcade de renvoyer sa valeur. Vous pouvez pour ce faire utiliser une instruction return.

  5. Dans la fenêtre Expression, saisissez return annualConsumptionKwh et appuyez sur la touche Entrée.

    Ajoutez la première instruction de retour.

  6. Cliquez sur le bouton Exécuter.

    Sur l’onglet Output (Sortie), la valeur 157200000 apparaît, ainsi que le type de données Number (Nombre).

    Résultat du premier test

    Remarque :

    Pour simplifier le test des expressions, l'éditeur d'expressions Arcade utilise la première entité de la couche (triée par ID d'objet) pour alimenter les attributs avec des valeurs d'exemple. La première entité de la couche World Countries Electricity Consumption (Consommation électrique mondiale par pays) se trouve être American Samoa (Samoa américaines), dont la consommation électrique annuelle s'élève à 157 200 000 kWh et la population, à 46 306 habitants.

    Le résultat renvoyé pour votre expression est en effet la consommation électrique annuelle des Samoa américaines, 157 200 000 kWh. Comme il s'agit de la valeur attendue, cela signifie que votre code fonctionne comme souhaité.

    Vous allez maintenant définir une variable pour accéder au champ Population.

  7. Dans la fenêtre d’expression, à la fin de la première ligne de code, appuyez sur la touche Entrée pour ajouter une nouvelle ligne. Entrez var population =.
  8. Si nécessaire, sur l’onglet Profile variables (Variables de profil), cliquez sur la flèche en regard de l’onglet $feature. Sous Values (Valeurs), sélectionnez $feature.POP pour ajouter la valeur attributaire de population à l’expression.

    Vous allez maintenant utiliser l'instruction return pour tester cette nouvelle variable.

  9. Sur la ligne return, remplacez annualConsumptionKwh par population.

    Créer une variable pour la population

    Remarque :

    L'attribut précédent utilisait la notation ["field"] car elle contenait des traits de soulignement. Le champ POP n'en contenant pas, Arcade va utiliser une notation plus simple. Lorsque vous ajoutez un attribut dans l’onglet Profile variables (Variables de profil) au lieu de le saisir directement, le format correct est sélectionné sans intervention de votre part. et d’éviter les fautes d’orthographe.

  10. Cliquez sur Run (Exécuter).

    L’onglet Output (Sortie) indique la valeur 46366, ce qui correspond bien à la population des Samoa américaines. Votre code continue donc de se comporter comme attendu.

    L"étape suivante consiste à calculer la consommation électrique par habitant. Pour ce faire, vous allez utiliser les valeurs enregistrées dans les deux variables et diviser la consommation d'électricité annuelle par la population. Vous allez stocker le résultat dans une troisième variable, nommée consumptionPerCapita.

  11. Dans la fenêtre d’expression, appuyez sur la touche Entrée pour ajouter une nouvelle ligne avant la ligne return population. Saisissez var consumptionPerCapita = annualConsumptionKwh / population.
  12. Sur la ligne return, remplacez population par consumptionPerCapita.

    Créez la variable consumptionPerCapita.

  13. Cliquez sur Run (Exécuter).

    L’onglet Output (Sortie) indique 3390,415390587931, qui est bien le quotient de 157 200 000 par 46 366.

    Pour tester une plus grande variété de cas, vous pouvez réattribuer la variable population avec un nombre littéral.

  14. Dans la fenêtre d’expression, appuyez sur la touche Entrée pour ajouter une nouvelle ligne après la ligne var population = $feature.POP. Entrez population = 40000.

    Déclarer une variable avec une valeur littérale

  15. Cliquez sur Run (Exécuter).

    Le résultat est mis à jour avec le nombre 3 930, qui est le quotient de 157 200 000 par 40 000.

  16. De même, vous pouvez test votre expression avec des valeurs différentes de consommation d'électricité annuelle et de population.
  17. Supprimez la ligne de code population = 40000.
    Remarque :

    L'instruction return n'est pas utilisée uniquement à des fins de test. Elle va aussi servir à mettre le résultat final de l'expression à disposition dans la carte. Par exemple, à présent que le résultat final est renvoyé dans votre expression, vous allez pouvoir l'utiliser pour attribuer un style à la couche des pays.

    L'expression finale est affichée ci-dessous.

    
    // Set variables
    var annualConsumptionKwh = $feature["Annual_Electricity_Consumption_"]
    var population = $feature.POP
    
    // Calculate the electricity consumption per capita
    var consumptionPerCapita = annualConsumptionKwh / population
    
    // Return the consumption per capita
    return consumptionPerCapita

    Pour rendre votre code plus lisible, des commentaires ont été ajoutés.

    Remarque :

    Pour rendre votre code plus lisible et simplifier ses mises à jour futures, l'ajout de commentaires, désignés en début de ligne par // est une très bonne idée. Les commentaires sont ignorés par Arcade et ne sont destinés qu'aux personnes qui liront le code.

    Vous allez maintenant donner un nom à votre expression. Le nom de l'expression doit être significatif car il va essentiellement servir de nom d'un nouveau champ dans la couche. Il sera utilisé dans la légende de la carte puis, plus tard, pour identifier l'expression, lorsque vous la mentionnerez ou s'il faut la mettre à jour.

  18. Cliquez sur le bouton Edit (Mettre à jour) en regard de New Expression (Nouvelle expression).

    Bouton de mise à jour de la nouvelle expression

    Remarque :

    Vous pouvez aussi cliquer directement sur l’expression pour mettre à jour le titre.

  19. Dans la zone de texte New Expression (Nouvelle expression), saisissez Consommation électrique par habitant (en kWh), puis cliquez en dehors de la zone de texte.

    Remplacer le nom de l’expression

  20. Cliquez sur Done (Terminé).

    La fenêtre de l’éditeur Arcade se ferme et l’expression est ajoutée à la liste des attributs pouvant être utilisés pour attribuer un style à la couche World Countries Electricity Consumption.

  21. Depuis la barre d’outils Contents (Contenu), cliquez sur Save and open (Enregistrer et ouvrir), puis choisissez Save (Enregistrer).

    L’enregistrement de la carte va enregistrer tout ce que vous avez fait dans la carte, y compris les expressions que vous avez créées.

Styliser la couche

Vous êtes maintenant prêt à attribuer un style à la couche World Countries Electricity Consumption à l'aide de l'expression Arcade que vous venez de créer.

  1. Dans la fenêtre Styles, passez en revue les paramètres actuels.

    Dans la fenêtre Styles, la nouvelle expression, Electricity consumption per capita (kWh) (Consommation électrique par habitant [kWh]) a été appliquée automatiquement pour symboliser la couche World Countries Electricity Consumption. Par défaut, le style de dessin Counts and Amounts (color) (Totaux et quantités [couleur]) est sélectionné ; ce dernier correspond à la manière dont vous finirez par définir le style de la couche. Vous allez toutefois changer le style pour choisir Counts and Amounts (size) (Totaux et quantités [taille]) pour voir la différence.

  2. Sous Pick a style (Sélectionner un style), cliquez sur Counts and Amounts (size) (Totaux et quantités [taille]).

    Style par défaut de la nouvelle expression

    Comme la couche est difficile à voir, vous allez temporairement désactiver la couche Global Power Plants.

  3. Dans la fenêtre Layers (Couches), cliquez sur le bouton de visibilité de la couche Global Power Plants pour la désactiver.

    Désactiver la couche

    La consommation électrique par habitant de chaque pays est représentée par des points de tailles différentes.

    Carte avec symbolisation des totaux et montants par taille

    Remarque :

    Comme chaque pays a des valeurs de consommation d'électricité totale et de population différentes dans les champs correspondants, le résultat par habitant est aussi différent pour chacun, même si l'expression Arcade est la même. C'est précisément ce qui rend Arcade si puissant : cette capacité de rechercher les valeurs d'entités spécifiques pour renvoyer de nouvelles valeurs à la volée. Une autre fonctionnalité de Arcade illustrée ici est que vous n'avez pas besoin d'être propriétaire des couches de données d'origine pour générer de nouvelles informations dérivées.

    Pour mieux voir la couche des pays en même temps que la couche des centrales électriques, vous allez utiliser une autre symbolisation.

  4. Dans la fenêtre Styles, choisissez le style de dessin Counts and Amounts (color) (Totaux et montants (Couleur)).

    Choisissez le nouveau style de dessin.

    Un dégradé de couleurs intuitif et convivial adapté aux arrière-plans foncés est sélectionné automatiquement pour le style Counts and Amounts (Totaux et montants). Ainsi, les pays avec une faible consommation d'électricité par habitant s'affichent en bleu foncé, ceux avec une consommation élevée en turquoise.

    Carte avec symbolisation des totaux et montants par couleur

    Remarque :

    Lorsque l'arrière-plan de votre carte est foncé, les valeurs les plus faibles sont affichées dans une couleur plus foncée et les valeurs les plus élevées dans une couleur plus claire ou plus vive. Cela permet de mettre en valeur les nombre les plus élevés.

  5. Cliquez sur Done (Terminé) pour fermer la fenêtre Styles.
  6. Dans la fenêtre Layers (Couches), activez à nouveau la couche Global Power Plants.

    Les deux couches sont stylisées

    Grâce à ce nouveau style, il est désormais possible de visualiser les deux couches en même temps.

    Vous allez désactiver les fenêtres d'information contextuelles de la couche des pays afin que les utilisateurs puissent sélectionner plus facilement les entités de centrale électrique.

  7. Dans la fenêtre Layers (Couches), vérifiez que la couche World Countries Electricity Consumption (Consommation électrique mondiale par pays) est sélectionnée, puis, dans la barre d’outils Settings (Paramètres), sélectionnez Pop-ups (Fenêtres contextuelles).

    Pop-ups (Fenêtres contextuelles) dans la barre d’outils Settings (Paramètres)

  8. Dans la fenêtre Pop-ups (Fenêtres contextuelles), désactivez l’option Enable pop-ups (Activer les fenêtres contextuelles) et fermez la fenêtre Pop-ups (Fenêtres contextuelles).

    Désactivez les fenêtres contextuelles.

  9. Enregistrez la carte.

    Votre carte est maintenant dotée d'un style intuitif qui affiche les schémas de consommation d'électricité par habitant et la production électrique dans le monde entier.

  10. Passez en revue le contenu de la carte.

    Symbolisation finale de la carte

    Vous pouvez comparer votre pays aux autres en un coup d'œil. On remarque une plus forte consommation d'électricité par habitant dans les pays très industrialisés en Europe occidentale et en Amérique du Nord, ainsi que dans les états producteurs du Golfe. Vous pouvez voir que les pays avec une plus grande consommation par habitant ont tendance à avoir une plus grande concentration de centrales électriques, selon toute logique. Dans les pays en développement, on compte moins de centrales électriques et une consommation par habitant moins importante.

Vous avez créé une carte et visualisé des centrales électriques avec une symbolisation par agrégation. Vous avez ensuite utilisé une expression Arcade pour visualiser la consommation électrique annuelle par habitant dans le monde entier.


Configurer une fenêtre contextuelle à l’aide d’Arcade

Vous vous êtes déjà familiarisé avec Arcade et avez utilisé une expression Arcade pour symboliser la couche des pays du monde. Vous allez maintenant utiliser une expression Arcade pour afficher les données de la couche des centrales électriques dans une fenêtre contextuelle informative. Cela vous permettra de mieux comprendre la production d'énergie des centrales.

Explorer les fenêtres contextuelles et les attributs des centrales électriques du monde entier

Pour commencer, vous allez explorer les attributs Global Power Plants (Centrales électriques dans le monde) et observer les fenêtres contextuelles associées à la couche.

La couche Global Power Plants comporte un attribut qui donne une estimation de la production électrique annuelle de chaque centrale en gigawattheures (gWh). Cet attribut se nomme estimated_generation_gwh. Cette information est utile, mais vous préfèreriez exprimer cette valeur de façon plus compréhensible pour le grand public : en nombre d'ampoules de 60 watts que la centrale pourrait alimenter pendant un an. Vous allez effectuer cette conversion au moyen d'une expression Arcade et afficher la nouvelle valeur dans une phrase qui s'affichera dans la fenêtre contextuelle de la couche. Certaines centrales n'ayant pas de valeur pour l'attribut estimated_generation_gwh, vous allez aussi devoir gérer ces valeurs manquantes dans l'expression Arcade.

Pour commencer, vous allez examiner la table attributaire de la couches des centrales électriques.

  1. Si ce n'est pas déjà fait, connectez-vous à ArcGIS Online. Dans la barre d'outils, cliquez sur Content (Contenu) et accédez à la carte Global Power Generation and Consumption (Production et consommation électrique mondiale) que vous avez créé dans le module 1.

    Bouton Contenu sur la page d’accueil d’

  2. Cliquez sur le menu d’options en regard de la carte Web Global Power Generation and Consumption (Production et consommation électrique mondiale) et choisissez Open in Map Viewer (Ouvrir dans Map Viewer).

    Ouvrir dans Map Viewer

  3. Dans la fenêtre Layers (Couches), pour la couche Global Power Plants (Centrales électriques dans le monde), cliquez sur le bouton Options et choisissez Show table (Afficher la table).
  4. Dans la table attributaire Global Power Plants (Centrales électriques dans le monde), observez les champs. Utilisez la barre de défilement horizontal pour voir tous les champs.

    Table attributaire Centrales électriques dans le monde

    Parmi les différents attributs de la couche, remarquez les suivants :

    • Le champ country_long indique le nom du pays où se trouve la centrale électrique.
    • Le champ name (nom) indique le nom de la centrale électrique.
    • Le champ fuel (énergie) indique le type de centrale électrique.
    Remarque :

    Vous pouvez être amené à élargir la colonne pour voir l'alias de champ attributaire en entier.

  5. Faites défiler vers la droite jusqu'à la dernière colonne, estimated_generation_gwh.

    Comme mentionné plus haut, ce champ contient une estimation de la production électrique annuelle de la centrale, exprimée en gigawattheures (gWh). Un gigawattheure est égal à un million de fois l'électricité d'un kilowattheure.

  6. Fermez la table attributaire Global Power Plants (Centrales électriques dans le monde).

    Vous allez maintenant explorer les fenêtres contextuelles de la couche.

  7. Sur la carte, effectuez un zoom sur la zone d’intérêt.
    Remarque :

    Comme vous avez activé l’agrégation dans la couche Global Power Plants, vous devez zoomer jusqu’à ce que les agrégats se dissolvent en entités uniques pour que la fenêtre contextuelle de l’entité individuelle apparaisse.

  8. Sur la carte, sélectionnez la couche Global Power Plants pour afficher sa fenêtre contextuelle d'origine.

    Fenêtre contextuelle par défaut

La fenêtre contextuelle affiche déjà des informations utiles, comme le type et la capacité de la centrale électrique. Vous allez compléter cette fenêtre contextuelle avec une information supplémentaire : la production électrique annuelle de la centrale.

Convertir les unités de production électrique avec Arcade

Vous allez maintenant ouvrir l’éditeur d’expressions Arcade pour générer la nouvelle expression. L'objectif étant de personnaliser la fenêtre contextuelle, vous allez ouvrir l'éditeur d'expressions depuis la fenêtre de configuration Pop-ups (Fenêtres contextuelles).

  1. Dans la fenêtre Layers (Couches), vérifiez que la couche Global Power Plants est sélectionnée.

    Couche Centrales électriques dans le monde sélectionnée

  2. Si nécessaire, dans la barre d’outils Settings (Paramètres) (claire), cliquez sur Pop-ups (Fenêtres contextuelles). Dans la fenêtre Pop-ups (Fenêtres contextuelles), cliquez sur Attribute expressions (Expressions attributaires).

    Fenêtre Fenêtres contextuelles

    Vous allez maintenant créer la nouvelle expression Arcade.

  3. Cliquez sur Add Expression (Ajouter une expression) pour ouvrir la fenêtre de l’éditeur d’expressions Arcade.

    Bouton Add Expression (Ajouter une expression)

    La fenêtre de l’éditeur s’affiche.

    Remarque :

    Il existe déjà une expression Pop-up color (Couleur de fenêtre contextuelle) pour la couche Global Power Plants. Elle sert à générer les couleurs de symbolisation en fonction du type d'énergie.

    Vous allez donner un nom à votre expression.

  4. Modifiez le titre de l’expression en Estimated Annual Generation in Lightbulbs (Estimation de production annuelle exprimée en ampoules électriques).

    Bouton de mise à jour

    Vous allez maintenant générer la nouvelle expression Arcade. Pour commencer, créez une variable, yearLightbulbPower, contenant le nombre de kilowattheures requis pour alimenter une ampoule de 60 watts pendant un an.

    Une ampoule à incandescence consomme 60 wattheures, soit 0,6 kilowattheure d'électricité par heure d'utilisation. Pour connaître le nombre de kilowattheures nécessaires pour alimenter une ampoule de 60 watts pendant un an, il faut donc multiplier 0,6 kilowattheure par 24 heures, puis par 365 jours.

  5. Sur la première ligne de la fenêtre de l’expression, saisissez (ou copiez et collez) var yearLightbulbPower = 0.06 * 24 * 365.

    Vous allez maintenant ajouter une instruction de retour pour tester la variable.

  6. Appuyez sur Entrée et ajoutez return yearLightbulbPower.

    Deux premières lignes de l'expression

    Vous allez maintenant exécuter le code.

  7. Cliquez sur le bouton Exécuter.

    Sur l’onglet Output (Sortie), la valeur est 525,6. Il s'agit bien du produit de 0,06 x 24 x 365, ce qui signifie que votre code fonctionne correctement.

    Résultat de la variable yearLightbulbPower

    Vous allez maintenant créer une variable contenant le nom de la centrale électrique en utilisant le champ name (nom) de la couche Global Power Plants.

  8. Dans la fenêtre de l’expression, ajoutez une nouvelle ligne avant l’instruction return et saisissez var plantName =.

    Seconde variable

  9. Sur l’onglet Profile variables (Variables de profil), cliquez sur la flèche en regard de $feature.

    Flèche permettant de développer l'élément d'entité

    La liste des attributs de la couche des centrales électriques apparaît.

    Remarque :

    L’apparence de l’onglet Profile variables (Variables de profil) est légèrement différente par rapport au moment où vous avez configuré la symbologie de la couche des pays du monde dans le module précédent. Cela est dû au fait que les fenêtres contextuelles permettent d’utiliser des variables de profil supplémentaires telles que FeatureSets.

  10. Faites défiler la liste Values (Valeurs) et cliquez sur $feature.name pour terminer la ligne de code.
  11. Dans l'instruction return, remplacez yearLightbulbPower par plantName pour tester votre seconde variable.

    Instruction Return avec code de nom de centrale

  12. Cliquez sur le bouton Exécuter.

    Dans la table Output (Sortie), la valeur est Kajaki Hydroelectric Power Plant Afghanistan. Ce nom est celui de la première centrale électrique répertoriée dans la table attributaire et il a été attribué par défaut comme exemple.

    À l'étape suivante, vous allez créer une variable, annualGenerationGwh, contenant la valeur attributaire de production d'électricité annuelle.

  13. Dans la fenêtre de l’expression, ajoutez une nouvelle ligne avant l’instruction return et saisissez var annualGenerationGwh =.
  14. Dans la fenêtre Profile variables (Variables de profil), cliquez sur $feature.estimated_generation_gwh.
  15. Dans l'instruction return, remplacez plantName parannualGenerationGwh pour tester la dernière variable.

    Créez la variable annualGenerationGwh.

  16. Cliquez sur le bouton Exécuter.

    L’onglet Output (Sortie) semble ne pas contenir de valeur et indique Null. Cela ne correspond pas au résultat attendu ; vous allez essayer de comprendre pourquoi.

    Résultat Null

    Vous allez vérifier si la valeur d’exemple actuelle pour cet attribut est vide. La fonction Arcade permettant de tester si une variable est vide ou non est IsEmpty. La fonction IsEmtpy renvoie la valeur true si la valeur fournie est null ou un texte vide (par exemple ''). Elle renvoie false dans tous les autres cas, notamment les dictionnaires et les tableaux vides.

  17. Dans la fenêtre de l’expression, pour var annualGenerationGwh = $feature["estimated_generation_gwh"], remplacez $feature["estimated_generation_gwh"] par IsEmpty($feature["estimated_generation_gwh"]).

    Vérifiez si la valeur est vide

  18. Cliquez sur Run (Exécuter).

    Sur l’onglet Output (Sortie), la valeur est affichée avec le type Boolean (Booléen) et est True.

    La valeur booléenne de l’enregistrement est true

    Cela indique que Kajaki Hydroelectric Power Plant Afghanistan n’a pas de valeur pour l’attribut estimated_generation_gwh. C’est la raison pour laquelle le test a produit un résultat vide.

    Remarque :

    Vous devez prêter une attention particulière à ces cas spéciaux de données manquantes dans votre expression Arcade. Cela sera approfondi plus loin dans le didacticiel. Pour l'heure, vous allez terminer le code pour un cas normal, dans lequel la valeur attributaire est bien présente.

    Pour poursuivre le développement de l’expression Arcade, vous allez définir manuellement une valeur exemple de 10 gWh.

  19. Dans la fenêtre de l’expression, pour var annualGenerationGwh = IsEmpty($feature["estimated_generation_gwh"]), supprimez la fonction IsEmpty ainsi que les parenthèses ouvrante et fermante.

    IsEmpty supprimé

    L’expression reprend son format précédent.

  20. Appuyez sur Entrée pour ajouter une nouvelle ligne après la ligne var annualGenerationGwh = $feature["estimated_generation_gwh"]. Saisisez annualGenerationGwh = 10.
  21. Cliquez à nouveau sur le bouton Run (Exécuter).

    Sur l’onglet Output (Sortie), la valeur est désormais 10, comme attendu, et le type de données est Number (Nombre).

    Le résultat du test est 10.

    Dans votre code Arcade, vous allez maintenant calculer la production électrique annuelle exprimée en ampoules de 60 watts en fonction de la valeur de la variable annualGenerationGwh. La première étape consiste à convertir la valeur de kilowattheures (kWh) en gigawattheures (gWh) et d'insérer le résultat dans une nouvelle variable. Un gigawatt comprend un million de kilowatts. Vous devez donc multiplier la variable annualGenerationGwh par un million pour la convertir en kWh.

  22. Ajoutez une nouvelle ligne au-dessus de l’instruction return et saisissez var annualGenerationKwh = annualGenerationGwh * 1000000.
  23. Dans l'instruction return, remplacez annualGenerationGwh par annualGenerationKwh.

    Créez la variable annualGenerationKwh.

  24. Cliquez sur Run (Exécuter) pour évaluer l’expression.

    Le résultat est 10 000 000, ce qui est le résultat attendu vu que votre valeur exemple est égale à 10.

    Dans cette section, vous avez commencé à développer votre seconde expression Arcade. Vous avez défini plusieurs variables et convertit la valeur de production électrique annuelle de gWh en kWh.

Effectuer des calculs et mettre en forme du texte avec Arcade

Vous allez maintenant effectuer les calculs principaux dans votre expression Arcade. Vous formaterez ensuite le résultat de sorte à l'afficher sous forme de texte.

Pour commencer, vous allez calculer le nombre d’ampoules de 60 watts que la centrale pourrait alimenter pendant un an en divisant sa production électrique annuelle en kWh (annualGenerationKwh) par le nombre de kWh requis pour alimenter une ampoule de 60 watts pendant un an (yearLightbulbPower).

Remarque :

Rappelez-vous que la variable yearLightbulbPower contient le résultat du produit de 0,06 x 24 x 365, qui est égal à 525,6.

  1. Ajoutez une nouvelle ligne au-dessus de l’instruction return et saisissez var annualGenInLightbulbs = annualGenerationKwh / yearLightbulbPower.
  2. Dans l'instruction return, remplacez annualGenerationKwh par annualGenInLightbulbs.

    Créez la variable annualGenInLightbulbs.

  3. Cliquez sur Run (Exécuter) pour évaluer l’expression.

    La valeur de Result (Résultat) est 19 025,87519025875, soit le quotient attendu de 10 000 000 / 525,6. Cela représente environ 19 025,87 ampoules.

    Mais il est toutefois plus parlant de renvoyer un nombre entier d'ampoules qu'un nombre décimal. Arcade peut vous aider en ce sens grâce à la fonction Round (Arrondi).

  4. Ajoutez une nouvelle ligne au-dessus de l’instruction return et saisissez var annualGenInLightbulbsRounded =.

    Vous allez maintenant rechercher la fonction Round (Arrondi) dans l'onglet Functions (Fonctions).

  5. Cliquez sur l'onglet Fonctions. Dans le champ de texte de recherche, saisissez round (arrondi).

    Fonction Arrondi

    La fonction Round (Arrondi) apparaît.

  6. Cliquez sur la fonction Round (Arrondi) pour l’insérer dans la fenêtre de l’expression.

    La fonction Round (Arrondi) est ajoutée à l’expression avec un paramètre d’espace réservé indiqué dans les parenthèses.

    Fonction Arrondi ajoutée à l’expression avec deux paramètres d’espace réservé

    Vous allez vérifier les informations de la fonction dans l'aide intégrée à l'application pour mieux comprendre quels sont les paramètres attendus.

  7. Sur l’onglet Functions (Fonctions), cliquez sur la flèche en regard de la fonction Round (Arrondi).

    Informations, bouton

  8. Vérifiez les informations de la fonction Round (Arrondi).

    Aide de la fonction Arrondi

    Le premier paramètre est le nombre à arrondir, dans votre cas, la variable annualGenInLightbulbs. Le second paramètre indique le nombre de décimales auquel le nombre doit être arrondi. Conservez la valeur par défaut, 0, pour que 19 025,87519025875 soit arrondi à 19 025, avec 0 décimale après la virgule.

  9. Lorsque vous avez fini de vérifier les informations de la fonction Round (Arrondi), cliquez sur la flèche en regard de Functions (Fonctions) pour quitter l’aide de l’application.

    Bouton Retour à la liste de fonctions

  10. Modifiez la ligne annualGenInLightbulbsRounded pour qu'elle ressemble à ceci :

    var annualGenInLightbulbsRounded = Round(annualGenInLightbulbs, 0)

    Remarque :

    Les paramètres d'une fonction doivent toujours être entre parenthèses et séparés par des virgules.

  11. Dans l'instruction return, remplacez annualGenInLightbulbs par annualGenInLightbulbsRounded.

    Créez la variable annualGenInLightbulbsRounded.

  12. Cliquez sur Run (Exécuter) pour évaluer l’expression.

    Le résultat est 19 026, comme prévu. Cela signifie 19 026 ampoules.

    Vous avez réussi à calculer correctement le nombre d'ampoules de 60 watts que chaque centrale électrique pourrait alimenter pendant un an. Mais ce n'est pas terminé. Vous allez maintenant mettre en forme ce nombre pour le rendre lisible et créer une phrase pour le mettre en contexte.

    À l'instar d'autres langages de programmation, Arcade intègre une méthode pour convertir un nombre en texte. Cette fonction s'appelle Text (Texte). Vous allez créer une nouvelle variable pour écrire le nombre d'ampoules sous forme de texte.

  13. Ajoutez une nouvelle ligne au-dessus de l’instruction return, saisissez var annualGenInLightbulbsText = .

    Vous allez maintenant rechercher la fonction Text (Texte) dans l'onglet Functions (Fonctions).

  14. Dans l'onglet Functions (Fonctions), recherchez text (texte). Dans la liste Text functions (Fonctions de texte), cliquez sur la fonction Text (Texte) pour l’insérer dans la fenêtre de l’expression.

    La nouvelle ligne ressemble à ceci :

    var annualGenInLightbulbsText = Text(value)

    Vous allez vérifier les informations de cette fonction dans l'aide intégrée à l'application pour mieux comprendre quels sont les paramètres attendus.

  15. Sur l’onglet Functions (Fonctions), cliquez sur la flèche en regard de la fonction Text (Texte).

    Le premier paramètre est le nombre à transformer en texte, dans votre cas, la variable annualGenInLightbulbsRounded. Le second paramètre est le modèle qui exprime le format souhaité. Par exemple, le modèle par défaut '# ###' ajoute une espace insécable en guise de séparateur des milliers. Ainsi, un nombre écrit 9563 devient 9 563.

  16. Lorsque vous avez fini de vérifier les informations, cliquez sur la flèche de retour pour quitter l’aide de l’application.
  17. Modifiez la ligne annualGenInLightbulbsText pour qu'elle ressemble à ceci :

    var annualGenInLightbulbsText = Text(annualGenInLightbulbsRounded, '###,###,###,###')

    Remarque :

    Le modèle '### ### ### ###' va ajouter des séparateurs pour les nombres plus grands que ceux concernés par le modèle par défaut, '# ###'. Dans la mesure où vous allez avoir des valeurs supérieures ou égales à des millions, vous avez besoin d'un masque plus long. Par exemple, un nombre écrit 735790325 va devenir 735 790 325.

  18. Dans l'instruction return, remplacez annualGenInLightbulbsRounded par annualGenInLightbulbsText.

    Créez la variable annualGenInLightbulbsText.

  19. Cliquez sur Run (Exécuter) pour évaluer l’expression.

    L’onglet Output (Sortie) indique "19,026", avec une virgule insérée, comme attendu. Le type est désormais text (texte).

    L'étape suivante consiste à créer une phrase complète qui contient le nombre formaté en texte et en explique la signification. Vous allez utiliser un littéral de modèle pour la réaliser.

    Remarque :

    Dans Arcade, un littéral de modèle est une façon d'insérer des valeurs de variable et des expressions dans une chaîne. Les littéraux de modèle sont entre apostrophes ouvrantes (`) et utilisent la syntaxe ${variableName} pour insérer des variables, des expressions ou toute valeur autre qu'une chaîne dans la chaîne. Pour en savoir plus sur les littéraux de modèle, reportez-vous à la rubrique d'aide Structure and Logic ArcGIS Arcade.

  20. Dans la fenêtre Expression, ajoutez une nouvelle ligne avant l’instruction return, puis copiez et collez les éléments suivants :

    var popupSentence = `It's estimated that ${ plantName } generates enough electricity to power ${ annualGenInLightbulbsText } 60-watt incandescent light bulbs for a year.`

    Remarque :

    Le littéral de modèle doit se trouver sur une ligne dans l'éditeur Arcade car le passage à la ligne suivante génèrerait une sortie sur plusieurs lignes.

  21. Dans la ligne de l'instruction return, remplacez annualGenInLightbulbsText par popupSentencepour tester la dernière variable.

    Créez la variable popupSentence.

  22. Cliquez sur le bouton Exécuter.

    Sur l’onglet Output (Sortie), la valeur est la phrase entière, dans laquelle les variables ${plantName} et ${annualGenInLightbulbsText} ont été remplacées par leurs valeurs actuelles.

    Le résultat du test est une phrase.

  23. Dans la fenêtre de l’expression, supprimez le code annualGenerationGwh = 10.
  24. Cliquez sur Done (Terminé) pour enregistrer l’expression et fermez la fenêtre de l’éditeur d’expressions Arcade.
  25. Dans la barre d’outils réduite Contents (Contenu), cliquez sur Save and open (Enregistrer et ouvrir) et cliquez sur Save (Enregistrer) pour enregistrer toutes vos modifications dans la carte.

    Enregistrez la carte.

Dans cette section, vous avez calculé le nombre d'ampoules de 60 watts que chaque centrale électrique pourrait alimenter pendant un an, mis en forme ce nombre pour le rendre lisible et créé une phrase pour le mettre en contexte.

Ajouter l'expression Arcade à une fenêtre contextuelle

Vous allez maintenant ajouter l’expression Arcade enregistrée à la fenêtre contextuelle et la tester sur une couche Global Power Plants sur la carte.

  1. Dans la fenêtre Attribute expressions (Expressions attributaires), cliquez sur le bouton de retour.

    Bouton Retour

  2. Dans la fenêtre Pop-ups (Fenêtres contextuelles), cliquez sur Text (Texte), puis sur Edit text (Modifier le texte).

    Elément de texte

    L’éditeur de texte contextuel s’ouvre, affichant le texte affiché actuellement dans la fenêtre contextuelle de la couche Global Power Plants. Vous allez ajouter le résultat de votre expression Arcade au texte existant.

  3. Dans l'éditeur de texte contextuel, placez votre curseur sur la ligne de texte en dessous du texte existant. Saisissez une accolade : {.

    La liste des champs et des expressions Arcade disponible apparaît.

    Insérez une accolade.

  4. Recherchez et sélectionnez l’expression que vous venez de créer, Estimated Annual Generation in Lightbulbs (Estimation de la production annuelle exprimée en ampoules électriques).

    Sélectionnez l'expression dans la liste déroulante.

    Remarque :

    Vous voyez que l'expression Arcade que vous avez créée est répertoriée comme n'importe quel autre champ attributaire disponible. Elle est facilement reconnaissable grâce au nom explicite que vous lui avez donné plus tôt.

  5. L’expression est ajoutée avec l’identifiant unique {expression/expr1}.

    Finaliser le texte contextuel

  6. Cliquez sur OK.

    L’'aperçu de la fenêtre contextuelle est mis à jour avec l’expression Arcade personnalisée que vous avez configurée.

    Aperçu de la fenêtre contextuelle de la couche des centrales électriques dans le monde

    Vous allez maintenant ouvrir dans la carte la fenêtre contextuelle d'une centrale électrique donnée pour voir comment l'expression Arcade s'affiche.

  7. Sur la carte, dans la barre d’outils verticale, cliquez sur le bouton Search (Rechercher).

    Bouton de recherche

  8. Dans la zone de recherche, saisissez Kitzingen, Bayern, Germany (Kitzingen, Bavière, Allemagne) et appuyez sur Entrée.

    La carte zoome sur la ville de Kitzingen, en Allemagne.

  9. Cliquez sur la centrale électrique à l'ouest de l'étiquette Kitzingen. Elle est symbolisée par une lumière verte car c'est une centrale photovoltaïque.

    Centrale électrique Kitzingen sur la carte

    La fenêtre contextuelle s'ouvre et le message que vous avez créé s'affiche. La phrase inclut le nombre d'ampoules de 60 watts que la centrale électrique pourrait alimenter pendant un an : 146 258.

    Texte dans la fenêtre contextuelle de Kitzingen

  10. Fermez la fenêtre contextuelle.

    Vous avez réussi à créer correctement une expression Arcade et à l'afficher dans la fenêtre contextuelle de la couche Global Power Plants (Centrales électriques dans le monde). Ceci étant, vous n'avez toujours pas traité le cas particulier dans lequel une centrale électrique n'a pas de valeur dans le champ estimated_generation_gwh. Vous allez le faire dans la section suivante.

Tester le cas spécial avec données manquantes

Vous allez maintenant gérer le cas dans lequel les données attributaires manquent. Pour commencer, vous allez regarder à quoi ressemble la fenêtre contextuelle dans ce cas-là.

  1. Cliquez sur le bouton Search (Rechercher). Dans la zone de recherche, saisissez Antananarivo, Analamanga, Madagascar et appuyez sur Entrée.

    La carte zoome sur la ville d'Antananarivo à Madagascar.

  2. Cliquez sur la centrale électrique au nord-ouest de l'étiquette Antananarivo. Elle est symbolisée en rouge car c'est une centrale au fioul.

    Fenêtre contextuelle pour Antananarivo sur la carte

    La fenêtre contextuelle s'ouvre et le message que vous avez créé s'affiche. Toutefois, le nombre d'ampoules de 60 watts indiqués est 0.

    Texte de la fenêtre contextuelle avec valeur manquante

    Cette indication est trompeuse. En effet, ce n'est pas que l'on estime que la centrale produit 0 gWh par an, mais que les données de production électrique annuelle ne sont tout simplement pas disponibles. Dans ce cas, il faudrait avoir un message différent qui explique clairement qu'aucune donnée n'est disponible. Vous allez retourner à l'expression Arcade et mettre en application ce comportement plus adéquat.

  3. Fermez la fenêtre contextuelle.
  4. Dans la fenêtre Layers (Couches), vérifiez que la couche Global Power Plants est sélectionnée.
  5. Dans la barre d’outils Settings (Paramètres), cliquez sur Pop-ups (Fenêtres contextuelles). Dans la fenêtre Pop-ups (Fenêtres contextuelles), cliquez sur Attribute expressions (Attribuer les expressions).
  6. Cliquez sur l’expression Estimated Annual Generation in Lightbulbs (Estimation de production annuelle exprimée en ampoules électriques) pour l’ouvrir dans la fenêtre de l’éditeur.

    Rouvrez l'éditeur d'expressions Arcade.

  7. Dans la fenêtre de l’éditeur, cliquez sur le bouton Run (Exécuter) pour vérifier que vous obtenez le même comportement que dans la fenêtre contextuelle.

    Le résultat du test est zéro watt.

    Sur l’onglet Output (Sortie), la valeur inclut la même phrase que dans la fenêtre contextuelle, avec le nombre trompeur de 0 ampoule.

    Remarque :

    Rappelez-vous que par défaut, l'éditeur Arcade utilise la première centrale électrique de la couche, Kajaki Hydroelectric Power Plant Afghanistan (Centrale hydroélectrique Kajaki, Afghanistan), et que vous avez précédemment que celle-ci n'a pas de valeur pour le champ estimated_generation_gwh.

Ajouter du code pour gérer des données manquantes

Vous allez maintenant ajouter du code à votre expression pour gérer le cas dans lequel des données manquent.

Pour mieux gérer le cas où il manque des données, l'expression Arcade doit tester si le champ estimated_generation_gwh a une valeur vide ou non.

  • Si elle l'est, vous renverrez un message indiquant qu'il manque des données.
  • Si elle ne l'est pas, vous continuerez d'afficher le message sur les ampoules de 60 watts.

Vous allez à nouveau utiliser la fonction IsEmpty. Vous allez enregistrer le résultat de ce test dans une nouvelle variable, generationCheck. Vous voulez réaliser le test dès que possible. Aussi, vous allez ajouter le nouveau code immédiatement après avoir lu la valeur du champ estimated_generation_gwh.

  1. Dans la fenêtre Expression, ajoutez une nouvelle ligne après la ligne qui commence par var annualGenerationGwh.

    Ajouter une ligne après la ligne var annualGenerationGwh

  2. Saisissez var generationCheck = .
  3. Cliquez sur l’onglet Functions (Fonctions) et recherchez la fonction IsEmpty.

    Recherchez la fonction IsEmpty.

  4. Cliquez sur la fonction IsEmpty pour l'ajouter à votre ligne de code.

    Ajoutez la fonction IsEmpy au code.

  5. Sur l’onglet Functions (Fonctions), cliquez sur la flèche en regard de la fonction IsEmpty pour en savoir plus sur son fonctionnement.

    Bouton d'informations sur IsEmpty

    IsEmpty prend en compte un paramètre unique (dans votre cas, il va évaluer le champ estimated_generation_gwh). Si la valeur est nulle ou vide, la fonction renvoie true (vrai) ; sinon, elle renvoie false (faux). Vous allez enregistrer la sortie de IsEmpty dans une variable, puis évaluer cette dernière pour voir si elle est vraie ou fausse.

  6. Lorsque vous avez fini de vérifier les informations sur IsEmpty, cliquez sur la flèche de retour en regard de Functions (Fonctions).
  7. Dans la fenêtre Expression, remplacez le texte de l’espace réservé value par annualGenerationGwh. La ligne entière doit se présenter comme suit :

    var generationCheck = isEmpty(annualGenerationGwh)

    Vous allez maintenant ajouter du code pour décider quoi faire en fonction de la valeur de la variable generationCheck. Pour ce faire, vous allez utiliser une instruction if, également dite instruction conditionnelle. La syntaxe de cette instruction est If (Si) (la condition est vraie) {faire quelque chose}. Pour en savoir plus sur les instructions conditionnelles, reportez-vous à la rubrique Structure and Logic ArcGIS Arcade.

  8. Ajoutez une nouvelle ligne après la ligne qui commence par var generationCheck.
  9. Dans cette nouvelle ligne, saisissez if (generationCheck) {. Appuyez sur la touche Entrée. Sautez une ligne et ajoutez une accolade droite } qui n’est pas mise en retrait.

    Ajoutez l'instruction If (Si).

    Remarque :

    Comme la variable generationCheck contient true ou false, vous demandez en substance Arcadeif(true) ou if(false). Les instructions entre accolades ne s'exécuteront que si generationCheck est true.

    Vous allez maintenant écrire le code permettant d'effectuer l'action voulue lorsque estimated_generation_gwh est vide. Entre les accolades, vous allez créer le message à afficher. Comme précédemment, vous allez utiliser un littéral de modèle et l'enregistrer dans une nouvelle variable.

  10. Entre les accolades, saisissez ou copiez et collez le texte suivant (sur une seule ligne) :

    var noGenerationTL = `${ plantName } does not have estimated annual generation data. Unable to return electricity generation in 60w incandescent light bulbs.`

    L'expression utilise la variable plantName que vous avez définie plus tôt dans votre code.

    Enfin, vous allez ajouter une instruction return qui permettra de renvoyer ce message.

  11. Ajoutez une nouvelle ligne au-dessus de l’accolade fermante et saisissez return noGenerationTL.

    Ajoutez une instruction Return (Retour) à la condition If (Si).

  12. Cliquez sur Run (Exécuter) pour tester le script.

    Exécutez le nouveau message relatif aux données manquantes.

    Cette fois, le message ne parle plus de façon fallacieuse de 0 ampoule électrique. Au lieu de cela, il explique qu'il manque des données pour la centrale hydroélectrique de Kajaki, en Afghanistan.

    Remarque :

    Il est important de comprendre que lorsque Arcade exécute une instruction return, il considère que c'est la fin de l'exécution du code et tout autre code restant après cette instruction est alors ignoré. Ce comportement est voulu car le code restant ne s'applique qu'aux entités pour lesquelles il existe des données d'estimation de production électrique annuelle.

Effectuer d'autres tests avec une instruction de console

En tant que dernière tâche réalisée dans la fenêtre de l’éditeur d’expressions Arcade, vous allez maintenant apprendre une autre méthode pour tester votre expression Arcade. Jusqu'ici, vous utilisiez des instructions return pour afficher la sortie de votre script. Mais dans certains cas, il peut être préférable de visualiser la valeur des variables dans tout votre code. Pour cela, vous pouvez utiliser les instructions console qui écrivent la valeur des variables qui vous intéressent dans l’onglet Console. Par exemple, vous voulez voir la valeur de la variable generationCheck.

  1. Dans la fenêtre Expression, ajoutez une nouvelle ligne après la ligne qui commence par var generationCheck.
  2. Dans cette nouvelle ligne, saisissez console("generationCheck value:", generationCheck).

    Ajoutez une instruction de console.

    Le premier paramètre vous donne des explications sur l'objet que vous consignez dans la console. Le second paramètre est l'objet lui-même.

  3. Cliquez sur le bouton Exécuter.

    L’aspect de l’onglet Output (Sortie) est le même qu’avant avec le résultat final de l’expression Arcade.

  4. Passez à l’onglet Console pour voir la valeur de la variable consignée dans la console.

    Accédez à l'onglet Messages.

    La valeur détenue dans la variable generationCheck est true car la valeur pour estimated_generation_gwh est vide.

  5. Essayez d’autres valeurs exemples pour $feature["estimated_generation_gwh"] et testez l’expression pour chacune d’entre elles, en regardant à chaque fois les onglets Output (Sortie) et Console. Essayez notamment des exemples qui renvoient soit true, soit false pour generationCheck.
    Remarque :

    Vous pouvez ajouter autant d'instructions de console que vous voulez pour vous aider à développer et déboguer votre expression Arcade. Cependant, il est recommandé de supprimer ou commenter ces instructions une fois l'expression finalisée.

    Comme cette ligne de code était destinée à des tests, vous allez maintenant convertir l’instruction de console en commentaire.

  6. Au début de l’instruction de console, saisissez //.

    Instruction de console transformée en commentaire.

    L’instruction de console est devenue un commentaire et ne sera plus exécutée en tant que commande.

    L'exemple ci-dessous montre à quoi ressemble l'expression finale. Des commentaires ont été ajoutés pour décrire chaque étape.

    
    // Calculate the kilowatt-hours (kWh) required to power a 
    // 60w light bulb for a year
    var yearLightbulbPower = 0.06 * 24 * 365
    
    // Save the power plant name and annual generation to a variable 
    // for later use
    var plantName = $feature.name
    var annualGenerationGwh = $feature["estimated_generation_gwh"]
    
    // Check if there is a value in the estimated annual generation 
    // attribute field. isEmpty(fieldOrValue) returns true if empty
    var generationCheck = isEmpty(annualGenerationGwh)
    
    // Write to the generationCheck value to the Message tab for 
    // testing purposes (commented out)
    // console("generationCheck value:", generationCheck)
    
    // If there is not annual generation data, return a sentence for use
    // in the pop-up that informs the user about this.
    if (generationCheck) {
        var noGenerationTL = `${ plantName } does not have estimated annual generation data. Unable to return electricity generation in 60w incandescent light bulbs.`
        return noGenerationTL
    } 
    
    // If the annual generation data is present, continue with the remainder of the script. 
    // Convert the annual generation attribute from
    // gigawatt-hours to kilowatt-hours
    var annualGenerationKwh = annualGenerationGwh * 1000000
    
    // Compute the annual electricity generation in light bulbs
    var annualGenInLightbulbs = annualGenerationKwh / yearLightbulbPower  
      
    // Round the number 
    var annualGenInLightbulbsRounded = Round(annualGenInLightbulbs, 0)  
      
    // Format the number to add thousand separators    
    var annualGenInLightbulbsText = Text(
        annualGenInLightbulbsRounded, '###,###,###,###')
    
    // Build the sentence for use in the pop-up 
    // (Create a string using a template literal)
    var popupSentence = `It's estimated that ${ plantName } generates enough electricity to power ${ annualGenInLightbulbsText } 60-watt incandescent light bulbs for a year.`
    
    // Return the value
    return popupSentence
    Remarque :

    Comme la phrase qui gère les données manquantes se trouvent à l'intérieur d'une instruction if, vous pouvez, si vous le souhaitez, inclure le reste de votre expression Arcade dans else {<rest of expression>}. Toutefois, comme vous l'avez vu, si vous ne rédigez pas explicitement else {}, le reste de l'expression continuera à s'exécuter si la condition dans l'instruction If (Si) n'est pas satisfaite.

    Vous allez maintenant fermer l'éditeur d'expressions Arcade et tester les fenêtres contextuelles sur la carte.

  7. Cliquez sur Done (Terminé) pour enregistrer l’expression et fermer la fenêtre de l’éditeur.

    L’aperçu de la fenêtre contextuelle affiche maintenant le message approprié pour Mandroseza.

    Le nouveau texte s'affiche dans la fenêtre contextuelle où il manque une valeur.

  8. Dans la fenêtre Pop-up expressions, cliquez sur le bouton Back (Retour). Fermez la fenêtre Pop-ups (Fenêtres contextuelles).
  9. Enregistrez la carte.
  10. Cliquez sur plusieurs centrales électriques sur la carte pour vérifier que votre expression Arcade fonctionne correctement.
    Remarque :

    Vous pouvez rechercher les deux mêmes emplacements que précédemment (Kitzingen, Bayern, Germany (Kitzingen, Bavière, Allemagne) et Antananarivo, Analamanga, Madagascar). Vous pouvez aussi en essayer de nouveaux.

Vous avez calculé la quantité d'électricité requise pour alimenter une ampoule de 60 watts pendant un an et le nombre d'ampoules de 60 watts que chaque centrale électrique peut alimenter pendant un an. Vous avez arrondi une valeur à un nombre entier et ajouté des séparateurs de milliers. Vous avez créé deux phrases différentes pouvant être renvoyées dans la fenêtre contextuelle : une pour les scénarios dans lesquels les données de production électrique annuelle d'une centrale sont disponible, et une autre pour les scénarios dans lesquels elles ne le sont pas. Vous avez ensuite vérifié que les entités de centrale électrique sur la carte affichent la phrase appropriée grâce à une instruction If (Si).

Dans ce didacticiel, vous vous êtes familiarisé avec l’éditeur d’expressions Arcade. Vous avez utilisé Arcade pour symboliser les pays du monde selon leur consommation d'électricité par habitant. Vous avez utilisé Arcade pour comprendre le nombre d'ampoules de 60 watts que chaque centrale électrique pourrait alimenter pendant un an et afficher le résultat dans une fenêtre contextuelle. Tout le code Arcade a été exécuté à la volée, sans impacter les données sous-jacentes.

Ce didacticiel n’a présenté que certaines des fonctionnalités d’Arcade. Pour en savoir plus sur l’étiquetage d’expressions et le calcul de champs dans Arcade, explorez les billets de blog Pump up Your Pop-ups With Arcade FeatureSets and the Living Atlas et Bring Colors From Your Map Into Your Pop-up Using Arcade.

Vous trouverez d’autres didacticiels dans la bibliothèque des didacticiels.