Utiliser les fonctions de trace

Les fonctions de trace permettent de créer et d’évaluer des expressions Arcade avec des entrées de trace dans certains outils ArcGIS Velocity. Les traces sont des entités ordonnées séquentiellement, dotées d’un champ spécifié comme identifiant de trace (Track ID) et d’un champ Start Time. Les fonctions de trace Arcade sont disponibles uniquement lorsque vous utilisez Velocity dans des expressions d’outils spécifiques prenant en charge le suivi (Calculer un champ et Apparier des champs).

Pour plus d’informations sur chacune des fonctions de trace, reportez-vous à la rubrique Track Functions de la documentationArcGIS Arcade.

Les fonctions de trace suivantes sont disponibles dans ArcGIS Velocity :

Exemples

  • Obtenez la distance parcourue de l’origine de la trace à une observation actuelle.
    • Pour cela, utilisez la fonction de trace TrackCurrentDistance qui renvoie la somme des distances entre les observations de la première observation à l’observation actuelle.
    • Cette fonction est utilisée sous la forme TrackCurrentDistance(x), où x indique l’entité d’inspection.
    • Scénario d'exemple :
      • Une trace comporte six entités ; l’expression renvoie une valeur pour l’entité actuelle de la trace.
        • La distance qui sépare l’entité 1 de l’entité 2 est de 60 mètres.
        • La distance qui sépare l’entité 2 de l’entité 3 est de 80 mètres.
        • La distance qui sépare l’entité 3 de l’entité 4 est de 30 mètres.
        • La distance qui sépare l’entité 4 de l’entité 5 est de 35 mètres.
        • La distance qui sépare l’entité 5 de l’entité 6 est de 25 mètres.
      • Le traitement de l’entité 3 donne comme résultat 140 (80 + 60).
  • Obtenez une valeur de champ spécifique de deux observations antérieures à l’observation actuelle.
    • Pour cela, utilisez la fonction de trace TrackFieldWindow qui renvoie une matrice de valeurs attributaires à partir du champ spécifié pour la période indiquée.
    • La fonction est utilisée sous la forme TrackFieldWindow('fieldName', startIndex, endIndex)[x].
      • fieldName : Text - Nom du champ duquel renvoyer des valeurs.
      • startIndex : Number - Index de l’entité de début. L’entité actuelle a pour index 0. Les valeurs positives représentent des entités qui ont lieu dans le futur, après la valeur actuelle. Par exemple, la position 1 est la valeur suivante dans la matrice. Les nombres négatifs représentent les entités survenues dans le passé, avant l’entité actuelle. Par exemple, -1 est la valeur précédente dans la matrice.
      • endIndex : Number - Index de l’entité à la fin de la fenêtre. L’entité actuelle a pour index 0. Les valeurs positives représentent des entités qui ont lieu dans le futur, après la valeur actuelle. Par exemple, la position 1 est la valeur suivante dans la matrice. Les nombres négatifs représentent les entités survenues dans le passé, avant l’entité actuelle. Par exemple, -1 est la valeur précédente dans la matrice.
    • Scénario d'exemple :
      • Votre trace comporte un champ avec les valeurs ordonnées séquentiellement suivantes : [10, 20, 30, 40, 50]. Les géométries des entités sont [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]. L’expression est évaluée à chaque entité de la piste. Les résultats sont renvoyés en intégrant l’entité de départ et en excluant l’entité de fin. Cet exemple est évalué au niveau de la deuxième entité (20) et renvoie un tableau de la valeur précédente (-1, inclusive).
      • Syntaxe Arcade : var window = TrackFieldWindow('MyField', -2,-1)[0].
      • Valeur de résultat : 10 puisque la syntaxe [0] a été utilisée pour obtenir la première valeur de cette matrice.
  • Obtenez la géométrie de l’entité antérieure à l’entité actuelle.
    • Pour cela, utilisez la fonction de trace TrackGeometryWindow qui renvoie une matrice de géométries pour les index temporels indiqués.
    • Cette fonction est utilisée sous la forme TrackGeometryWindow(startIndex, endIndex).
      • startIndex : Number - Index de l’entité de début. L’entité actuelle a pour index 0. Les valeurs positives représentent des entités qui ont lieu dans le futur, après la valeur actuelle. Par exemple, la position 1 est la valeur suivante dans la matrice. Les nombres négatifs représentent les entités survenues dans le passé, avant l’entité actuelle. Par exemple, -1 est la valeur précédente dans la matrice.
      • endIndex : Number - Index de l’entité à la fin de la fenêtre. L’entité actuelle a pour index 0. Les valeurs positives représentent des entités qui ont lieu dans le futur, après la valeur actuelle. Par exemple, la position 1 est la valeur suivante dans la matrice. Les nombres négatifs représentent les entités survenues dans le passé, avant l’entité actuelle. Par exemple, -1 est la valeur précédente dans la matrice.
    • Scénario d'exemple :
      • Votre trace comporte un champ avec les valeurs ordonnées séquentiellement suivantes : [10, 20, 30, 40, 50]. Les géométries des entités sont [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}, {x: 5, y: 5}]. L’expression est évaluée à chaque entité de la piste. Dans cet exemple, nous examinons les résultats lorsque l’évaluation est effectuée sur la troisième entité (30). Les résultats sont renvoyés en intégrant l’entité de départ et en excluant l’entité de fin.
      • Syntaxe Arcade : var window = TrackGeometryWindow(-2,2)
      • Valeur de résultat : [{x: 1, y: 1},{x: 2, y: 2} ,{x: null, y: null},{x: 4, y: 4}]

Remarques sur l'utilisation

  • Les fonctions de trace Arcade sont disponibles uniquement dans les outils Calculer un champ et Apparier des champs.
  • Le test des expressions Arcade n’est pas disponible actuellement pour les expressions qui comportent des fonctions de trace. Consultez la documentation Arcade et des fonctions de trace pour vous assurer de la validité de l’expression et de la prise en compte des types de valeur de renvoi.
  • Les analyses en temps réel n’ont pas accès aux valeurs de trace futures (x), car les observations futures ne figurent pas encore dans l’analyse en temps réel au moment du traitement. Les analyses en temps réel ont accès uniquement aux valeurs de trace précédente (-x) et actuelle (0).
  • Il est possible de récupérer les valeurs de traces précédentes des 5 entités précédentes (-5) au maximum.
  • Pour créer des expressions Arcade à l’aide de fonctions de trace, il est important de tenir compte du type de données (matrice, chaîne, nombre, date) qui est renvoyé par la fonction de trace et votre expression. Vérifiez dans la documentation Track Functions le type de données renvoyé par chaque fonction de trace.