Étiquette | Explication | Type 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.
| 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.
| 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.
| 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.
| 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 |
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
Utilisation
Le tableau suivant répertorie la terminologie employée dans l’outil Capturer des traces :
Terme Description 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
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 champ Description 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.
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.
Paramètres
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})
Nom | Explication | Type 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.
| 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.
| 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.
| 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.
| 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
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")
Environnements
Vous avez un commentaire à formuler concernant cette rubrique ?