Crear cubo de espacio-tiempo a partir de ubicaciones definidas (Minería de patrones en espacio-tiempo)

Resumen

Toma los datos del panel o de la estación (ubicaciones definidas donde la geografía no cambia pero los atributos cambian con el tiempo) y los estructura en un formato de datos netCDF creando bins de espacio-tiempo. Para todas las ubicaciones, se evalúa la tendencia de las variables o campos de resumen.

Más información sobre cómo funciona Crear cubo de espacio-tiempo a partir de ubicaciones definidas

Ilustración

Creación de cubo de espacio-tiempo

Uso

  • Esta herramienta toma los datos del panel o de la estación (ubicaciones definidas donde los atributos cambian con el tiempo, pero la geografía no cambia) como Entidades de entrada y los estructura en bins de espacio-tiempo. La estructura de datos que crea se puede interpretar como un cubo tridimensional compuesto de bins de espacio tiempo donde las dimensiones x e y representan el espacio y la dimensión t representa el tiempo.

    Bins de espacio-tiempo en un cubo tridimensional

  • Cada bin tiene una posición fija en el espacio (ubicación x,y si las entradas son puntos, y un conjunto fijo de vértices si las entradas son ubicaciones de polígonos) y en el tiempo (t). Los bins que abarcan la misma área de ubicación definida (ya sea x,y o vértices) comparten el mismo Id. de ubicación. Los bins que abarcan la misma duración comparten el mismo Id. de periodo de tiempo.

    Ubicaciones en el cubo de espacio-tiempo

  • Cada bin del cubo de espacio-tiempo tiene un LOCATION_ID, un time_step_ID, un valor COUNT y valores para cualquier variable o campo de resumen que se haya incluido a la hora de crear el cubo. Los bins que estén asociados a la misma ubicación física compartirán el mismo Id. de ubicación y, conjuntamente, representarán una serie temporal. Los bins que estén asociados al mismo periodo de tiempo compartirán el mismo Id. de periodo de tiempo y, conjuntamente, formarán un intervalo de tiempo.

  • Las Entidades de entrada pueden ser puntos o polígonos y deben representar ubicaciones definidas o fijas con atributos asociados que se hayan capturado con el tiempo. Este tipo de datos se conoce habitualmente como datos de panel o de estación. El campo que contiene la marca de tiempo del evento debe ser del tipo Fecha.

    Nota:

    Si las entidades de entrada están almacenadas en una geodatabase de archivos y contienen curvas verdaderas (almacenadas como arcos y no con vértices), las formas poligonales se distorsionarán cuando se almacenen en el cubo de espacio-tiempo. Para comprobar si las entidades de entrada contienen curvas verdaderas, ejecute la herramienta Verificar geometría con el Método de validación OGC. Si aparece un mensaje de error que indica que la opción seleccionada no admite segmentos no lineales, significa que hay curvas verdaderas en el dataset y que pueden eliminarse y reemplazarse por vértices usando la herramienta Densificar con el Método de densificación Ángulo antes de crear el cubo de espacio-tiempo.

  • Las Entidades de entrada pueden ser formas repetidas incluidas dentro de la misma clase de entidad o un conjunto de entidades con una tabla relacionada que contenga los atributos registrados con el tiempo.

  • La herramienta fallará si los parámetros especificados dan lugar a un cubo con más de dos mil millones de bins.

  • Esta herramienta requiere los datos proyectados para medir distancias con precisión.

  • Si se activa la Agregación temporal, el cubo de espacio-tiempo resultante incluirá un valor del recuento de cada bin que refleja el número de eventos ocurridos en la ubicación asociada dentro del intervalo de tiempo asociado.

  • La salida de esta herramienta es una representación netCDF de las entidades de entrada, así como mensajes en los que se resumen las características del cubo. Los mensajes se escriben en la parte inferior del panel Geoprocesamiento durante la ejecución de la herramienta. Puede acceder a los mensajes desplazándose sobre la barra de progreso, haciendo clic en el botón emergente Botón emergente o ampliando la sección de mensajes en el panel Geoprocesamiento. También puede acceder a los mensajes de una herramienta ejecutada anteriormente a través del Historial de geoprocesamiento. Puede utilizar el archivo netCDF como entrada para otras herramientas como, por ejemplo, Análisis de puntos calientes emergentes o Análisis de valores atípicos locales. Consulte Visualización del cubo de espacio-tiempo para obtener estrategias con las que podrá consultar el contenido del cubo.

  • Seleccione un campo de tipo Fecha para el parámetro Campo de tiempo. Si la entrada corresponde a formas repetidas, este campo debería contener el registro de tiempo asociado a cada entidad. Si la entrada tiene una Tabla relacionada, este campo será el registro de tiempo asociado a cada registro de la tabla.

  • El Intervalo de periodo de tiempo define cómo desea realizar la partición del intervalo de tiempo de los datos. Si la agregación temporal está desactivada, el Intervalo de periodo de tiempo se debe establecer según la estructura existente de los datos. Por ejemplo, si tiene datos censales que se han recopilado durante cinco años, la entrada debería ser 5 años. Active este parámetro si desea agregar temporalmente. Por ejemplo, si tiene datos de sensor que se registran cada 5 minutos, podría decidir agregar utilizando, por ejemplo, intervalos de un día. Los intervalos de periodos de tiempo son siempre duraciones fijas y la herramienta requiere diez periodos de tiempo como mínimo.

    Nota:

    Aunque en la lista desplegable de Intervalo de periodo de tiempo se incluyen varias unidades de tiempo, la herramienta solo admite años, meses, semanas, días, horas, minutos y segundos.

  • Si no es posible crear el cubo de espacio-tiempo, puede que la herramienta no haya podido estructurar los datos de entrada que ha proporcionado en diez intervalos de tiempo. Si aparece un mensaje de error mientras ejecuta esta herramienta, examine las marcas de hora de la entrada para asegurarse de que incluyen un rango de valores (al menos diez). El rango de valores debe abarcar al menos 10 segundos, pues este es el incremento de tiempo más pequeño que utilizará la herramienta. La estadística de Mann-Kendall necesita diez intervalos de tiempo.

  • El Tiempo de referencia puede ser un valor de fecha y hora o simplemente un valor de fecha; no debe ser solo un valor de hora. El formato esperado está determinado por la configuración de tiempo regional del equipo.

  • El análisis de tendencias realizado en las variables agregadas o en los valores de los campos de resumen se basan en la estadística de Mann-Kendall.

  • Las operaciones estadísticas siguientes están disponibles para agregar atributos con esta herramienta: Suma. Media, Mínimo, Máximo, Desviación estándar y Mediana.

  • Los valores nulos presentes en cualquiera de los registros de los campos de resumen darán lugar a que esas entidades se excluyan del cubo de salida. Si existen valores nulos en sus Entidades de entrada, se recomienda encarecidamente ejecutar primero la herramienta Rellenar valores que faltan. Si después de ejecutar la herramienta Rellenar valores que faltan todavía hay valores nulos y el recuento de puntos de cada bin forma parte de su estrategia de análisis, tal vez deba considerar crear cubos separados, uno para el recuento (sin campos de resumen) y otro para campos de resumen. Si el conjunto de valores nulos es distinto para cada campo de resumen, también puede pensar en crear un cubo separado para cada campo de resumen.

  • Al rellenar bins vacíos con SPATIAL_NEIGHBORS, la herramienta realiza una estimación según los 8 vecinos más cercanos. Con esta opción, se necesitan por lo menos 4 vecinos espaciales para rellenar el bin vacío.

  • Al rellenar bins vacíos con SPACE_TIME_NEIGHBORS, la herramienta realiza una estimación según los 8 vecinos más cercanos. Además, se utilizan los vecinos temporales para cada uno de los bins que se determine que son vecinos espaciales hacia delante o hacia atrás 1 paso en el tiempo. Con esta opción, se necesitan por lo menos 13 vecinos en el espacio-tiempo para rellenar el bin vacío.

  • Al rellenar bins vacíos con TEMPORAL_TREND, los dos primeros periodos de tiempo y los dos últimos periodos de tiempo de una ubicación determinada deben tener valores en sus bins para poder interpolar valores en otros periodos de tiempo para esa ubicación.

  • El tipo de relleno TEMPORAL_TREND utiliza el método Spline univariante interpolada del paquete de interpolación de SciPy.

  • Esta herramienta puede aprovechar el aumento de rendimiento disponible en sistemas que utilizan varias CPU (o varias CPU multinúcleo). De forma predeterminada, la herramienta se ejecutará con el 50 % de los procesadores disponibles; no obstante, el número de CPU utilizadas se puede aumentar o disminuir con el entorno Factor de procesamiento en paralelo. La velocidad de procesamiento aumentada es más notable al crear cubos de espacio-tiempo más grandes.

Sintaxis

CreateSpaceTimeCubeDefinedLocations(in_features, output_cube, location_id, temporal_aggregation, time_field, {time_step_interval}, {time_step_alignment}, {reference_time}, {variables}, {summary_fields}, {in_related_table}, {related_location_id})
ParámetroExplicaciónTipo de datos
in_features

La clase de entidad de punto o poligonal de entrada que se va a convertir a un cubo de espacio-tiempo.

Feature Layer
output_cube

El cubo de datos netCDF de salida que se creará.

File
location_id

Un campo de tipo entero que contiene el número de Id. para cada ubicación única.

Field
temporal_aggregation
  • APPLY_TEMPORAL_AGGREGATIONEl cubo de espacio-tiempo agregará temporalmente las entidades según el time_step_interval que indique. Por ejemplo, si tiene datos que se han recopilado diariamente y desea crear un cubo con un time_step_interval semanal.
  • NO_TEMPORAL_AGGREGATIONEl cubo de espacio-tiempo se creará utilizando la estructura temporal existente de sus in_features. Por ejemplo, si tiene datos anuales y desea crear un cubo con un time_step_interval anual. Esta es la opción predeterminada.
Boolean
time_field

El campo que contiene el registro de tiempo para cada fila del dataset. Este campo de tiempo debe ser de tipo Fecha.

Field
time_step_interval
(Opcional)

El número de segundos, minutos, horas, días, semanas o años que representará un periodo de tiempo único. Estos serían algunos ejemplos de entradas válidas para este parámetro: 1 semana, 13 días o 1 mes.

Si la temporal_aggregation está desactivada, significa que no va a agregar temporalmente y este parámetro se debe establecer según la estructura existente de los datos.

Si la temporal_aggregation está activada, significa que va a agregar temporalmente y este parámetro se debe establecer según el time_step_interval que desee crear. Se agregarán todas las entidades que queden dentro del mismo time_step_interval.

Time Unit
time_step_alignment
(Opcional)

Define cómo se realizará la estructura del cubo según un time_step_interval determinado.

  • END_TIMELos periodos de tiempo se alinean con el último evento en el tiempo y se agregan hacia atrás en el tiempo.
  • START_TIMELos periodos de tiempo se alinean con el último evento en el tiempo y se agregan hacia delante en el tiempo.
  • REFERENCE_TIMELos periodos de tiempo se alinean a una fecha/hora particular que especifique. Si todos los puntos de las entidades de entrada tienen una marca de tiempo mayor que el instante de tiempo de referencia indicado (o si es exactamente el punto de tiempo inicial de las entidades de entrada), el intervalo del periodo de tiempo empezará en ese instante de referencia y se agregará hacia delante en el tiempo (como sucede con la alineación START_TIME). Si todos los puntos de las entidades de entrada tienen una marca de tiempo menor que el instante de tiempo de referencia indicado (o si es exactamente el punto de tiempo final de las entidades de entrada), el intervalo del periodo de tiempo finalizará en ese instante de referencia y se agregará hacia atrás en el tiempo (como sucede con la alineación END_TIME). Si el tiempo de referencia indicado está en la mitad de la extensión de tiempo de sus datos, se creará un intervalo de periodo de tiempo que terminará por el tiempo de referencia indicado (como sucede con la alineación END_TIME). Se crearán intervalos adicionales tanto antes como después del tiempo de referencia hasta que se haya cubierto toda la extensión de tiempo de los datos.
String
reference_time
(Opcional)

La fecha/hora que se va a utilizar para alinear los intervalos de periodos de tiempo. Si desea colocar en el bin los datos semanalmente de lunes a domingo, por ejemplo, puede establecer un tiempo de referencia el domingo a medianoche para garantizar que los bins cortan entre domingo y lunes a medianoche.

Date
variables
[[Field, Fill Empty Bins with],...]
(Opcional)

El campo numérico que contiene los valores de atributos que se transferirán al cubo de espacio-tiempo.

Los tipos de relleno disponibles son:

  • DROP_LOCATIONS: las ubicaciones en las que falten datos para alguna de las variables se eliminarán del cubo de espacio-tiempo de salida.
  • ZEROS: rellena los bins vacíos con ceros.
  • SPATIAL_NEIGHBORS: rellena los bins vacíos con el valor medio de los vecinos espaciales.
  • SPACE_TIME_NEIGHBORS: rellena los bins vacíos con el valor medio de los vecinos espaciotemporales.
  • TEMPORAL_TREND: rellena los bins vacíos con un algoritmo de spline univariante interpolada.

Nota:

Los valores nulos presentes en cualquiera de los registros variables darán lugar a un bin vacío. Si existen valores nulos en sus entidades de entrada, se recomienda encarecidamente ejecutar primero la herramienta Rellenar valores que faltan.

Value Table
summary_fields
[[Field, Statistic, Fill Empty Bins with],...]
(Opcional)

Campo numérico que contiene valores de atributos que se utilizan para calcular la estadística especificada al agregar dentro de un cubo de espacio-tiempo. Se pueden especificar varias estadísticas y combinaciones de campos. Los valores nulos presentes en cualquiera de los campos especificados darán lugar a que dicha entidad se excluya del cubo de salida. Si existen valores nulos en sus entidades de entrada, se recomienda encarecidamente ejecutar la herramienta Rellenar valores que faltan antes de crear un cubo de espacio-tiempo.

Los tipos de estadística disponibles son:

  • SUM: suma el valor total para el campo especificado dentro de cada bin.
  • MEAN: calcula el valor medio para el campo especificado dentro de cada bin.
  • MIN: busca el valor más bajo para todos los registros del campo especificado dentro de cada bin.
  • MAX: busca el valor más alto para todos los registros del campo especificado dentro de cada bin.
  • STD: busca la desviación estándar de los valores en el campo especificado dentro de cada bin.
  • MEDIAN: halla el valor medio ordenado de todos los registros del campo especificado dentro de cada bin.

Los tipos de relleno disponibles son:

  • ZEROS: rellena los bins vacíos con ceros.
  • SPATIAL_NEIGHBORS: rellena los bins vacíos con el valor medio de los vecinos espaciales.
  • SPACE_TIME_NEIGHBORS: rellena los bins vacíos con el valor medio de los vecinos espaciotemporales.
  • TEMPORAL_TREND: rellena los bins vacíos con un algoritmo de spline univariante interpolada.

Nota:

Los valores nulos presentes en cualquiera de los registros de los campos de resumen darán lugar a que esas entidades se excluyan del cubo de salida. Si existen valores nulos en sus Entidades de entrada, se recomienda encarecidamente ejecutar primero la herramienta Rellenar valores que faltan. Si después de ejecutar la herramienta Rellenar valores que faltan todavía hay valores nulos y el recuento de puntos de cada bin forma parte de su estrategia de análisis, tal vez deba considerar crear cubos separados, uno para el recuento (sin campos de resumen) y otro para campos de resumen. Si el conjunto de valores nulos es distinto para cada campo de resumen, también puede pensar en crear un cubo separado para cada campo de resumen.

Value Table
in_related_table
(Opcional)

La tabla o vista de tabla que se relacionará con las entidades de entrada.

Table View
related_location_id
(Opcional)

Un campo de tipo entero de la tabla relacionada que contiene el Id. de ubicación sobre el que se basará la relación.

Field

Muestra de código

Ejemplo 1 de CreateSpaceTimeCubeDefinedLocations (ventana de Python)

El siguiente script de la ventana de Python muestra cómo utilizar la herramienta CreateSpaceTimeCubeDefinedLocations.

import arcpy
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_Data", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                               "NO_TEMPORAL_AGGREGATION", "TIME", "1 Months",
                                               "END_TIME", "", "COUNT ZEROS")
Ejemplo 2 de CreateSpaceTimeCubeDefinedLocations (script independiente)

El siguiente script de Phython independiente muestra cómo utilizar la herramienta CreateSpaceTimeCubeDefinedLocations.

# Fill missing values using a feature set and related table
# Use the results to create a space-time cube from defined locations
# Run Emerging Hot Spot Analysis on the data
# Visualize the results in 3d
# Import system modules
import arcpy
# Set geoprocessor object property to overwrite existing output, by default
arcpy.env.overwriteOutput = True
# Local variables ...
arcpy.env.workspace = r"C:\STPM\Chicago.gdb"
try:
    # Fill missing values in a feature class containing block group polygon shapes and a related table containing the incidents
    # Since some of the values are missing we will fill them using the temporal trend method.
    arcpy.FillMissingValues_stpm("Chicago_Feature", "Chicago_FilledFeature", "COUNT", "TEMPORAL_TREND", "", "", NoneNone,
                                 "TIME", "", "MYID", "Chicago_Table", "MYID", "", "", "", "Chicago_FilledTable")
    # Create a defined location space time cube using a related table
    # Using a reference time at the start of the month to force binning fall on month breaks
    # Using temporal aggregation to sum multiple entries into one month
    # Using the method drop location if missing values since we already filled using Fill Missing Values
    arcpy.CreateSpaceTimeCubeDefinedLocations_stpm("Chicago_FilledFeature", r"C:\STPM\Chicago_Cube.nc", "MYID",
                                                   "APPLY_TEMPORAL_AGGREGATION", "TIME", "1 Months", "REFERENCE_TIME",
                                                   "10/1/2015", "", "COUNT SUM DROP_LOCATIONS", "Chicago_FilledTable",
                                                   "MYID")
    # Run an emerging hot spot analysis on the defined locations cube
    # Using contiguity edges so only block groups which bound each other are considered neighbours
    arcpy.EmergingHotSpotAnalysis_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE",
                                       "Chicago_Cube_EmergingHotSpot", "", 1, "",
                                       "CONTIGUITY_EDGES_ONLY")
    # Use Visualize Cube in 3d to see the hot spot results for each time slice
    arcpy.VisualizeSpaceTimeCube3D_stpm(r"C:\STPM\Chicago_Cube.nc", "COUNT_SUM_NONE", "HOT_AND_COLD_SPOT_RESULTS",
                                        "Chicago_Cube_Visualize3d")
except arcpy.ExecuteError:
    # If any error occurred when running the tool, print the messages
    print(arcpy.GetMessages())

Información de licenciamiento

  • Basic: Sí
  • Standard: Sí
  • Advanced: Sí

Temas relacionados