Résumé
Recherche les emplacements auxquels des objets en déplacement se sont arrêtés ou ont résidé en fonction de seuils de temps et de distance donnés.
Illustration
Utilisation
La couche en entrée doit être constituée d’entités ponctuelles temporelles qui représentent un instant donné dans le temps.
Les emplacements de stabilisation sont définis comme des observations séquentielles avec peu ou pas de déplacement sur une période donnée. Selon le domaine d’application, ils peuvent être appelés points d’arrêt ou détection d’inactivité.
Le tableau suivant répertorie la terminologie employée dans l’outil Rechercher les emplacements d’arrêt :
Terme Description Emplacement de stabilisation
Il s’agit des entités représentant quand une piste est restée fixe selon une période et les paramètres de distance donnés. Il s’agit du résultat en sortie de l’outil qui représente les entités d’emplacement sous forme de points, d’enveloppes convexes ou de centres moyens.
Parcours
Séquence d’entités temporelles de type instant. Les entités sont identifiées comme faisant partie de la séquence par un champ d’identificateur de piste et elles obéissent à un classement temporel. Par exemple, une ville peut disposer d’un parc de chasse-neige qui enregistrent leur position toutes les 10 minutes. L’ID du véhicule pourrait représenter les différentes pistes.
Observation
Un point sur une piste.
Géodésique
Ligne tracée sur une sphère. Une ligne géodésique tracée sur le globe représente la courbure de la géoïde de la Terre.
Plane
Distance en ligne droite mesurée sur une surface plane (c'est-à-dire un plan cartésien). Elle est également appelée distance euclidienne.
Instant
Moment unique dans le temps représenté par une heure de début, mais pas d’heure de fin.
Intervalle
Durée représentée par une heure de début et une heure de fin.
Les résultats sont des entités ponctuelles représentant des instants donnés dans le temps ou des entités surfaciques qui représentent un intervalle dans le temps. Le début et la fin de l’intervalle sont déterminés par l’heure de la première entité et l’heure de la dernière entité dans une stabilisation.
Les entités non temporelles sont exclues de l’analyse.
Les emplacements d’arrêt ne peuvent être détectés que dans les pistes comportant plusieurs entités.
Les emplacements d’arrêt sont déterminés grâce aux valeurs de temps (Time Tolerance (Tolérance temporelle)) et de distance (Distance Tolerance (Tolérance de distance)). Tout d’abord, l’outil affecte des entités à une piste à l’aide d’un identifiant unique. L’ordre des pistes dépend des données temporelles des entités. Ensuite, la distance entre la première observation dans une piste et la suivante est calculée. Les entités sont considérées comme faisant partie d’une stabilisation si deux points consécutifs dans le temps restent dans le rayon donné pendant au moins la durée considérée. Lorsque deux entités sont identifiées comme faisant partie d’une stabilisation, la première est utilisée comme point de référence et l’outil recherche les entités consécutives qui se trouvent dans le rayon spécifié par rapport au point de référence de la stabilisation. Une fois que toutes les entités situées dans le rayon spécifié sont détectées, l’outil rassemble les entités de stabilisation et calcule leur centre moyen. Les entités situés avant et après la stabilisation actuelle sont ajoutées à celle-ci si elles se trouvent dans le rayon donné par rapport au centre moyen de l’emplacement de stabilisation. Ce processus se poursuit jusqu’à la fin de la piste.
Vous pouvez spécifier un ou plusieurs champs pour identifier des pistes. Les pistes sont représentées par la combinaison unique d’un ou de plusieurs champs de piste.
Par défaut, les emplacements de stabilisation sont créés avec une méthode géodésique pour le calcul des distances. Il est recommandé d’utiliser une distance géodésique dans les cas suivants :
- Les pistes croisent la ligne 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.
- Votre jeu de données n’est pas dans une projection locale : si vos données en entrée sont dans une projection locale, utilisez la méthode de calcul de distance planaire. Par exemple, utilisez la méthode planaire pour examiner les emplacements de stabilisation dans un seul état. Votre couche en entrée ou votre référence spatiale de traitement doit être définie comme une référence spatiale locale pour votre jeu de données.
Les emplacements de stabilisation en sortie peuvent être représentés de quatre façons. Le tableau suivant indique un exemple de chacune de ces représentations :
Type en sortie Description Exemple All features (Toutes les entités)
Chaque entité est renvoyée. Les entités obtenues sont de type Instantané.
Les entités qui appartiennent à une stabilisation sont renvoyées en bleu. Les entités qui n’appartiennent pas à une stabilisation sont renvoyées en gris.
Seule une statistique de total est calculée pour ce type de sortie. Le total représente le nombre d’entités appartenant à une stabilisation unique. Les entités de non stabilisation afficheront un total de 0.
Entités de stabilisation
Seules les entités qui font partie d’une stabilisation sont renvoyées. Les entités obtenues sont de type Instantané.
Seule une statistique de total est calculée pour ce type de sortie. Le total représente le nombre d’entités appartenant à une stabilisation unique.
Mean center (Centre médian)
Chaque stabilisation a un point unique renvoyé représentant le centre médian de la stabilisation à la fois en termes de temps et de distance. Les entités obtenues sont de type Intervalle.
Le total d‘entités dans la stabilisation est toujours calculé. Vous pouvez calculer en option les statistiques sur ce type d’entité de stabilisation. Par défaut, aucune statistique n’est calculée.
Enveloppes convexes
Chaque stabilisation est représentée par une enveloppe convexe de toutes les entités de stabilisation. Les entités obtenues sont de type Intervalle.
Le total d‘entités dans la stabilisation est toujours calculé. Vous pouvez calculer en option les statistiques sur ce type d’entité de stabilisation. Par défaut, aucune statistique n’est calculée.
Outre les champs provenant de la couche en entrée, les champs suivants sont inclus dans toutes les entités en sortie :
Nom du champ Description count
Nombre d’entités figurant dans l’arrêt
dwellid
ID unique de l’arrêt auquel l’entité appartient
meanx
Valeur moyenne des coordonnées x qui constituent l’arrêt
meany
Valeur moyenne des coordonnées y qui constituent l’arrêt
meandistance
Distance moyenne entre des points consécutifs à un emplacement d’arrêt
date
Instant de la création de chaque entité lorsque le type en sortie est Dwell features (Entités d’arrêt), Mean centers (Centres moyens) ou All features (Toutes les entités)
start_date
Heure de début de la création lorsque le type en sortie est Convex hulls (Enveloppes convexes)
end_date
Heure de fin de la création lorsque le type en sortie est Convex hulls (Enveloppes convexes)
Si le type en sortie est All Features (Toutes les entités), les deux champs ci-dessus sont calculés pour les résultats appartenant à un arrêt. Les résultats qui en relèvent pas d’une stabilisation renverront une valeur de 0 pour le champ count, le champ date renverra la valeur temporelle de l’entité en entrée et tous les autres champs renverront une valeur de null.
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 :
Option de fractionnement Description 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 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 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. 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 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. 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.) 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.). 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.
Lors du calcul de l’enveloppe convexe, si un emplacement d’arrêt est complètement stationnaire (un emplacement unique) ou composé de deux points uniques, une petite valeur basée sur la tolérance de la référence spatiale utilisée dans une analyse est employée comme largeur, hauteur ou diamètre de création de polygones en sortie au lieu d’enveloppes convexes. Ces polygones sont utilisés pour visualisation et ne représentent pas l’étendue spatiale de la stabilisation. Des exemples de ces situations sont décrits dans le tableau suivant :
Cas en entrée Description Exemple Coïncident (un point unique en termes spatial)
Si les entités en entrée sont empilées (coïncidentes), l’enveloppe convexe obtenue sera un polygone non valide.
Dans cet exemple, les entités en entrée coïncidentes sont représentées par le point rouge au centre du polygone jaune. Le polygone jaune représente le résultat de l’enveloppe convexe pour les points coïncidents. Le polygone bleu montre ce à quoi ressemble une véritable enveloppe convexe lorsque quatre points non coïncidents figurent à un seul emplacement d’arrêt.
Colinéaires (deux points uniques en termes spatial)
Si les entités en entrée se trouvent sur une ligne (généralement avec deux points spatialement uniques), l’enveloppe convexe obtenue est un polygone non valide.
Dans cet exemple, les points colinéaires sont représentés par les points rouges dans le polygone jaune. Le polygone jaune représente le résultat de l’enveloppe convexe en sortie pour les points colinéaires.
Lors du choix des paramètres pour calculer les emplacements de stabilisation, pensez au type d’observation et à l’échelle de stabilisation que vous souhaitez trouver. Ci-après vous trouverez des exemples de votre manière de modifier les paramètres pour trouver des stabilisations dans les données de déplacement :
- Des entités navire possèdent les champs vesselID et tripID.
- Utilisez les champs vesselID et tripID comme identifiants pour calculer les emplacements d’arrêt le long d’itinéraires distincts.
- Utilisez une tolérance temporelle d’une heure et une tolérance de distance d’un mile nautique pour découvrir où restent les navires dans un mile nautique pendant au moins une heure.
- Les localisateurs d’animaux disposent des champs animalID.
- Utilisez le champ animalID en tant qu’identifiant pour comparer les emplacement de stabilisation d’animaux spécifiques.
- Pour connaître la plage d’un animal, indiquez une tolérance temporelle de 3 jours et une tolérance de distance de 10 miles afin de découvrir les habitats préférés des animaux.
- Pour réduire la zone d’intérêt, utilisez une tolérance temporelle de 2 heures et une tolérance de distance de 100 mètres.
- Des entités navire possèdent les champs vesselID et tripID.
Vous pouvez améliorer les performances de l’outil Find Dwell Locations (Rechercher les emplacements d’arrêt) de l’une des manières suivantes :
- Définissez l’environnement de l’étendue de manière à analyser uniquement des données d’intérêt.
- Générez les résultats en sortie en tant que Dwell features (Entités d’arrêt) ou Mean centers (Centres moyens).
- Subdivisez les pistes autant que possible en ajoutant des entrées Track Field (Champs de piste).
- Utilisez la méthode planaire pour le calcul de distance lieu de la méthode géodésique.
- Fractionnez vos pistes à l’aide des paramètres Time Split (Fraction temporelle), Time Boundary Split (Limite de fraction temporelle) et Distance Split (Fraction spatiale). L’utilisation du 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.
Syntaxe
arcpy.gapro.FindDwellLocations(input_features, output, track_fields, distance_method, distance_tolerance, time_tolerance, output_type, {summary_statistics}, {time_boundary_split}, {time_boundary_reference})
Paramètre | Explication | Type de données |
input_features | Pistes de points à partir de laquelle rechercher les arrêts. L’entrée doit être une couche temporelle comportant des entités qui représentent des instants dans le temps. | Feature Layer |
output | Classe d’entités en sortie qui contient les arrêts obtenus. | Feature Class |
track_fields [track_fields,...] | Un ou plusieurs champs utilisés pour identifier des pistes uniques. | Field |
distance_method | Indique le mode de calcul des distances entre les entités d’arrêt.
| String |
distance_tolerance | Distance maximale entre les points à considérer comme un seul emplacement d’arrêt. | Linear Unit |
time_tolerance | Durée minimale à considérer comme un seul emplacement d’arrêt. La durée et la distance sont prises en compte lors de la recherche d’arrêts. Le paramètre Distance Tolerance (Tolérance de distance) précise la distance. | Time Unit |
output_type | Indique le mode de génération des entités d’arrêt en sortie.
| String |
summary_statistics [summary_statistics,...] (Facultatif) | Statistiques qui seront calculées sur les champs spécifiés.
| Value Table |
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 de fenêtre Python ci-dessous illustre l'utilisation de l'outil FindDwellLocations.
# Name: FindDwellLocations.py
# Description: Find the mean centers representing locations where ships have stayed within 1 mile across 4 hours of travel
# Requirements: ArcGIS GeoAnalytics Desktop tools
# Import system modules
import arcpy
# Set local variables
inFeatures = "c:/mydata/ShippingData.gdb/MyAtlanticShips"
outFeatures = "c:/mydata/OutputDatasets/AtlanticShips_DwellLocations.shp"
trackIdentifier = "SHIPID"
distance = "1 Miles"
timeDuration = "4 Hours"
outputType = "MEAN_CENTERS"
statistics = [["SPEED", "MEAN"]]
# Execute Find Dwell Locations
arcpy.gapro.FindDwellLocations(inFeatures, outFeatures, trackIdentifier,
"GEODESIC", distance, timeDuration,
outputType, statistics)
Environnements
Informations de licence
- Basic: Non
- Standard: Non
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?