Utiliser des expressions Arcade dans des diagrammes

Arcade est un langage d’expression portable, léger et sécurisé, conçu pour être utilisé dans ArcGIS qui peut exécuter des calculs mathématiques, manipuler du texte et évaluer les instructions logiques. Les expressions Arcade permettent de calculer de nouvelles variables sans mettre à jour la structure du jeu de données. Elles présentent également l’avantage d’être dynamiques et orientées données, c’est-à-dire que le résultat d’une expression est mis à jour si les données utilisées dans l’expression sont modifiées.

Arcade peut être utilisé pour configurer des diagrammes à barres, des diagrammes à secteurs, des diagrammes linéaires, des histogrammes et des nuages de points. Pour créer ou mettre à jour une expression pour une variable de diagramme prenant en charge Arcade, cliquez sur le bouton Arcade expression (Expression Arcade) Bouton Expression Arcade pour ouvrir la fenêtre du générateur d’expressions.

Les exemples ci-dessous illustrent des cas dans lesquels Arcade peut être utilisé pour configurer des diagrammes.

Exemples de test

Arcade offre de nombreuses fonctions qui traitent des valeurs de texte pour créer et configurer des diagrammes. Par exemple, vous pouvez améliorer la lisibilité d’un diagramme en mettant en forme des chaînes tout en majuscules (CALIFORNIE) de sorte que seule la première lettre soit en majuscule (Californie). Pour ce faire, la fonction Proper de Arcade peut être utilisée :


# Format "CALIFORNIA" as "California"
Proper($feature.STATE_NAME);

Pour concaténer plusieurs champs de type chaîne en une sortie de texte, utilisez la fonction Concatenate. Dans l’exemple suivant, le nom de la ville et celui de l’État de chaque entité sont combinés en une seule chaîne :


# Combine CITY_NAME (eg "LOS_ANGELES") and STATE_NAME (eg "CALIFORNIA") into "LOS_ANGELES, CALIFORNIA"
Concatenate($feature.CITY_NAME, ", ", $feature.STATE_NAME);

À l’inverse, dans certains cas, il peut être utile d’analyser une chaîne pour rechercher certaines parties du texte. Par exemple, la fonction Split peut être utilisée pour identifier le nom de la ville dans une adresse (123 Main Street, Redlands, CA). Dans l’exemple suivant, les adresses sont fractionnées au niveau des virgules et l’indexation de matrice est utilisée pour identifier le nom de la ville :


# Split string on "," and return the second element (ie, the city name)
Split($feature.FULL_ADDRESS, ",")[1];

Vous pouvez également utiliser des structures de contrôle dans Arcade pour recatégoriser les valeurs de texte en fonction de conditions logiques. Dans l’exemple suivant, la fonction Find est utilisée pour regrouper les événements tempétueux liés à une tornade dans la catégorie Tornado (Tornade), et ceux qui ne sont pas liés à une tornade dans la catégorie Other (Autre) :


if (Find($feature.EVENT_TYPE, "TORNADO") >= 0) {
    return "Tornado";
} else { 
    return "Other";
}

Exemples de dates

Arcade offre de nombreuses fonctions de traitement des champs de date. Par exemple, un jeu de données peut comporter plusieurs champs qui fournissent des données de date, mais ces champs doivent être combinés pour créer un champ Date à utiliser dans les diagrammes temporels. La fonction Date extrait les composants de date appropriés et produit une valeur de date :


Date($feature.YEAR, $feature.MONTH, $feature.DAY);

Pour calculer une durée basée sur deux dates, utilisez la fonction DateDiff. Par exemple, supposons qu’un jeu de données de demandes de service contienne un champ de date pour le moment où la demande a été ouverte et un autre pour celui où elle a été fermée. L’exemple suivant calcule le nombre de jours écoulés entre les deux valeurs de date :


DateDiff($feature.OPEN_DATE, $feature.CLOSE_DATE, "DAYS");

Arcade fournit également des fonctions d’analyse des détails d’un champ Date. Par exemple, pour comprendre les modèles de jour de la semaine d’un champ de date, utilisez la fonction ISOWeekday pour renvoyer le jour de la semaine d’une date :


ISOWeekday($feature.DATE);

Exemples numériques

Arcade fournit des fonctions et des opérateurs pour le traitement des valeurs numériques qui peuvent être utilisées pour créer un diagramme. Par exemple, utilisez la fonction AreaGeodetic pour normaliser une population selon la zone de l’entité. L’exemple suivant utilise la fonction AreaGeodetic avec l’opérateur de division :


$feature.POPULATION / AreaGeodetic($feature, 'square-miles')

Arcade offre également des fonctions pour les opérations mathématiques courantes. Par exemple, utilisez la fonction Average pour calculer la moyenne de plusieurs valeurs :


Average([$feature.SCORE1, $feature.SCORE2, $feature.SCORE3])

Dans certains cas, il peut également être utile de catégoriser les données numériques. Par exemple, pour un jeu de données concernant des caractéristiques automobiles, convertissez les valeurs numériques en MPG (miles par gallon) en catégories telles que Good (Bon), Okay (Satisfaisant) et Poor (Médiocre) :


if ($feature.MILES_PER_GALLON >= 30) {
    return "Good"
} else if ($feature.MILES_PER_GALLON >= 20) {
    return "Okay"
} else {
    return "Poor"
}