Le blog francophone consacré
aux technologies Esri

Conseils & Astuces ArcGIS Online - N°204

N°204 - Expressions de données ArcGIS Dashboards - Filtrer uniquement les dernières valeurs

Dans ce précédent article, je vous présentais la notion très puissante d'expression de données dans ArcGIS Dashboards ainsi que l'interface permettant de les créer. Dans cet article, je vous propose un exemple d'expression de données permettant de filtrer uniquement les enregistrements d'une table correspondants aux dates/heures les plus récentes avant de les utiliser dans votre tableau de bord.


Exemple:

Je dispose d'une table contenant, pour chaque station météo de mon territoire, des mesures de précipitations au cours du mois d'avril. Dans mon tableaux de bord, je souhaite afficher uniquement la dernière quantité de précipitation mesurée (Champ "DateHeure" le plus récent) pour chaque station (Champ "Station").



L'expression de données suivante pourra alors être utilisée :

// Récupération du portail ArcGIS, ici ArcGIS Online
var myportal = Portal('https://www.arcgis.com');

// Récupération de la couche d'entités d'origine
var fs = FeatureSetByPortalItem(
    myportal,
    'af3d8ef69f8f490181a237540eabdc26',
    0,
    ['*'],
    false
);


// Grouper par station et trouver la date la plus récente
var grouped = GroupBy(
    fs,
    ["Station"],
    [{ name: "DateMesure", expression: "DateHeure", statistic: "MAX" }]
);


// Préparer la liste de features de sortie
var features = [];

for (var g in grouped) {
    var stationID = g["Station"];

    // Récupérer le dernier enregistrement pour la station en ordonnant sur le 
    // champs DateHeure décroissants
    var lastRec = Top(OrderBy(Filter(fs, "Station = @stationID"), "DateHeure DESC"),1);

    for (var rec in lastRec) {
        Push(features, {
            attributes: {
                "Station": stationID,
                "DateMesure": rec["DateHeure"],
                "Precipitations_mm": rec["Precipitations_mm"]
            }
        });
    }
}

// Définir le schéma du FeatureSet de sortie (sans géométrie)
var fs_final =  FeatureSet({
    fields: [
        { name: "Station", type: "esriFieldTypeString", alias: "Station" },
        { name: "DateMesure", type: "esriFieldTypeDate", alias: "Date/Heure de Mesure" },
        { name: "Precipitations_mm", type: "esriFieldTypeDouble", alias: "Précipitation (mm)" }
    ],
    geometryType: "",
    features: features
});

// Renvoie FeatureSet complet sans géométrie
return fs_final


Le jeu de données généré est alors le suivant :


Vous pouvez par exemple le représenter dans votre tableau de bord à l'aide d'un diagramme en barres :



A travers cet exemple, vous avez pu découvrir comment utiliser des expressions de données avec Arcade pour filtrer uniquement les enregistrements d'une table correspondant à la date/heure la plus récente. Il ne vous reste plus qu'à l'appliquer à vos propres cas d'usage.


Bonne route sur ArcGIS Online !
   
Pour retrouver l'ensemble des Conseils & Astuces ArcGIS Online, cliquez sur ce lien.

Partager cet article:

Rejoindre la discussion

    Les commentaires à propos de cet article: