Capturer des traces (GeoAnalytics Desktop)

Synthèse

Capture des points de suivi en entrée sur des lignes. Les données ponctuelles à dimension temporelle doivent inclure des entités qui représentent un instant T dans le temps. Des lignes traversables avec des champs indiquant les nœuds de début et de fin sont requis pour l’analyse.

Illustration

Illustration de l’outil Capturer des traces
Les points de trace temporels ayant été appariés aux lignes sont affichés.

Utilisation

  • Le tableau suivant répertorie la terminologie employée dans l’outil Capturer des traces :

    TermeDescription

    Parcours

    Séquence d’entités temporelles de type instant. Les entités sont identifiées comme faisant partie de l’une séquence par un champ d’identificateur de trace et elles obéissent à un classement temporel. Par exemple, une ville peut disposer d’une flotte de chasse-neige qui enregistrent leur position toutes les 30 secondes. L’ID de véhicule peut représenter les traces distinctes.

    Observation

    Point d’une piste

    Nœud

    Les nœuds sont les sommets d’extrémité des entités linéaires utilisées pour indiquer la direction de la ligne. Le début de la ligne est le nœud de début et la fin de la ligne est le nœud de fin.

    Direction

    Direction d’une ligne. La direction indique le déplacement pouvant être effectué sur une ligne entre le nœud de début et le nœud de fin.

    Connectivité

    La connectivité décrit la manière dont les lignes sont connectées pour représenter un réseau traversable. Les lignes sont connectées en fonction des valeurs du nœud de début et du nœud de fin. Les lignes qui, en fonction de la connectivité, ne peuvent pas être atteintes par un point ne sont pas considérées comme appariées.

    Traversable

    Les lignes sont traversables si elles sont connectées par des nœuds communs. Par exemple, si le nœud de début de la ligne A est le même que le nœud de fin de la ligne B, ces deux lignes sont traversables.

  • L’outil requiert les couches en entrée de paramètre suivantes :

    • Couche de points en entrée : la couche de points en entrée doit être constituées d’observations temporelles qui représentent un instant dans le temps. Les observations de trace qui n’ont pas d’horodatage valide sont exclues de l’analyse.
    • Couche linéaire en entrée : la couche linéaire en entrée doit contenir des champs comportant les informations de connectivité suivantes et doit être spécifiée dans le paramètre Appariement de champs de connectivité :
      • Unique ID : identifiant unique de la ligne
      • From node : nœud d’origine du déplacement le long d’une ligne
      • To node : nœud vers lequel le déplacement le long d’une ligne a lieu

  • Remarque :

    Les couches d’entités de géodatabase StreetMap Premium sous licence ne sont pas prises en charge en entrée pour ArcGIS Pro 3.0.

  • La référence spatiale de la valeur du paramètre Couche de points en entrée doit être la même que la référence spatiale de la valeur du paramètre Couche linéaire en entrée. Si les jeux de données ont des références spatiales différentes, utilisez l’environnement Système de coordonnées en sortie pour spécifier la référence spatiale à utiliser dans l’analyse ou projetez les jeux de données avant l’analyse.

  • Vous pouvez spécifier un ou plusieurs champs pour identifier des pistes. Les traces sont représentées par un ou plusieurs champs de trace. Par exemple, si les champs flightID et Destination sont utilisés comme identifiants de trace, les entités ID007, Solden et ID007, Tokyo se trouvent dans deux traces distinctes, car les valeurs de leur champ Destination sont différentes.

  • Les traces doivent avoir plusieurs observations pour pouvoir être utilisées dans une analyse. Les traces ne possédant qu’une seule observation ne sont pas appariées.

  • Les appariements de points sur la ligne sont réalisés dans les conditions suivantes :

    • L’observation se trouve à la distance de recherche à partir d’une ligne. Il s’agit de l’exigence minimale. Les observations ne sont pas appariées si elles ne remplissent pas la condition liée à la distance de recherche.
    • L’observation peut traverser les lignes en fonction de leur connectivité.
    • L’observation se déplace dans une direction prise en charge par la ligne. Il s’agit d’une condition facultative qui est prise en compte si vous spécifiez des valeurs pour le paramètre Appariement des valeurs de direction. Les résultats qui répondent à cette condition facultative sont plus précis.

  • Utilisez le paramètre Distance de recherche pour spécifier la distance maximale autorisée entre une observation et une ligne. Par exemple, si vous savez que la précision des points GPS est d’environ 100 mètres, indiquez 100 mètres pour la distance de recherche.

  • Le paramètre Méthode de distance indique la manière dont les distances de recherche sont calculées. Deux méthodes de calcul de distance sont disponibles :

    • Géodésique : si la référence spatiale peut être déplacée en continu en croisant l’antiméridien, les traces traversent l’antiméridien lorsque cela est approprié. Si la référence spatiale ne peut pas être déplacée en continu, les traces sont limitées à l’étendue du système de coordonnées et ne sont pas renvoyées à la ligne. Il s’agit de l’option par défaut.
    • Planaire : les traces ne croisent pas l’antiméridien. Utilisez cette option si les données en entrée utilisent un système de coordonnées projetées.

  • Pour inclure des attributs de ligne supplémentaires dans les résultats en sortie, spécifiez les noms de champ avec le paramètre Champs de ligne à inclure. Ces champs ne sont pas utilisés à des fins d’analyse et sont inclus pour votre propre usage. Vous ne pouvez pas inclure de champs de géométrie dans le résultat en sortie.

  • Utilisez le paramètre Appariement des valeurs de direction afin de définir les directions prises en charge pour chaque entité linéaire. Par exemple, une couche linéaire possédant un champ nommé direction avec les valeurs T (arrière), F (avant), B (les deux) et "" (aucune). L’appariement de la direction est facultatif, mais il est recommandé si vous souhaitez obtenir des résultats plus précis. Si aucun appariement de direction n’est spécifié, la ligne est considérée comme bidirectionnelle.

  • L’outil renvoie les points capturés sur la localisation la plus proche le long de la ligne avec laquelle elle est appariée. Les entités linéaires ne sont pas renvoyées. L’identifiant unique du jeu de données linéaires est disponible pour les résultats appariés. Le champ de l’identifiant unique est spécifié avec le paramètre Appariement de champs de connectivité. Vous pouvez identifier les lignes appariées en référençant ce champ.

  • Vous pouvez fractionner les pistes des manières suivantes :

    • Time Split (Fraction temporelle) : en fonction d’une durée entre des entrées. L’application d’une fraction temporelle permet de fractionner n’importe quelle piste lorsque l’éloignement des données en entrée est supérieur à la durée spécifiée. Par exemple, si vous disposez de cinq entités associées au même identifiant de piste et aux heures [01:00, 02:00, 03:30, 06:00, 06:30] et que vous paramétrez une fraction temporelle de 2 heures, les entités mesurées à plus de 2 heures d’intervalle seront fractionnées. Dans cet exemple, le résultat produit une piste comportant [01:00, 02:00, 03:30] et [06:00, 06:30], car la différence entre 03:30 et 6:00 est supérieure à 2 heures.
    • Time Boundary Split (Limite de fraction temporelle) : en fonction d’intervalles temporels définis. L’application d’une fraction de limite temporelle segmente les pistes à un intervalle défini. Par exemple, si vous définissez la limite temporelle sur une journée, avec un début le 1er janvier 1990 à 9 h 00 (9:00 a.m.), chaque piste sera tronquée à 9 h 00 tous les jours. Cette fraction réduit le temps de calcul car elle crée des pistes plus petites pour l’analyse. Si le fractionnement en fonction d’une limité temporelle récurrente est pertinent pour votre analyse, il est recommandé pour le traitement de Big Data.
    • Distance Split (Fraction spatiale) : en fonction d’une distance entre les entrées. L’application d’une fraction spatiale permet de fractionner n’importe quelle piste lorsque l’éloignement des données en entrée est supérieur à la distance spécifiée. Par exemple, si vous définissez une fraction spatiale de 5 kilomètres, les entités séquentielles éloignées de plus de 5 kilomètres apparaîtront sur des pistes différentes.
    • Split Expression (Expression de fractionnement) : basée sur une expression Arcade. L’application d’une expression de fractionnement divise les pistes en fonction de valeurs géométriques ou temporelles. Par exemple, vous pouvez diviser les pistes lorsqu’une valeur de champ est plus de deux fois supérieure à la valeur précédente d’une piste. Pour ce faire, à l’aide d’un champ d’exemple nommé WindSpeed, vous pouvez utiliser l’expression suivante : var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]. Les traces sont fractionnées lorsque la valeur précédente (speed[0]) est moins de deux fois supérieure à la valeur actuelle.

  • Outre les champs issus de la valeur du paramètre Couche de points en entrée et les champs de ligne spécifiés avec le paramètre Champs de ligne à inclure, les champs suivants sont inclus dans la sortie :

    Nom du champDescription

    MatchStatus

    Indique si l’observation a été appariée à une ligne. Les valeurs sont M pour les entités appariées et U pour les entités non appariées.

    OrigX

    Coordonnée x de l’observation en entrée. Les coordonnées sont stockées dans les unités de la référence spatiale en sortie.

    OrigY

    Coordonnée y de l’observation en entrée. Les coordonnées sont stockées dans les unités de la référence spatiale en sortie.

    MatchX

    Coordonnée x du résultat apparié sur la ligne. Les coordonnées sont stockées dans les unités de la référence spatiale en sortie.

    MatchY

    Coordonnée y du résultat apparié sur la ligne. Les coordonnées sont stockées dans les unités de la référence spatiale en sortie.

    MatchDist

    Distance entre la localisation d’origine et la localisation appariée d’une observation. Les distances sont calculées selon la méthode de calcul de distance spécifiée (géodésique ou planaire). Les valeurs sont enregistrées en mètres.

    DATE

    Horodatage de l’observation.

    Si la valeur du paramètre Mode en sortie spécifiée est Toutes les entités, les points appariés et non appariés sont renvoyés. Dans le cas des points non appariés, des valeurs nulles représentant les champs numériques et des chaînes vides représentant les champs de type chaîne sont ajoutées aux champs de résultat en sortie. Les champs dans lesquels des valeurs nulles sont ajoutées sont des champs de ligne spécifiés avec le paramètre Champs de ligne à inclure (champ MatchX, champ MatchY et champ MatchDist).

  • Vous pouvez effectuer une analyse semblable en utilisant :

    • Utilisez l’outil Reconstruire les traces pour reconstruire les points de traces temporels en lignes.
    • Utilisez l’outil Capturer pour capturer des points, des multi-points, des lignes ou des polygones sur d’autres entités. Cet outil modifie les données en entrée.

  • Cet outil de géotraitement est mis en œuvre par Spark. L’analyse est effectuée sur votre ordinateur de bureau en utilisant plusieurs cœurs en parallèle. Pour en savoir plus sur l’exécution de l’analyse, reportez-vous à la rubrique Remarques relatives aux outils GeoAnalytics Desktop.

  • Lorsque vous exécutez des outils GeoAnalytics Desktop, l’analyse est effectuée sur votre ordinateur de bureau. Pour des performances optimales, les données doivent être accessibles sur votre bureau. Si vous utilisez une couche d’entités hébergée, il est recommandé d'utiliser ArcGIS GeoAnalytics Server. Si vos données ne sont pas enregistrées en local, l’exécution des outils prendra plus de temps. Pour utiliser votre ArcGIS GeoAnalytics Server en vue d'une analyse, reportez-vous à la rubrique GeoAnalytics Tools.

Paramètres

ÉtiquetteExplicationType de données
Couche ponctuelle en entrée

Points qui seront appariés aux lignes. L’entrée doit être une couche de points temporelle représentant un instant donné dans le temps et doit contenir au moins un champ qui identifie des traces uniques.

Feature Layer
Couche linéaire en entrée

Lignes auxquelles les points seront appariés. L’entrée doit contenir des champs dont les valeurs indiquent les nœuds de début et de fin de la ligne.

Feature Layer
Classe d’entités en sortie

Classe d’entités contenant les points appariés.

Feature Class
Champs de trace

Un ou plusieurs champs utilisés pour identifier des pistes uniques.

Field
Distance de recherche

Distance maximale autorisée entre un point et n’importe quelle ligne considérée comme appariée. Il est recommandé d’utiliser des valeurs inférieures ou égales à 75 mètres. Des distances supérieures entraînent des temps de traitement plus longs et génèrent des résultats moins précis.

Linear Unit
Appariement de champs de connectivité

Champs de la couche linéaire utilisés pour définir la connectivité des entités linéaires en entrée.

  • Unique ID : champ de la couche linéaire contenant la valeur de l’ID unique de chaque entité linéaire
  • From Node : champ de la couche linéaire contenant les valeurs de nœud de début
  • To Node : champ de la couche linéaire contenant les valeurs de nœud de fin
Value Table
Champs de ligne à inclure
(Facultatif)

Un ou plusieurs champs de la couche linéaire en entrée à inclure dans le résultat en sortie.

Field
Méthode de distance
(Facultatif)

Indique la méthode utilisée pour le calcul des distances entre les points et les lignes.

  • GéodésiqueDes distances géodésiques sont calculées. Il s’agit de l’option par défaut.
  • PlanaireDes distances planaires sont calculées.
String
Appariement des valeurs de direction
(Facultatif)

Champ de la couche linéaire et valeurs attributaires utilisées pour définir la direction des entités linéaires en entrée. Par exemple, une couche linéaire possédant un champ nommé direction avec les valeurs T (arrière), F (avant), B (les deux) et "" (aucune). Si aucune valeur n’est indiquée, la ligne est considérée comme bidirectionnelle.

  • Direction Field : champ de la couche linéaire qui décrit la direction du déplacement.
  • Forward Value : valeur du Direction Field indiquant que la direction de déplacement prise en charge est vers l’avant le long d’une ligne.
  • Backward Value : valeur du Direction Field indiquant que la direction de déplacement prise en charge est vers l’arrière le long d’une ligne.
  • Both Value : valeur du Direction Field indiquant que les deux directions, vers l’avant et vers l’arrière, sont prises en charge le long d’une ligne.
  • None Value : valeur du Direction Field indiquant qu’il n’existe aucune direction de déplacement prise en charge le long d’une ligne.

Value Table
Mode en sortie
(Facultatif)

Indique si toutes les entités en entrée ou uniquement les entités en entrée appariées à une entité linéaire sont renvoyées.

  • Toutes les entitésToutes les entités ponctuelles en entrée sont renvoyées qu’elles soient appariées ou non à une entité linéaire. Il s’agit de l’option par défaut.
  • Entités appariéesSeules les entités ponctuelles en entrée appariées à une entité linéaire sont renvoyées.
String
Fraction temporelle
(Facultatif)

Les entités plus éloignées les unes des autres dans le temps que la durée de fraction temporelle sont séparées dans des pistes distinctes.

Time Unit
Fraction spatiale
(Facultatif)

Les entités plus éloignées physiquement les unes des autres que la valeur de fraction spatiale sont séparées dans des pistes distinctes.

Linear Unit
Fraction de limite temporelle
(Facultatif)

Période dans laquelle fractionner les données en entrée pour analyse. Une limite temporelle vous permet d’analyser des valeurs dans une période temporelle définie. Par exemple, si vous utilisez une limite temporelle de 1 jour et que vous définissez la référence de limite temporelle au 1er janvier 1980, les traces seront fractionnées au début de chaque jour.

Time Unit
Référence de la limite temporelle
(Facultatif)

Référence temporelle dans laquelle fractionner les données en entrée pour analyse. Les limites temporelles seront créées pour toute la plage des données et il n’est pas nécessaire que la référence temporelle se situe au début. Si aucune référence temporelle n’est indiquée, le 1er janvier 1970 est utilisé.

Date

arcpy.geoanalytics.SnapTracks(input_points, input_lines, out_feature_class, track_fields, search_distance, connectivity_field_matching, {line_fields_to_include}, {distance_method}, {direction_value_matching}, {output_mode}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference})
NomExplicationType de données
input_points

Points qui seront appariés aux lignes. L’entrée doit être une couche de points temporelle représentant un instant donné dans le temps et doit contenir au moins un champ qui identifie des traces uniques.

Feature Layer
input_lines

Lignes auxquelles les points seront appariés. L’entrée doit contenir des champs dont les valeurs indiquent les nœuds de début et de fin de la ligne.

Feature Layer
out_feature_class

Classe d’entités contenant les points appariés.

Feature Class
track_fields
[track_fields,...]

Un ou plusieurs champs utilisés pour identifier des pistes uniques.

Field
search_distance

Distance maximale autorisée entre un point et n’importe quelle ligne considérée comme appariée. Il est recommandé d’utiliser des valeurs inférieures ou égales à 75 mètres. Des distances supérieures entraînent des temps de traitement plus longs et génèrent des résultats moins précis.

Linear Unit
connectivity_field_matching
[connectivity_field_matching,...]

Champs de la couche linéaire utilisés pour définir la connectivité des entités linéaires en entrée.

  • Unique ID : champ de la couche linéaire contenant la valeur de l’ID unique de chaque entité linéaire
  • From Node : champ de la couche linéaire contenant les valeurs de nœud de début
  • To Node : champ de la couche linéaire contenant les valeurs de nœud de fin
Value Table
line_fields_to_include
[line_fields_to_include,...]
(Facultatif)

Un ou plusieurs champs de la couche linéaire en entrée à inclure dans le résultat en sortie.

Field
distance_method
(Facultatif)

Indique la méthode utilisée pour le calcul des distances entre les points et les lignes.

  • GEODESICDes distances géodésiques sont calculées.
  • PLANARDes distances planaires sont calculées.
String
direction_value_matching
[direction_value_matching,...]
(Facultatif)

Champ de la couche linéaire et valeurs attributaires utilisées pour définir la direction des entités linéaires en entrée. Par exemple, une couche linéaire possédant un champ nommé direction avec les valeurs T (arrière), F (avant), B (les deux) et "" (aucune). Si aucune valeur n’est indiquée, la ligne est considérée comme bidirectionnelle.

  • Direction Field : champ de la couche linéaire qui décrit la direction du déplacement.
  • Forward Value : valeur du Direction Field indiquant que la direction de déplacement prise en charge est vers l’avant le long d’une ligne.
  • Backward Value : valeur du Direction Field indiquant que la direction de déplacement prise en charge est vers l’arrière le long d’une ligne.
  • Both Value : valeur du Direction Field indiquant que les deux directions, vers l’avant et vers l’arrière, sont prises en charge le long d’une ligne.
  • None Value : valeur du Direction Field indiquant qu’il n’existe aucune direction de déplacement prise en charge le long d’une ligne.

Value Table
output_mode
(Facultatif)

Indique si toutes les entités en entrée ou uniquement les entités en entrée appariées à une entité linéaire sont renvoyées.

  • ALL_FEATURESToutes les entités ponctuelles en entrée sont renvoyées qu’elles soient appariées ou non à une entité linéaire. Il s’agit de l’option par défaut.
  • MATCHED_FEATURESSeules les entités ponctuelles en entrée appariées à une entité linéaire sont renvoyées.
String
time_split
(Facultatif)

Les entités plus éloignées les unes des autres dans le temps que la durée de fraction temporelle sont séparées dans des pistes distinctes.

Time Unit
distance_split
(Facultatif)

Les entités plus éloignées physiquement les unes des autres que la valeur de fraction spatiale sont séparées dans des pistes distinctes.

Linear Unit
time_boundary_split
(Facultatif)

Période dans laquelle fractionner les données en entrée pour analyse. Une limite temporelle vous permet d’analyser des valeurs dans une période temporelle définie. Par exemple, si vous utilisez une limite temporelle de 1 jour et que vous définissez la référence de limite temporelle au 1er janvier 1980, les traces seront fractionnées au début de chaque jour.

Time Unit
time_boundary_reference
(Facultatif)

Référence temporelle dans laquelle fractionner les données en entrée pour analyse. Les limites temporelles seront créées pour toute la plage des données et il n’est pas nécessaire que la référence temporelle se situe au début. Si aucune référence temporelle n’est indiquée, le 1er janvier 1970 est utilisé.

Date

Exemple de code

Exemple d’utilisation de la fonction SnapTracks (script autonome)

Le script autonome ci-dessous illustre l’utilisation de la fonction SnapTracks.

# Name: SnapTracks.py
# Description: Snap snowplow fleet tracks to roads to uncover areas that 
#              may need more resources for snow removal efforts

# Import system modules
import arcpy

# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties 
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\Snowplow.lyrx'

# MakeFeatureLayer converts the .lyrx to features
snowplowsLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Snowplows Layer")

# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(snowplowsLayer, inputLyrx)

# Set local variables
lineLayer = "c:/mydata/Roads.gdb/CityStreets"
trackIdentifier = "vehicle_id"
out = "c:/mydata/OutputDatasets.gdb/Snowplows_snapped_to_streets"
searchDistance = "10 Meters"
connectivityFieldMatching = "unique_ID from_node to_node"
directionValueMatching = "dir_travel F T B #"

# Run Snap Tracks
arcpy.gapro.SnapTracks(snowplowsLayer, lineLayer, out, trackIdentifier, 
                       searchDistance, connectivityFieldMatching, None,
																							"GEODESIC", directionValueMatching, "MATCHED_FEATURES")