Tracer les événements de proximité (GeoAnalytics Desktop)

Résumé

Trace les événements qui sont proches les uns des autres dans l’espace (localisation) ou dans le temps. Les données ponctuelles à dimension temporelle doivent inclure des entités qui représentent un instant T dans le temps.

Illustration

Illustration de l’outil Tracer les événements à proximité
Un exemple d’événements de traçage (cercles orange) et traces (cercles rouges) est illustré.

Utilisation

  • Les exemples suivants sont des cas d’utilisation pouvant être générés grâce à l’outil Tracer les événements à proximité :

    • Une organisation surveille les appareils fournis par l’entreprise, transportés par les employés. L’entreprise cherche à déterminer les employés qui se trouvent près d’un individu ayant contracté la maladie du coronavirus 2019 (COVID-19). En utilisant la couche de points qui représente la localisation des appareils et les données temporelles associées, il est possible de déterminer les appareils qui se sont trouvés à moins de six mètres pendant plus de cinq minutes de la personne contagieuse et d’autres employés potentiellement infectés.
    • Une ONG surveille les populations de saumons à l’aide de GPS et désire suivre la propagation des poux de saumon entre les saumons d’élevage qui se sont échappés et les populations de saumons sauvages. Grâce aux balises GPS de certains saumons d’élevage, il est possible de les suivre et d’observer s’ils entrent en contact proche avec des populations sauvages également porteuses de balises et de déterminer la manière dont les populations sauvages disséminent par la suite la maladie. Les mesures incluent également un champ de profondeur auquel l’ONG recourt uniquement pour rechercher des poissons à une profondeur analogue.

  • La terminologie suivante est utilisée pour l’outil Tracer les événements de proximité :

    • Entité : objet dont la position est enregistrée régulièrement comme un animal, une personne ou un véhicule. Une entité peut être immobile ou en déplacement.
    • Entités d’intérêt : entités spécifiques utilisées pour commencer le traçage. Exemple, une personne infectée par la COVID-19.
    • Événement de proximité : période durant laquelle deux entités à côté l’une de l’autre. Exemple : deux personnes à moins de 3 mètres l’une de l’autre pendant 1 minute.
    • Profondeur : degré de séparation entre une entité d’intérêt et une entité plus éloignée (en aval) sur le tracé. Par exemple, un événement de proximité compris entre l’entité d’intérêt et toute autre personne a une profondeur de 1.
    • Événement de traçage : premier contact pour une entité spécifiée en aval à partir des entités d’intérêt.
  • Lors du traçage des événements de proximité, il vous incombe de comprendre les directives de l’organisation, qu’elles soient locales ou nationales, en matière de protection des données et de respect de la vie privée.

  • Les diagrammes ci-dessous montrent le traitement des données par l’outil Tracer les événements de proximité. Dans ces diagrammes, le temps est sur l’axe x.

    Chaque diagramme compte quatre entités : A, B, C et D. Le texte en surbrillance décrit les événements de traçage qui se sont produits entre deux entités (les entités d’origine et de destination) et la profondeur de l’événement de proximité. Dans cet exemple, l’entité C est l’entité d’intérêt qui est tracée en aval.

    Dans le diagramme 1, l’entité C est l’entité d’intérêt retenue. La profondeur est de 0.

    Diagramme 1 - Outil Tracer les événements de proximité

    Dans le diagramme 2, un événement de proximité se produit entre les entités C et B. La profondeur du tracé est de 1. Lorsque plusieurs entités sont des événements de proximité qui se suivent, elles décrivent un événement de proximité soutenu.

    Diagramme 2 - Outil Tracer les événements de proximité

    Dans le diagramme 3, un événement de proximité se produit entre les entités B et A. La profondeur du tracé est de 2.

    Diagramme 3 - Outil Tracer les événements de proximité

    Dans le diagramme 4, un événement de proximité se produit entre les entités C et D. La profondeur du tracé est de 1.

    Diagramme 4 - Outil Tracer les événements de proximité

    Dans l’image ci-dessous, l’entité B est l’entité d’intérêt et se trouve à proximité de l’entité A à trois reprises, comme indiqué par les cercles bleus. En supposant que le temps figure sur l’axe x, le premier événement de proximité est égal à 1 ; il est suivi par une interruption (absence de contact) et les événements de proximité 2 et 3. L’outil renvoie l’événement 1 comme événement de traçage. Les événements de proximité 2 et 3 ne sont pas renvoyés dans la couche de paramètres Output Proximity Events (Événements de proximité en sortie). Toutes les entités figurant après l’événement de proximité 1 sont renvoyés dans le paramètre Output Tracks (Traces en sortie).

    Premier événement de traçage

  • Les entités doivent remplir les deux critères de recherche Spatial Search Distance (Distance de recherche spatiale) et Temporal Search Distance (Distance de recherche temporelle) pour être considérés comme proches l’une de l’autre.

    Diagramme de la distance de recherche spatiale
    Figure A : les deux entités se trouvent à une distance de recherche spatiale l’une de l’autre.
    Diagramme de la distance de recherche temporelle
    Figure B : les deux entités se trouvent à une distance dans le temps (distance de recherche temporelle) l’une de l’autre.
  • Spécifier une distance de recherche temporelle et une distance de recherche spatiale supérieures génère davantage d’événements et allonge le traitement des résultats. À l’inverse, des distances plus faibles engendrent moins d’événements et une durée de traitement plus courte.

  • Utilisez les connaissances spécifiques du domaine pour déterminer les valeurs utilisées pour les paramètres Spatial Search Distance (Distance de recherche spatiale) et Temporal Search Distance (Distance de recherche temporelle). Tenez compte des facteurs tels que la précision de l’appareil lorsque vous définissez les distances.

  • Le paramètre Define Entities of Interest Using (Définir les entités d’intérêt avec) prend en charge les options suivantes :

    • Entities of Interest IDs (ID des entités d’intérêt) : cette option active le paramètre Entities of Interest IDs (ID des entités d’intérêt) qui nécessite les valeurs Entity ID (ID d’entité) et, facultativement, des valeurs temporelles Starting From (À partir de) pour lancer le traçage.
    • Selected features in a specified entity of interest layer (Entités sélectionnées dans une couche d’entités d’intérêt spécifiée) : cette option active le paramètre Entities of Interest Layer (Couche d’entités d’intérêt) qui permet de choisir une couche comportant les identifiants des entités et, si vous le souhaitez, la date et l’heure à laquelle le traçage débute. Pour cette couche, le nom du champ d’identifiant de l’entité doit correspondre au nom du champ d’identifiant de l’entité de la couche en entrée. Les données temporelles seront utilisées sur cette couche si la dimension temporelle est activée pour cette couche.
  • L’entité d’intérêt correspond au point de départ du traçage de proximité. Si vous spécifiez des conditions temporelles de départ, le traçage commence à la date/l’heure correspondantes pour l’entité considérée. Si vous ne spécifiez pas de critères temporels, le traçage commence le 1er janvier 1970 pour cette entité.

  • Vous pouvez définir d’autres critères pour un événement de proximité. Par exemple, vous pouvez suivre exclusivement les personnes d’un immeuble particulier d’un complexe ou encore suivre seulement celles habitant un étage en particulier d’un bâtiment. Utilisez le paramètre Attribute Match Criteria (Critères de correspondance des attributs) pour spécifier les attributs de contrainte. Ainsi, pour contraindre des entités au même étage, spécifiez le champ Floor.

  • La couche Output Proximity Events (Événements de proximité en sortie) inclura le premier événement de proximité des entités dans le tracé, ainsi que les champs suivants :

    • from_id : identifiant de l’entité en amont.
    • to_id : identifiant de l’entité en aval.
    • depth : degré de séparation entre l’entité d’intérêt et le champ to_id.
    • duration_minutes : durée de l’événement de traçage en minutes. Ce champ est calculé comme la différence entre la date/l’heure de départ et la date/l’heure de fin. Par exemple, 1,5 minute vaut 90 secondes. Une valeur égale à 0 signifie qu’il n’existe qu’un seul événement de proximité (les dates et heures de départ et de fin sont identiques).
    • date : date et heure de l’événement de proximité. Ce champ est calculé comme le premier moment enregistré satisfaisant les critères de l’événement de proximité.

    Il est possible de visualiser la couche Output Proximity Events (Événements de proximité en sortie) à l’aide du curseur temporel ou d’afficher les résultats du traçage dans un diagramme de liens.

  • Vous pouvez utiliser le paramètre facultatif Output Tracks (Traces en sortie) pour créer une couche contenant le premier événement du traçage et toutes les instances suivantes de cette entité. Ces résultats sont utiles pour visualiser les emplacements parcourus par les entités et peuvent être exploités par l’outil Reconstruire les pistes. Le paramètre Output Tracks (Traces en sortie) inclura les champs suivants :

    • entity_id : identifiant de l’entité.
    • depth : degré de séparation entre l’entité d’intérêt et le tracé. La profondeur est identique pour un tracé donné.
    • instant_datetime : date de chaque entité. Il s’agit de la même date que celle de l’enregistrement des entités en entrée.
  • Les points en entrée dépourvus de valeurs temporelles, de valeurs géométriques ou d’un champ d’identifiant d’entité ne sont pas inclus dans les résultats.

  • Lorsque vous utilisez le traçage de proximité pour révéler une transmission (d’une infection, par exemple), gardez à l’esprit les observations suivantes :

    • La présence d’un événement de traçage ne garantit pas qu’il ait été transmis ; il s’agit seulement d’un contact possible.
    • À contrario, l’absence d’événement de traçage ne signifie pas qu’un élément n’a pas été transmis. Dans le cas d’une infection, la transmission peut avoir lieu par d’autres vecteurs.
    • Dans la mesure du possible, utilisez le paramètre Attribute Match Criteria (Critères de correspondance des attributs) pour contraindre les événements de proximité lorsque cela est nécessaire. Par exemple, utilisez les attributs pour définir les contraintes en matière de pièce, d’étage ou d’élévation.

  • Si vous cherchez à calculer tous les événements de proximité et ne voulez pas tracer en aval d’une entité d’intérêt, utilisez l’outil Joindre les entités.

  • Vous pouvez améliorer les performances de l’outil Tracer les événements de proximité en effectuant une ou plusieurs des opérations suivantes :

    • Utilisez des valeurs plus petites pour les paramètres Spatial Search Distance (Distance de recherche spatiale) et Temporal Search Distance (Distance de recherche temporelle).
    • Limitez les entités d’intérêt à l’aide du paramètre Attribute Match Criteria (Critères de correspondance des attributs).
    • Spécifiez une valeur pour Maximum Trace Depth (Profondeur de tracé maximale) afin de limiter le nombre de tracés en aval pour une entité donnée et l’entité d’intérêt.
    • Définissez l’environnement de l’étendue de manière à analyser uniquement des données d’intérêt.
    • Utilisez les données locales de l’environnement de l’analyse.

  • 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, nous vous recommandons de faire appel à 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 instance ArcGIS GeoAnalytics Server en vue d’une analyse, reportez-vous à la rubrique Outils GeoAnalytics.

Syntaxe

arcpy.gapro.TraceProximityEvents(in_points, entity_id_field, out_feature_class, distance_method, {spatial_search_distance}, {temporal_search_distance}, {entities_of_interest_input_type}, entities_interest_ids, entities_interest_layer, {out_tracks_layer}, max_trace_depth, {attribute_match_criteria})
ParamètreExplicationType de données
in_points

Classe d’entités ponctuelles temporelles utilisées pour tracer les événements de proximité.

Feature Layer
entity_id_field

Champ représentant les identifiants uniques de chaque entité.

Field
out_feature_class

Classe d’entités en sortie contenant les événements de proximité tracés.

Feature Class
distance_method

Spécifie le type de distance utilisé avec le paramètre Spatial Search Distance (Distance de recherche spatiale).

  • PLANARUne distance planaire est utilisée entre les entités. Il s’agit de l’option par défaut.
  • GEODESICLa distance géodésique sera utilisée entre les entités. Ce type de ligne tient compte de la courbure de la sphéroïde et gère correctement les données situées près de la ligne de changement de jour et des pôles.
String
spatial_search_distance
(Facultatif)

Distance maximale entre deux points pour qu’ils soient considérés comme étant à proximité. Les entités qui respectent les critères de distance de recherche spatiale et de distance de recherche temporelle sont considérées comme à proximité l’une de l’autre.

Linear Unit
temporal_search_distance
(Facultatif)

Durée maximale entre deux points pour qu’ils soient considérés comme étant à proximité. Les entités qui se trouvent à la distance de recherche temporelle et respectent les critères de distance de recherche spatiale sont considérées comme à proximité l’une de l’autre.

Time Unit
entities_of_interest_input_type
(Facultatif)

Permet de spécifier les entités qui vous intéressent.

  • ID_START_TIMELes noms des entités et leurs données temporelles seront utilisées comme entités d’intérêt. Il s’agit de l’option par défaut.
  • SELECTED_FEATURELes entités sélectionnées dans une couche d’entités d’intérêt spécifiée seront utilisées comme entités d’intérêt.
String
entities_interest_ids
[entities_interest_ids,...]

Noms des entités et date/heure de début des entités d’intérêt. Ce paramètre est pris en charge uniquement lorsque ID_START_TIME est spécifié pour le paramètre entities_of_interest_input_type.

  • ID d’entité : nom d’entité unique. Les noms sont sensibles à la casse.
  • À partir de : date initiale facultative pour tracer une entité d’intérêt. Si aucune valeur temporelle n’est spécifiée, la date du 1er janvier 1970 sera appliquée.

Value Table
entities_interest_layer

Couche ou table qui contient les entités d’intérêt. Ce paramètre est pris en charge uniquement lorsque SELECTED_FEATURE est spécifié pour le paramètre entities_of_interest_input_type.

Table View
out_tracks_layer
(Facultatif)

Couche en sortie contenant le premier événement de traçage et l’ensemble des entités suivantes pour l’instance spécifiée.

Feature Class
max_trace_depth

Degré de séparation maximal entre une entité d’intérêt et une entité plus éloignée (en aval) sur le tracé.

Long
attribute_match_criteria
[attribute_match_criteria,...]
(Facultatif)

Champs utilisés pour contraindre l’événement de proximité.

Field

Exemple de code

TraceProximityEvents (script autonome)

Le script autonome suivant illustre l'utilisation de l'outil TraceProximityEvents.

# Name: TraceProximityEvents.py
# Description: Trace proximity events for user1 and user4 with 30 feet 
#              spatial search distance and 10 minute temporal search distance.
# Import system modules
import arcpy
# Set workspace
arcpy.env.workspace = r"C:/data/TraceData.gdb"
# Use time-enabled big data collection
inFeatures = r"C:/data/Example.bdc/example_tracks"
entityIDField = "user_id"
outFile = "ProximityEvents" 
spatialDistance = "30 Feet"
temporalDistance = "10 Minutes"
entitiesOfInterest = "user1 '3/30/2020 9:00:00 AM';user4 '3/30/2020 9:00:00 AM'" 
outTracks = "out_tracks"
max_trace_depth = 3
# Execute Trace Proximity Events
arcpy.gapro.TraceProximityEvents(inFeatures, entityIDField, outFile, "PLANAR",
                                 spatialDistance, temporalDistance, 
                                 "ID_START_TIME", entitiesOfInterest, None, 
                                 outTracks, max_trace_depth)

Informations de licence

  • Basic: Non
  • Standard: Non
  • Advanced: Oui

Rubriques connexes