Classifier les événements de mouvement (Renseignement)

Synthèse

Identifie les événements de tournant, les événements d’accélération et la vitesse dans un jeu de données de piste de points en entrée.

Illustration

Illustration de l’outil Classifier les événements de mouvement

Utilisation

  • Pour que l’outil s’exécute, la valeur du paramètre Entités en entrée doit être dans un système de coordonnées projetées et elle doit être temporelle.

    L’outil identifie les événements suivants :

    • Tournant à droite ou à gauche
    • Demi-tour à droite ou à gauche
    • Acceleration (Accélération)
    • Décélération
    • Début
    • Arrêter
    • Vitesse en miles par heure
    • Vitesse en kilomètres par heure
    • Relèvement de départ
    • Relèvement d’arrivée

    De plus, la différence de distance et la différence de temps entre le point actuel et le point précédent de la trace seront calculées.

    Un point de région d’intérêt peut éventuellement être localisé.

  • Les tournants sont annotés en fonction de la direction de déplacement. Les tournants peuvent être classés comme suit :

    • Tournant à droite
    • Tournant à gauche
    • Demi-tour à droite
    • Demi-tour à gauche
    • Arrêtée
    • Déplacement

    Les tournants sont calculés à l’aide des paramètres Curvature (Courbure) et Number Of Points (Nombre de points). Chaque point est évalué en fonction du relèvement du point précédent de trace au point actuel et du point actuel au point suivant de la trace. Si la valeur est supérieure à la valeur indiquée pour le paramètre Courbure, le résultat est considéré comme un tournant ; dans le cas contraire, il est considéré comme un déplacement. Pour les traces représentant de grands objets (par exemple des avions ou des bateaux), nous vous recommandons d’augmenter la valeur du paramètre Nombre de points pour tenir compte du délai supplémentaire nécessaire pour tourner.

    Calcul des relèvements
    Les relèvements sont calculés du point précédent au point actuel et du point actuel au point suivant, et la différence sert à déterminer les événements correspondant à des tournants.

  • Les valeurs par défaut des paramètres Courbure et Nombre de points sont optimisées pour les pistes automobiles standard, en prenant en compte un taux d’échantillonnage approximatif d’une seconde. Pour les véhicules qui se déplacent plus vite que les automobiles ou pour les données échantillonnées selon un intervalle autre qu'une fois par seconde, vous devrez peut-être modifier la valeur du paramètre Courbure ou Nombre de points. Par exemple, pour un GPS personnel qui effectue un échantillonnage une fois toutes les cinq secondes, augmentez la valeur Nombre de points. Pour les données représentant des avions, échantillonnées une fois par seconde, réduisez la valeur du paramètre Courbure à 10 (ou moins) pour tenir compte du fait qu’un avion a besoin de plus de temps et d’espace pour tourner.

    Différence de rayon de braquage entre les petits objets et les plus grands objets
    Les petits objets tels que les personnes et les voitures parcourent moins de distance pour tourner que les objets plus grands tels que les avions ou les bateaux.

  • La vitesse est calculée en divisant la distance entre les points par la durée nécessaire pour parcourir cette distance. Les arrêts sont identifiés lorsque la vitesse d’un véhicule est égale à zéro. Les démarrages sont déterminés lorsque les points accélèrent à partir d’une position d’arrêt.

    Le champ acc_event est calculé à partir de la différence entre le point actuel de la trace et le point précédent de la trace, et entre le point actuel de la trace et le point suivant de la trace. Les événements d’accélération spécifiques sont les suivants :

    • Début de l’événement d'accélération : point auquel la piste commence à accélérer. Le point actuel est précédé d’un point de même vitesse et suivi d’un point avec une vitesse plus élevée.

    • Début de l’événement de décélération : point auquel la trace commence à accélérer. Le point actuel est précédé d’un point de même vitesse et suivi d’un point avec une vitesse inférieure.

    • Accélération : la vitesse de la piste de points augmente entre le point précédent et le point actuel. Cet événement doit survenir après le début de l’accélération et avant la fin d’un événement d’accélération.

      Calcul des événements d’accélération et de décélération
      Les événements d’accélération et de décélération sont calculés avec la vitesse moyenne entre les points.

    • Décélération : la vitesse de la trace ponctuelle diminue entre le point précédent et le point actuel. Cet événement doit survenir après le début de la décélération et avant la fin d’un événement de décélération.

    • Fin de l’événement d'accélération : point où se termine un événement d’accélération. Le point a une vitesse plus élevée que le point précédent, mais le point suivant a la même vitesse ou une vitesse inférieure. Cet événement est généralement suivi d’un événement de déplacement ou de décélération.

    • Fin de l’événement de décélération : point où se termine un événement de décélération. Le point actuel a une vitesse inférieure au point précédent, mais le point suivant a la même vitesse ou une vitesse plus élevée. Cet événement est généralement suivi d’un événement d’arrêt ou d’accélération.

    • Arrêt : la piste de points ne bouge pas. La vitesse doit être égale à 0 mile/h ou 0 km/h.

    • Déplacement : la piste de points se déplace à une vitesse qui n’entre dans aucune des catégories ci-dessus.

  • La classe d’entités en sortie contient les champs suivants :

    • track_id- Identifiant unique qui associe le point à une piste. Ce champ est dérivé du paramètre ID Field (Champ ID).
    • time- Temps associé à l’entité de piste de points. Ce champ est dérivé du champ de temps spécifié dans les propriétés de la couche.
    • source_OID—ID d’objet de l’entité issue du paramètre Entités en entrée.
    • POINT_X- Coordonnée x associée à l’entité actuelle.
    • POINT_Y- Coordonnée y associée à l’entité actuelle.
    • distance_diff- Distance entre l’entité précédente de la piste et l’entité actuelle. La distance est calculée dans les unités du système de coordonnées en entrée.
    • time_diff- Différence en secondes entre l’entité précédente de la piste et l’entité actuelle.
    • speed- Vitesse en unités linéaires du système de coordonnées en entrée par seconde.
    • speed_mph- Vitesse en miles/heure de la piste, depuis la dernière entité de la piste jusqu’à l’entité actuelle.
    • speed_kph- Vitesse en kilomètres/heure de la piste, depuis la dernière entité de la piste jusqu’à l’entité actuelle.
    • acc_event- Événements d'accélération. Les événements d’accélération spécifiques sont les suivants :
      • Début de l’événement d’accélération
      • Début d’un événement de décélération
      • Acceleration (Accélération)
      • Décélération
      • Fin de l’événement d'accélération
      • Fin d’un événement de décélération
      • Arrêtée
      • Déplacement
    • turn_event- Événement de tournant. Les événements de tournant spécifiques sont les suivants :
      • Tournant à gauche
      • Tournant à droite
      • Demi-tour à gauche
      • Demi-tour à droite
      • Arrêtée
      • Déplacement
    • from_bearing- Relèvement du point précédent de la piste au point actuel.
    • to_bearing- Relèvement du point actuel de la piste au point suivant.

    Si la valeur du paramètre Régions d’intérêt est associée à une classe d’entités, un champ roi_id est renseigné. Ce champ contient le nom de la région d’intérêt intersectée par le point.

    Si le paramètre Créer des identifiants d’événement de tournant est sélectionné, la table attributaire en sortie comporte un champ turn_event_id contenant l’identifiant unique créé pour chaque événement de tournant. Si plusieurs entités sont associées à un événement de tournant, elles ont toutes la même valeur turn_event_id.

  • Les champs from_bearing et to_bearing sont inclus et ont pour objectif principal de vous aider à comprendre la directionalité du déplacement et de vous aider à vous orienter correctement en fonction de la direction du déplacement. La principale différence entre ces champs est que le champ from_bearing représente un angle de retour du point actuel au point précédent de la trace.

  • Si le paramètre Exclure les événements qui ne sont pas des tournants est sélectionné, l’outil supprime du champ turn_event toutes les entités ayant la valeur Déplacement. Cette opération peut réduire la taille de la classe d’entités en sortie et améliorer les performances. Elle est recommandée lorsque vous souhaitez savoir où et à quelle fréquence une intersection est utilisée, ou pour connaître l’endroit où une trace a mené un événement de tournant, dans le cadre d’une analyse de la criminalistique.

  • Si le paramètre Représentation des entités d’événement de tournant a la valeur Point médian de tournant, toutes les entités d’événement de tournant qui partagent la même valeur turn_event_id sont agrégées au centre moyen de l’entité. Il s’agit d’un processus réducteur qui supprime toutes les entités associées, laissant une seule entité au centre moyen calculé de l’événement de tournant. En raison de sa nature destructrice, il est préférable d’utiliser ce paramètre avec le paramètre Exclure les événements qui ne sont pas des tournants sélectionné.

Paramètres

ÉtiquetteExplicationType de données
Entités en entrée

Couche d’entités ponctuelles temporelles avec un champ annotant la piste à laquelle chaque point est associé. La géométrie, l’identifiant d’objet, le nom de piste et l’heure sont transférés vers la classe d’entités en sortie. L’entrée doit être dans un système de coordonnées projetées.

Feature Layer
Champ d’ID

Champ des entités en entrée utilisé pour obtenir les identifiants uniques par piste de points. Ce champ sera copié dans la classe d’entités en sortie.

Field
Classe d’entités en sortie

Classe d’entités en sortie devant contenir les événements de mouvement calculés.

Feature Class
Courbure
(Facultatif)

Valeur minimale requise pour qu’un événement soit considéré comme un événement de tournant. Après le calcul de la courbure, toute courbure calculée supérieure à cette valeur entraîne l’insertion dans le champ turn_event de l’événement de tournant approprié, alors qu’avec des valeurs inférieures, le champ turn_event est considéré comme un événement de déplacement.

Les tournants sont calculés à l’aide des paramètres Curvature (Courbure) et Number Of Points (Nombre de points). Chaque point est évalué en fonction du relèvement du point précédent de trace au point actuel et du point actuel au point suivant de la trace. Si la valeur dépasse la valeur indiquée pour le paramètre Courbure, le résultat est considéré comme un tournant. Dans le cas contraire, il est considéré comme un déplacement. Pour les traces représentant des objets de grande taille, nous vous recommandons d’augmenter la valeur Nombre de points pour tenir compte du délai supplémentaire nécessaire pour tourner.

Double
Nombre de points
(Facultatif)

Nombre de points qui seront évalués avant et après un point donné lors du calcul de la différence de relèvement. Si vous utilisez des données avec un taux d’échantillonnage élevé (inférieur à la seconde), vous devrez peut-être augmenter la valeur du paramètre Number Of Points (Nombre de points) pour tenir compte du fait que seuls des mouvements réduits sont possibles au cours d’une période aussi brève. Une valeur de 1 convient pour les automobiles et les piétons, à condition que le taux d’échantillonnage des données en entrée soit d’une seconde. Des valeurs plus élevées sont requises pour les avions et les bateaux ; pour ceux-ci, utilisez la valeur 5.

Long
Régions d’intérêt
(Facultatif)

Régions d’intérêt. Cette couche d’entités en entrée doit être une classe d’entités surfaciques. Si une valeur est indiquée, un champ roi est ajouté au paramètre Classe d’entités en sortie.

Feature Layer
Champ ID de régions d’intérêt
(Facultatif)

Champ du paramètre Régions d’intérêt qui contient les identifiants uniques de chaque région d’intérêt.

Field
Créer des identifiants d’événement de tournant
(Facultatif)

Indique si des identifiants d’événement de tournant seront créés pour la classe d’entités en sortie.

  • Sélectionné : des identifiants d’événement de tournant uniques seront créés.
  • Non sélectionné : des identifiants d’événement de tournant uniques ne seront pas créés. Il s’agit de l’option par défaut.

Boolean
Exclure les événements qui ne sont pas des tournants
(Facultatif)

Indique si les entités dont la valeur du champ turn_event est Déplacement sont exclues.

  • Activé : les entités dont la valeur du champ turn_event est Déplacement sont exclues.
  • Désactivé : les entités dont la valeur du champ turn_event est Déplacement ne sont pas exclues ; toutes les entités sont renvoyées. Il s’agit de l’option par défaut.

Boolean
Représentation des entités d’événement de tournant
(Facultatif)

Indique de quelle manière les événements de tournant en sortie doivent être représentés.

  • Toutes les entitésTous les points associés à l’événement de tournant seront renvoyés. Il s’agit de l’option par défaut.
  • Point médian de tournantLe centre moyen de l’événement de tournant sera renvoyé.
String

arcpy.intelligence.ClassifyMovementEvents(in_features, id_field, out_featureclass, {curvature}, {number_of_points}, {regions_of_interest}, {roi_id_field}, {include_turn_ids}, {exclude_non_turn_events}, {turn_events_representation})
NomExplicationType de données
in_features

Couche d’entités ponctuelles temporelles avec un champ annotant la piste à laquelle chaque point est associé. La géométrie, l’identifiant d’objet, le nom de piste et l’heure sont transférés vers la classe d’entités en sortie. L’entrée doit être dans un système de coordonnées projetées.

Feature Layer
id_field

Champ des entités en entrée utilisé pour obtenir les identifiants uniques par piste de points. Ce champ sera copié dans la classe d’entités en sortie.

Field
out_featureclass

Classe d’entités en sortie devant contenir les événements de mouvement calculés.

Feature Class
curvature
(Facultatif)

Valeur minimale requise pour qu’un événement soit considéré comme un événement de tournant. Après le calcul de la courbure, toute courbure calculée supérieure à cette valeur entraîne l’insertion dans le champ turn_event de l’événement de tournant approprié, alors qu’avec des valeurs inférieures, le champ turn_event est considéré comme un événement de déplacement.

Les tournants sont calculés à l’aide des paramètres curvature et number_of_points. Chaque point est évalué en fonction du relèvement du point précédent de trace au point actuel et du point actuel au point suivant de la trace. Si la valeur dépasse la valeur spécifiée pour le paramètre curvature, le résultat est considéré comme un tournant. Dans le cas contraire, il est considéré comme un déplacement. Pour les traces représentant de grands objets, nous vous recommandons d’augmenter la valeur number_of_points pour tenir compte du délai supplémentaire nécessaire pour tourner.

Double
number_of_points
(Facultatif)

Nombre de points qui seront évalués avant et après un point donné lors du calcul de la différence de relèvement. Si vous utilisez des données avec un taux d’échantillonnage élevé (inférieur à la seconde), vous devrez peut-être augmenter la valeur du paramètre number_of_points pour tenir compte du fait que seuls des mouvements réduits sont possibles au cours d’une période aussi brève. Une valeur de 1 convient pour les automobiles et les piétons, à condition que le taux d’échantillonnage des données en entrée soit d’une seconde. Des valeurs plus élevées sont requises pour les avions et les bateaux ; pour ceux-ci, utilisez la valeur 5.

Long
regions_of_interest
(Facultatif)

Régions d’intérêt. Cette couche d’entités en entrée doit être une classe d’entités surfaciques. Si une valeur est indiquée, un champ roi est ajouté au paramètre out_featureclass.

Feature Layer
roi_id_field
(Facultatif)

Champ du paramètre regions_of_interest qui contient les identifiants uniques de chaque région d’intérêt.

Field
include_turn_ids
(Facultatif)

Indique si des identifiants d’événement de tournant seront créés pour la classe d’entités en sortie.

  • INCLUDE_TURN_IDSDes identifiants d’événement de tournant uniques seront créés.
  • NO_TURN_IDSDes identifiants d’événement de tournant uniques ne seront pas créés. Il s’agit de l’option par défaut.
Boolean
exclude_non_turn_events
(Facultatif)

Indique si les entités dont la valeur du champ turn_event est Déplacement doivent être filtrées.

  • ONLY_TURN_EVENTSLes entités dont la valeur du champ turn_event est Déplacement sont exclues.
  • ALL_FEATURESLes entités dont la valeur du champ turn_event est Déplacement ne sont pas exclues ; toutes les entités sont renvoyées. Il s’agit de l’option par défaut.
Boolean
turn_events_representation
(Facultatif)

Indique de quelle manière les événements de tournant en sortie doivent être représentés.

String

Exemple de code

Exemple d’utilisation de l’outil ClassifyMovementEvents (script autonome)

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

# Name: ClassifyMovementEvents.py
# Description: Identify movement events in a point track dataset. 

# Import system modules 
import arcpy 

arcpy.env.workspace = "C:/data/Tracks.gdb"

# Set local variables 
source_features = "Known_Tracks"
output_movement_events = "MovementEvents"
id_field = "device_id"
regions_of_interest = "Named_Areas_Of_Interest"
roi_name = "counties"

# Run tool
arcpy.intelligence.ClassifyMovementEvents(source_features,
                                          output_point_features,
                                          id_field,
                                          regions_of_interest,
                                          roi_name)