Reconstruire les traces (GeoAnalytics Desktop)

Résumé

Crée des pistes linéaires ou surfaciques à partir de données en entrée temporelles.

Illustration

Outil Reconstruire les pistes
Les points temporels ayant été reconstitués en pistes sont affichés.

Utilisation

  • L’outil Reconstruire les pistes est exécuté sur des entités ponctuelles surfaciques. La couche en entrée doit être temporelle et comporter des entités représentant un instant donné dans le temps.

  • Vous pouvez spécifier un ou plusieurs champs pour identifier des pistes. Les pistes sont représentées par un ou plusieurs champs de piste. Si, par exemple, les champs flightID et Destination sont utilisés comme identifiants de piste, les entités ID007, Solden et ID007, Tokyo figurent dans deux pistes distinctes étant donné que leur champ Destination contient des valeurs différentes.

  • Les entités qui ont une zone tampon appliquée génèrent des pistes polygonales. Les entités ponctuelles en entrée qui n'ont pas de zone tampon appliquée génèrent des pistes polylinéaires.

  • Les entités en entrée sont constituées d’entités temporelles qui représentent un instant donné dans le temps. Les résultats sont des entités linéaires ou surfaciques représentant un intervalle dans le temps. Le début et la fin de l’intervalle sont déterminés par l’heure des première et dernière entités d’une piste.

    Entités en entrée comportant deux pistes distinctes (verte et rouge) qui présentent un temps de type instant (gauche) et les pistes résultantes (droite), un temps de type intervalle
    Les entités en entrée comportant deux pistes distinctes (verte et rouge) qui présentent un temps de type instant (gauche) et les pistes résultantes (droite) qui présentent un temps de type intervalle sont affichées.

  • Pour obtenir des résultats linéaires, seules les pistes contenant plusieurs points seront renvoyées. Si vous appliquez une zone tampon, toutes les entités seront renvoyées.

  • Vous pouvez également appliquer une zone tampon à vos entités en entrée. Lorsque vous appliquez une zone tampon, les pistes résultantes sont des entités surfaciques.

    Reconstruction en pistes de points en entrée avec application d’une zone tampon
    Les points en entrée avec application d’une zone tampon sont reconstruits en pistes.

  • Lors de la bufférisation des entités en entrée, chaque entité en entrée est bufférisée. Une enveloppe convexe est générée pour la création d’une piste surfacique.

    Points en entrée (en vert), zone tampon intermédiaire pour la visualisation (hachure bleue) et piste polygonale résultante (en bleu)
    Des exemples de points en entrée (vert), de zone tampon intermédiaire pour la visualisation (hachure bleue) et de la piste polygonale résultante (bleu) sont présentés.

  • Les champs utilisés dans l’expression de zone tampon doivent être numériques et sont appliqués à l’aide des unités de la référence spatiale en entrée. Reportez-vous à la rubrique Expressions Arcade dans la boîte d’outils GeoAnalytics Desktop pour obtenir plus d’informations. Vous pouvez utiliser des équations de suivi.

  • Par défaut, seul le nombre de points ou de polygones d'une piste est calculé. Vous pouvez calculer des statistiques supplémentaires en indiquant une valeur pour le paramètre Summary Fields (Champs de récapitulation).

  • Par défaut, les pistes sont créées à l’aide de la méthode géodésique. Elle est appliquée aux deux composants suivants de l’analyse :

    • Les pistes croisent la liste internationale de changement de date : lorsque vous utilisez la méthode géodésique, les couches en entrée qui croisent la ligne internationale de changement de date comporteront des pistes qui croisent correctement la ligne internationale de changement de date. Il s’agit de l’option par défaut. Votre couche en entrée ou la référence spatiale de traitement doit être définie sur une référence spatiale qui prend en charge le bouclage de la ligne internationale de changement de date, comme une projection de type World Cylindrical Equal Area.
    • Zones tampon : les entités en entrée peuvent éventuellement être bufférisées. Pour savoir quand appliquer une zone tampon géodésique ou planaire, reportez-vous à la section Créer des zones tampon.

  • 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, en prenant l’exemple d’un champ nommé WindSpeed, vous pouvez utiliser l’expression suivante : var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]. Les pistes sont fractionnées lorsque la valeur précédente (speed[0]) est moins de deux fois supérieure à la valeur actuelle.

  • Vous avez la possibilité de ne choisir aucune option, ou d’appliquer une, deux, trois ou quatre options de fractionnement simultanément. Tous les exemples ci-dessous utilisent un fractionnement avec écart. Si vous appliquez une fraction temporelle de 6 heures, une limite temporelle d’une journée et une fraction spatiale de 16 kilomètres, les résultats sont les suivants :

    Cinq exemples de points en entrée (verts) avec fractions temporelles et de distance variables
    Cinq exemples de points en entrée (jaunes) avec différentes fractions temporelles et spatiales sont illustrés.

    Option de fractionnementDescription

    Six points en entrée avec une heure et un emplacement

    Points en entrée avec le même identifiant. La distance entre les points est marquée au-dessus de la ligne pointillée et l’heure de chaque mesure de point est indiquée sous les points. Quatre fractions marquent la chronologie. Les fractions rouges représentent la fraction de limite temporelle d’une journée avec un début à minuit (12:00 a.m.). La fraction bleue représente la fraction spatiale lorsque la distance entre deux points est supérieure à 16 kilomètres. La fraction violette représente la fraction temporelle lorsque la distance temporelle entre deux points séquentiels est supérieure à 6 heures.

    Exemple sans fraction temporelle ni de distance

    Exemple sans fraction temporelle ni de distance.

    Exemple avec une fraction temporelle de 6 heures

    Exemple avec une fraction temporelle de 6 heures. Toutes les entités éloignées de plus de 2 heures sont fractionnées dans des pistes distinctes.

    Exemple avec une limite temporelle d’une journée

    Exemple avec une limite temporelle d’une journée et un début à minuit. À chaque intervalle d’une journée commençant à l’heure spécifiée (ici à minuit, 12:00 a.m.), une piste est créée.

    Exemple avec une fraction spatiale de 16 kilomètres

    Exemple avec une fraction spatiale de 16 kilomètres. Toutes les entités éloignées de plus de 16 kilomètres (les entités à 5 h 00 (05:00 a.m.) et 6 h 00 (06:00 a.m.)) sont fractionnées dans des pistes distinctes.

    Exemple avec une fraction temporelle de 6 heures et une fraction de limite temporelle d’une journée à minuit (12:00 a.m.)

    Exemple avec une fraction temporelle de 6 heures et une limite temporelle d’une journée commençant à minuit (12:00 a.m.). Toutes les entités éloignées de plus de 6 heures ou qui intersectent la fraction de limite temporelle à minuit (12:00 a.m.) sont fractionnées dans des pistes distinctes.

    Exemple avec une fraction temporelle de 6 heures et une fraction spatiale de 16 kilomètres

    Exemple avec une fraction temporelle de 6 heures et une fraction spatiale de 16 kilomètres. Toutes les entités éloignées de plus de 6 heures (les entités à 6h00 (06:00 a.m.) et 7h00 (07:00 p.m.)) ou de plus de 16 kilomètres sont fractionnées dans des pistes distinctes.

    Exemple avec une fraction spatiale de 16 kilomètres et une limite temporelle d’une journée commençant à minuit (12:00 a.m.)

    Exemple avec une fraction spatiale de 16 kilomètres et une limite temporelle d’une journée commençant à minuit (12:00 a.m.) Toutes les entités éloignées de plus de 16 kilomètres ou qui intersectent la fraction de limite temporelle à minuit (12:00 a.m.) sont fractionnées dans des pistes distinctes.

    Exemple avec une fraction spatiale de 16 kilomètres, une fraction temporelle de 6 heures et une limite temporelle d’une journée commençant à minuit (12:00 a.m.)

    Exemple avec une fraction spatiale de 16 kilomètres, une fraction temporelle de 6 heures et une limite temporelle d’une journée commençant à minuit (12:00 a.m.). Toutes les entités éloignées de plus de 16 kilomètres ou de plus de 6 heures, ou qui intersectent la fraction de limite temporelle à minuit (12:00 a.m.), sont fractionnées dans des pistes distinctes.

  • Lorsque vous fractionnez une piste à l’aide d’une fraction temporelle, d’une fraction spatiale ou d’une expression de fractionnement, vous pouvez définir la façon dont les segments entre les fractions seront créés. Les options suivantes s'offrent à vous :

    • Gap (Écart) : crée un écart entre les deux entités fractionnées.
    • Finish After (Terminer après) : crée un segment qui se termine après la fraction.
    • Start Before (Commencer avant) : crée un segment qui se termine et commence avant la fraction.

    Le diagramme suivant illustre des exemples de types de fraction :

    Trois types de fraction temporelle

    Trois exemples de fraction temporelle sur les mêmes points en entrée (en jaune) sont présentés.

    Option de fraction temporelleDescription

    Cinq points en entrée avec une heure et un emplacement

    Cinq points en entrée avec le même identifiant. L’heure de chaque point est indiquée sous la ligne en pointillés. Il existe une fraction entre 2h00 (2:00 a.m.) et 5h00 (5:00 a.m.) pour tous les exemples. Chaque piste est fractionnée en deux segments entre le troisième et le quatrième point de la piste. La première piste est verte et la seconde est violette. La façon dont les pistes sont fractionnées dépend du type de fraction choisi.

    Gap (Écart) Fraction de type Écart

    Exemple d’écart entre les deux points fractionnés. Il s’agit de l’option par défaut.

    Finish After (Terminer après) Fraction de type Terminer après

    Exemple dans lequel la piste se termine après la fraction, au niveau du quatrième point. La seconde piste commence au quatrième point.

    Start Before (Commencer avant) Fraction de type Commencer avant

    Exemple dans lequel la piste commence avant la fraction, au niveau du troisième point. La seconde piste commence au troisième point.

  • Voici quelques exemples de vol aérien où il peut être pertinent de définir des pistes avec les paramètres de fractionnement et le paramètre d’identifiant de champ :

    • Une entité avion comporte les champs aircraft ID, flight ID, pilot name, start time et flight_maneuver. Le champ flight_maneuver indique si l’avion est au sol ou si son altitude est croissante, décroissante ou constante.
      • Utilisez le champ aircraft ID comme identifiant pour voir l’endroit où chaque avion s’est rendu.
      • Utilisez les champs aircraft ID et flight ID comme identifiants pour comparer différents itinéraires.
      • Utilisez le champ aircraft ID et la limite temporelle de 1 an pour examiner les vols de chaque avion sur une année à la fois.
      • Utilisez les champs pilot name, aircraft ID et start time pour visualiser le vol de chaque pilote.
      • Utilisez le champ aircraft ID comme identifiant et une fraction à des distances supérieures à 1 000 kilomètres pour définir de nouvelles pistes, sachant qu’un bond de 1 000 kilomètres dans les mesures ne doit pas correspondre à la même piste.
      • Utilisez le champ aircraft ID comme identifiant et fractionnez à l’aide d’une expression lorsque la valeur du champ flight_maneuver change. Par exemple, var flight_manuever = TrackFieldWindow("maneuver", -1, 1); flight_maneuver[0] != flight_maneuver[1] vérifie si la valeur actuelle d’une piste et la valeur précédente correspondent. Si tel n’est pas le cas, la piste est fractionnée.

  • Les pistes en sortie renverront les champs utilisés comme identifiants de pistes, le nombre d’entités dans une piste (count), l’heure de début et de fin de chaque piste (start_date et end_date), la durée de la piste en millisecondes (duration) et d’autres statistiques facultatives (au format statisticstype_fieldname)).

  • Vous pouvez améliorer les performances de l’outil Reconstruire les pistes en suivant les conseils ci-après :

    • Définissez l’environnement de l’étendue de manière à analyser uniquement des données d’intérêt.
    • Utilisez la méthode planaire au lieu de la méthode géodésique.
    • N’appliquez pas de zone tampon.
    • Fractionnez vos pistes à l’aide des paramètres Time Split (Fraction temporelle), Time Boundary Split (Limite de fraction temporelle), Distance Split (Fraction spatiale) ou Split Expression (Expression de fractionnement). Le paramètre Time Boundary Split (Limite de fraction temporelle) permet d’obtenir les meilleures performances.
    • 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.

  • Vous pouvez effectuer une analyse semblable en utilisant :

Syntaxe

arcpy.gapro.ReconstructTracks(input_layer, out_feature_class, track_fields, method, buffer_type, {buffer_field}, {buffer_expression}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference}, {summary_fields}, {split_expression}, {split_type})
ParamètreExplicationType de données
input_layer

Points ou polygones à reconstruire en pistes. L’entrée doit être une couche temporelle représentant un instant donné dans le temps.

Feature Layer
out_feature_class

Nouvelle classe d’entités avec les pistes résultantes.

Feature Class
track_fields
[track_fields,...]

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

Field
method

Spécifie les critères utilisés pour reconstruire les pistes. Si une zone tampon est utilisée, le paramètre method détermine son type.

  • GEODESIC Si la référence spatiale peut être déplacée, les pistes croisent la ligne de changement de date lorsque cela est approprié. Si la référence spatiale ne peut pas être déplacée, les pistes sont limitées à l’étendue du système de coordonnées et ne sont pas enroulées.
  • PLANARLes pistes ne franchissent pas la ligne de changement de date.
String
buffer_type

Indique comment la distance de la zone tampon sera définie.

  • FIELDUn champ unique est utilisé pour définir la distance de la zone tampon.
  • EXPRESSIONUne équation utilisant des champs et des opérateurs mathématiques est utilisé pour définir la distance de la zone tampon.
String
buffer_field
(Facultatif)

Le champ utilisé pour mettre en zone tampon les entités en entrée. Les valeurs de champ sont appliquées dans les unités de la référence spatiale de l’entrée à moins que vous utilisiez un système de coordonnées géographiques, auquel cas elles sont exprimées en mètres.

Field
buffer_expression
(Facultatif)

L’expression utilisée pour mettre en zone tampon les entités en entrée. Les champs doivent être numériques et l’expression peut inclure les opérateurs [+ - * / ] et plusieurs champs. Les valeurs calculées sont appliquées dans les unités de la référence spatiale de l’entrée à moins que vous n’utilisiez un système de coordonnées géographiques auquel cas elles sont exprimées en mètres.

Utilisez des expressions Arcade telles que as_kilometers($feature.distance) * 2 + as_meters(15).

Calculator Expression
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
summary_fields
[summary_fields,...]
(Facultatif)

Statistiques qui seront calculées sur les champs spécifiés.

  • COUNT : le nombre de valeurs non nulles. Peut être utilisé sur des champs numériques ou des chaînes. Le nombre de [null, 0, 2] est 2.
  • SUM : somme des valeurs numériques dans un champ. La somme des [null, null, 3] est 3.
  • MEAN : moyenne des valeurs numériques. La moyenne des [0,2, null] est 1.
  • MIN : valeur minimale d’un champ numérique. Le minimum de [0, 2, null] est 0.
  • MAX : valeur maximale d’un champ numérique. La valeur maximale de [0, 2, null] est 2.
  • STDDEV : écart type d’un champ numérique. L'écart type de [1] est null. L'écart type de [null, 1,1,1] est null.
  • VAR : variance d’un champ numérique dans une trace. La variance de [1] est null. La variance de [null, 1,1,1] est null.
  • RANGE : plage d’un champ numérique. Elle est calculée comme la valeur minimale soustraite de la valeur maximale. La plage de [0, null, 1] est 1. La plage de [null, 4] est 0.
  • ANY : exemple de chaîne provenant d’un champ de type chaîne.
  • FIRST : première valeur d’un champ spécifié dans une trace.
  • LAST : dernière valeur d’un champ spécifié dans une trace.

Value Table
split_expression
(Facultatif)

Une expression qui fractionne les traces en fonction de valeurs, de la géométrie ou de valeurs temporelles. Les expressions dont la validation est définie sur True (Vrai) seront fractionnées.

Calculator Expression
split_type
(Facultatif)

Spécifie la façon dont le segment de piste entre deux entités est créé lorsqu’une piste est fractionnée. Le type de fraction est appliqué aux expressions de fractionnement, aux fractions spatiales et aux fractions temporelles.

  • GAPAucun segment n’est créé entre les deux entités. Il s’agit de l’option par défaut.
  • FINISH_LASTUn segment est créé entre les deux entités se terminant après la fraction.
  • START_NEXTUn segment est créé entre les deux entités se terminant avant la fraction.
String

Exemple de code

Exemple 1 d’utilisation de l’outil ReconstructTracks (script autonome)

Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil ReconstructTracks.

# Name: ReconstructTracks.py
# Description: Reconstruct hurricane points into hurricane tracks, where each 
#              location is buffered by the wind speed * 100.
# Import system modules
import arcpy
# Set local variables
inFeatures = "c:/mydata/Hurricanes.shp"
trackIdentifier = "EVENTID"
out = "c:/mydata/OutputDatasets.gdb/HurricaneTracks"
bufferExpression = "WINDSPEED * 100"
statistics = [["PRESSURE", "MEAN"]]
# Execute Reconstruct Tracks
arcpy.gapro.ReconstructTracks(inFeatures, out, trackIdentifier, 
                              "GEODESIC", "EXPRESSION", None, 
                              bufferExpression, None, statistics)

Informations de licence

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

Rubriques connexes