Résumé
Synthétise un ensemble de points dans une structure de données netCDF en les agrégeant dans des groupes spatio-temporels. Au sein de chaque groupe, les points sont comptabilisés et les attributs spécifiés sont agrégés. Pour tous les emplacements des groupes, l'évolution de la comptabilisation, ainsi que les valeurs de champ de récapitulation, sont évaluées.
Illustration
Utilisation
Cet outil agrège vos entités en entrée de points dans des groupes spatio-temporels. La structure de données qui en résulte peut être considérée comme un cube tridimensionnel constitué de groupes spatio-temporels, les dimensions x et y représentant l'espace et la dimension t représentant le temps.
Chaque groupe présente une position fixe dans l'espace (x,y) et dans le temps (t). Les bins couvrant la même surface (x, y) partagent le même ID d'emplacement. Les bins englobant la même durée partagent le même ID d'intervalle temporel. Puisque le cube est toujours rectangulaire, même si vos données ponctuelles ne le sont pas, certains emplacements présenteront un nombre de points nul pour tous les intervalles temporels. Pour de nombreuses analyses, seuls les emplacements comportant des données, avec au moins un nombre de points supérieur à zéro pour au moins un intervalle temporel, seront inclus dans l'analyse.
Dans le cube spatio-temporel, chaque groupe présente une valeur LOCATION_ID, une valeur time_step_ID, une valeur COUNT ainsi que les valeurs Summary Fields (Champs de récapitulation) des champs de récapitulation qui ont été agrégés lors de la création du cube. Les groupes associés au même emplacement physique partagent le même ID d'emplacement et constituent ensemble une série chronologique. Les groupes associés au même intervalle temporel partagent le même ID d'intervalle temporel et constituent ensemble une tranche de temps. La valeur numérique de chaque groupe représente le nombre de points présents à l'emplacement associé de l'intervalle temporel associé.
Les entités en entrée doivent être des points, tels que des délits ou des incendies, des maladies, des données sur les ventes clients ou des accidents de la circulation. Une date doit être associée à chaque point. Le champ contenant l'horodatage de l'événement doit être de type Date. L'outil requiert un minimum de 60 points et divers horodatages. L'outil échoue si les paramètres spécifiés génèrent un cube doté de plus de deux milliards de groupes.
Cet outil nécessite des données projetées pour mesurer précisément les distances.
La sortie produite par cet outil est une représentation netCDF de vos points en entrée, ainsi que des messages récapitulant les caractéristiques du cube qui apparaissent dans la fenêtre Résultats. Le fichier netCDF créé peut être utilisé en entrée dans d'autres outils, tels que Analyse des points chauds émergents ou Analyse de valeurs aberrantes locales. Reportez-vous à la rubrique Visualisation du cube spatio-temporel pour découvrir les stratégies vous permettant de consulter le contenu d'un cube.
Sélectionnez un champ de type Date pour le paramètre Champ temporel. Ce champ doit contenir l'horodatage associé à chaque entité ponctuelle.
L'intervalle temporel définit le mode de partitionnement de vos points agrégés dans le temps. Vous pouvez décider d'agréger les points avec des intervalles d'un jour, d'une semaine ou d'un an, par exemple. Les intervalles temporels sont toujours des durées fixes et l'outil requiert un minimum de dix phases. Si vous n'indiquez aucune valeur dans Intervalle temporel, l'outil en calcule une pour vous. Reportez-vous à la rubrique En savoir plus sur le fonctionnement de l'outil Créer un cube spatio-temporel en agrégeant des points pour obtenir des informations sur le calcul des intervalles temporels par défaut. Les unités d'intervalles temporels valides sont Années, Mois, Heures, Minutes et Secondes.
Indiquez l'Intervalle temporel sous forme d'une valeur d'entier et d'unité. Voici un exemple d'entrées d'intervalles temporels : 1 semaine, 2 semaines, 13 jours ou 1 mois.
Si votre cube spatio-temporel ne peut pas être créé, l'outil peut être incapable de structurer les données que vous avez fournies en 10 intervalles temporels. Si un message d'erreur s'affiche à l'exécution de cet outil, examinez les horodatages des points en entrée pour vérifier qu'ils incluent une plage de valeurs. La plage de valeurs doit couvrir au moins 10 secondes, car il s'agit du plus petit incrément de temps accepté par l'outil. 10 intervalles temporels sont requis par la statistique Mann-Kendall.
Lorsque vous créez un cube spatio-temporel avec des données d'incident, selon l'intervalle temporel que vous choisissez, il est possible de créer un groupe au début ou à la fin du cube qui ne comprend aucune donnée dans toute la période temporelle. Par exemple, si vous choisissez un intervalle temporel d'un mois et que vos données ne se décomposent pas de manière régulière en intervalles d'un mois, alors une phase temporelle dont l'intégralité de la période ne comporte aucune donnée est insérée au début ou à la fin. Ceci peut altérer vos résultats, car la phase déformée temporellement semble comporter beaucoup moins de points que les autres phases temporelles, ce qui est en réalité un résultat artificiel du schéma d'agrégation. Le message indique si une déformation temporelle a lieu dans la première ou la dernière phase temporelle. Pour résoudre ce problème, vous pouvez créer un jeu de sélection de vos données afin qu'elles soient réparties équitablement au sein de l'intervalle temporel désiré.
Il n'est pas rare pour un jeu de données que sa distribution temporelle soit espacée régulièrement. Par exemple, vous pouvez avoir des données annuelles qui tombent toutes le 1er janvier de chaque année et des données mensuelles toutes horodatées le premier de chaque mois. Ce type de données est souvent désigné sous le nom de données de panel. Avec les données de panel, les calculs de déformation temporelle présentent fréquemment de très forts pourcentages. Ceci est normal, car chaque groupe couvre une seule unité de temps en particulier dans l'intervalle donné. Par exemple, si vous avez choisi un intervalle d'un an et que vos données tombaient le 1er janvier de chaque année, chaque groupe ne couvre dans ce cas qu'un jour de l'année. Ceci est parfaitement acceptable, car cela s'applique à chaque groupe. La déformation temporelle pose problème lorsqu'elle est uniquement présente pour certains groupes en raison des paramètres de création des groupes au lieu d'une distribution réelle des données. Il est important d'évaluer la déformation temporelle en termes de couverture attendue dans chaque groupe en fonction de la distribution de vos données.
La déformation temporelle dans le rapport en sortie est calculée en tant que pourcentage de la période temporelle qui ne comporte aucune donnée. Par exemple, un groupe vide aura une déformation temporelle de 100 %. Un groupe doté d'une période temporelle d'un mois et d'un alignement d'intervalle temporel de fin qui ne comporte des données que pour les deux dernières semaines de la première phase temporelle aura une déformation temporelle de 50 % dans la première phase temporelle. Un groupe doté d'une période temporelle d'un mois et d'un alignement d'intervalle temporel de début qui ne comporte des données que pour les deux premières semaines de la dernière phase temporelle aura une déformation temporelle de 50 % dans la dernière phase temporelle.
Une fois le cube spatio-temporel créé, l'étendue spatiale du cube ne peut jamais être étendue. Si une analyse plus poussée du cube spatio-temporel implique l'utilisation d'une zone d'étude (telle que Masque d'analyse de polygone dans l'outil Analyse de points chauds émergents), vérifiez que Masque d'analyse de polygone ne s'étend pas au-delà de l'étendue des entités en entrée lorsque vous créez votre cube. La configuration des polygones de la zone d'étude que vous utiliserez dans des analyses futures comme paramètre d'environnement d'étendue pour créer le cube permet de s'assurer que l'étendue du cube est aussi vaste que nécessaire au début de votre analyse.
Vous pouvez créer un cube modèle à utiliser chaque fois que vous exécutez votre analyse, en particulier si vous souhaitez comparer des données d'une série de périodes. Le même cube modèle assure la cohérence permanente de l'étendue de votre analyse, de la taille de groupe, de l'intervalle temporel, de la référence temporelle et de l'alignement des intervalles temporels.
Si vous fournissez un cube de modèle, les points en entrée qui se trouvent en dehors de l'étendue du cube de modèle sont exclus de l'analyse. De plus, si la référence spatiale associée aux entités ponctuelles en entrée est différente de la référence spatiale associée au cube modèle, l'outil projette les entités en entrée en vue d'apparier le cube modèle avant d'entamer le processus d'agrégation. La référence spatiale associée au cube modèle remplace également les paramètres du système de coordonnées en sortie. En outre, une fois spécifié, le Cube modèle détermine l'étendue de traitement utilisée, même si vous indiquez une étendue de traitement différente. Reportez-vous à la rubrique Fonctionnement de l'outil Créer un cube spatio-temporel en agrégeant des points pour plus d'informations.
L'heure/la date de référence peut être une valeur de date et d'heure ou simplement une valeur de date, mais pas uniquement une valeur d'heure. Le format attendu est fonction des paramètres régionaux de l’ordinateur.
Vous pouvez choisir un type de forme d’agrégation par quadrillage ou hexagone. Bien que les quadrillages constituent la forme d'agrégation la plus courante, les hexagones peuvent être préférables pour certaines analyses.
La valeur de l'option Intervalle de distance indique la largeur des groupes spatio-temporels. Les groupes permettent d'agréger vos données ponctuelles. Les quadrillages pourront avoir, par exemple, des dimensions de 50 mètres sur 50 mètres. Si vous optez pour l'agrégation avec des hexagones, l'intervalle de distance correspond à la hauteur de chaque hexagone et la largeur des hexagones obtenus est de deux fois la hauteur divisée par la racine carrée de 3. Si vous ne spécifiez pas de cube modèle, le groupe dans l'angle supérieur gauche du cube est centré dans l'angle supérieur gauche de l'étendue spatiale de vos entités en entrée.
- Sélectionnez un intervalle de distance adapté à votre analyse. Veillez a assurer un équilibre entre un intervalle de distance trop important qui se traduira par la perte des modèles sous-jacents de vos données ponctuelles et un intervalle de distance trop petit qui produira un cube aux nombres de points nuls. Si vous n'indiquez aucune valeur dans Intervalle de distance, l'outil en calcule une pour vous. Reportez-vous à la rubrique En savoir plus sur le fonctionnement de l'outil Fonctionnement de l'outil Créer un cube spatio-temporel en agrégeant des points pour en savoir plus sur le calcul des intervalles de distance par défaut. Les unités d'intervalle de distance pris en charge sont : Kilomètres, Mètres, Miles et Pieds.
L'analyse de tendance réalisée sur les données de total agrégées et les valeurs de champ de récapitulation repose sur la statistique de Mann-Kendall.
Cet outil permet les opérations statistiques suivantes pour l'agrégation des attributs : Somme, Moyenne, Minimum, Maximum, Ecart type et Médiane.
Lorsque vous remplissez des groupes vides avec SPATIAL_NEIGHBORS, une contiguïté de type « Queens Case » (contiguïté basée sur les tronçons et les angles) du 2e ordre est utilisée (elle inclut les voisins et les voisins des voisins). Un minimum de 4 voisins spatiaux est nécessaire pour remplir le groupe vide à l'aide de cette option.
Lorsque vous remplissez des groupes vides avec SPACE_TIME_NEIGHBORS, une contiguïté de type « Queens Case » (contiguïté basée sur les tronçons et les angles) du 2e ordre est utilisée (elle inclut les voisins et les voisins des voisins). En outre, des voisins temporels sont utilisés pour chacun des groupes identifiés comme étant des voisins spatiaux en se déplaçant vers l'avant et l'arrière de 2 phases temporelles. Un minimum de 13 voisins spatio-temporels est nécessaire pour remplir le groupe vide à l'aide de cette option.
Lorsque vous remplissez des groupes vides avec une tendance temporelle TEMPORAL_TREND, les groupes des deux premières et deux dernières périodes temporelles à un emplacement donné doivent comporter des valeurs afin d’interpoler les valeurs à d’autres périodes temporelles pour cet emplacement.
Le type de remplissage TEMPORAL_TREND utilise la méthode de spline univariée interpolée du paquetage d’interpolation de SciPy.
Les valeurs Null présentes dans les enregistrements des champs de récapitulation entraînent l'exclusion de ces entités de l'analyse. Si le fait de disposer du total des points dans chaque groupe fait partie de votre stratégie d'analyse, vous pouvez créer des cubes distincts, un pour le total (sans Champs de récapitulation) et un pour Champs de récapitulation. Si l'ensemble de valeurs Null est différent pour chaque champ de récapitulation, vous pouvez également créer un cube distinct pour chaque champ de récapitulation.
Syntaxe
arcpy.stpm.CreateSpaceTimeCube(in_features, output_cube, time_field, {template_cube}, {time_step_interval}, {time_step_alignment}, {reference_time}, {distance_interval}, summary_fields, {aggregation_shape_type})
Paramètre | Explication | Type de données |
in_features | Classe d'entités points en entrée à agréger en groupes spatio-temporels. | Feature Layer |
output_cube | Cube de données netCDF en sortie qui sera créé pour contenir les totaux et les récapitulations des données de points des entités en entrée. | File |
time_field | Champ contenant la date et l’heure (horodatage) de chaque point. Ce champ doit être de type Date. | Field |
template_cube (Facultatif) | Cube spatio-temporel de référence qui permet de définir l'étendue d'analyse, l'alignement des groupes et les dimensions des groupes output_cube. Les valeurs time_step_interval, distance_interval et reference_time sont également obtenues à partir du cube modèle. Ce cube modèle doit être un fichier netCDF (.nc) créé avec cet outil. | File |
time_step_interval (Facultatif) | Nombre de secondes, minutes, heures, jours, semaines ou années qui représenteront une seule phase. Tous les points au sein du même intervalle temporel et du même intervalle de distance seront agrégés. (Si un cube modèle est fourni, ce paramètre est ignoré et la valeur de l'option Intervalle temporel est obtenue à partir du cube modèle). Voici un exemple d'entrées valides pour ce paramètre : 1 semaine, 13 jours ou 1 an. | Time unit |
time_step_alignment (Facultatif) | Définit la manière dont l'agrégation aura lieu en fonction d'un time_step_interval donné. Si un template_cube est fourni, la valeur time_step_alignment associée au paramètre template_cube remplace ce paramètre et la valeur time_step_alignment du paramètre template_cube est utilisée.
| String |
reference_time (Facultatif) | Date/heure à utiliser pour aligner les intervalles temporels. Si vous souhaitez regrouper vos données de façon hebdomadaire du lundi au dimanche, par exemple, définissez une heure/date de référence le dimanche à minuit pour vous assurer que les groupes sont séparés entre le dimanche et le lundi à minuit. (Si un template_cube est fourni, ce paramètre est ignoré et la reference_time repose sur le template_cube.) | Date |
distance_interval (Facultatif) | Taille des groupes utilisés pour agréger les in_features. Tous les points qui se trouvent au sein du même distance_interval et du même time_step_interval seront agrégés. Lorsque vous effectuez l'agrégation dans un quadrillage, cette distance sert de hauteur pour construire les polygones hexagonaux. (Si un template_cube est fourni, ce paramètre est ignoré et la valeur d'intervalle de distance repose sur le template_cube.) | Linear Unit |
summary_fields [[Field, Statistic, Fill Empty Bins with],...] | Champ numérique contenant les valeurs attributaires qui permettent de calculer les statistiques indiquées lors de l'agrégation dans un cube spatio-temporel. Vous pouvez spécifier plusieurs combinaisons de statistiques et de champs. Les valeurs nulles sont exclues de tous les calculs statistiques. Types de statistiques disponibles :
Types de remplissage disponibles :
Remarque : les valeurs Null présentes dans les champs de récapitulation entraînent l'exclusion de ces entités de l'analyse. Si le fait de disposer du total des points dans chaque groupe fait partie de votre stratégie d'analyse, vous pouvez créer des cubes distincts, un pour le total (sans les champs de récapitulation) et un pour les champs de récapitulation. Si l'ensemble de valeurs Null est différent pour chaque champ de récapitulation, vous pouvez également créer un cube distinct pour chaque champ de récapitulation. | Value Table |
aggregation_shape_type (Facultatif) | La forme du maillage de polygones dans lequel les données ponctuelles des entités en entrée seront agrégées.
| String |
Exemple de code
Exemple 1 d'utilisation de l'outil CreateSpaceTimeCube (fenêtre Python)
Le script de fenêtre Python ci-dessous illustre l'utilisation de l'outil CreateSpaceTimeCube.
arcpy.env.workspace = r"C:\STPM"
arcpy.CreateSpaceTimeCube_stpm("Homicides.shp", "Homicides.nc", "OccDate", "#", "3 Months",
"End time", "#", "3 Miles", "Property MEDIAN SPACETIME; Age STD ZEROS")
Exemple 2 d'utilisation de l'outil CreateSpaceTimeCube (script Python autonome)
Le script Python autonome ci-dessous illustre l'utilisation de l'outil CreateSpaceTimeCube.
# Create Space Time Cube of homicide incidents in a metropolitan area
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables...
workspace = r"C:\STPM"
try:
# Set the current workspace (to avoid having to specify the full path to the feature
# classes each time)
arcpy.env.workspace = workspace
# Create Space Time Cube of homicide incident data with 3 months and 3 miles settings
# Also aggregate the median of property loss, no date predicted by space-time neighbors
# Also aggregate the standard deviation of the victim's age, fill the no-data with zeros
# Process: Create Space Time Cube By Aggregating Points
cube = arcpy.CreateSpaceTimeCube_stpm("Homicides.shp", "Homicides.nc", "MyDate", "#",
"3 Months", "End_time", "#", "3 Miles", "Property MEDIAN SPACETIME; Age STD ZEROS",
"HEXAGON_GRID")
# Create a polygon that defines where incidents are possible
# Process: Minimum Bounding Geometry of homicide incident data
arcpy.MinimumBoundingGeometry_management("Homicides.shp", "bounding.shp", "CONVEX_HULL",
"ALL", "#", "NO_MBG_FIELDS")
# Emerging Hot Spot Analysis of homicide incident cube using 5 Miles neighborhood
# distance and 2 neighborhood time step to detect hot spots
# Process: Emerging Hot Spot Analysis
cube = arcpy.EmergingHotSpotAnalysis_stpm("Homicides.nc", "COUNT", "EHS_Homicides.shp",
"5 Miles", 2, "bounding.shp")
except arcpy.ExecuteError:
# If any error occurred when running the tool, print the messages
print(arcpy.GetMessages())
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui