Clasificar eventos de movimiento (Inteligencia)

Resumen

Identifica eventos de giro, eventos de aceleración y la velocidad de un dataset de rastreo de puntos de entrada.

Ilustración

Ilustración de la herramienta Clasificar eventos de movimiento

Uso

  • Para que la herramienta se ejecute, el valor del parámetro Entidades de entrada debe estar en un sistema de coordenadas proyectadas y debe tener habilitada la función de tiempo.

    La herramienta identificará los siguientes eventos:

    • Giro a la derecha o a la izquierda
    • Cambio de sentido a la derecha o a la izquierda
    • Aceleración
    • Deceleración
    • Arranque
    • Parada
    • Velocidad en millas por hora
    • Velocidad en kilómetros por hora
    • Rumbo de origen
    • Rumbo de destino

    Además, se calculará la diferencia de distancia y la diferencia de tiempo entre el punto actual y el punto anterior del recorrido.

    Opcionalmente, se localizará un punto de región de interés.

  • Los giros se anotan en función de la dirección del viaje. Los giros se pueden categorizar de la siguiente manera:

    • Giro a la derecha
    • Giro a la izquierda
    • Cambio de sentido a la derecha
    • Cambio de sentido a la izquierda
    • Detenido
    • Desplazamiento

    Los giros se calculan con los parámetros Curvatura y Número de puntos. Cada punto se evalúa sobre la base del rumbo desde el punto anterior del recorrido hasta el punto actual y desde el punto actual hasta el siguiente punto del recorrido. Si el valor supera el valor especificado en el parámetro Curvatura, se considera un giro; de lo contrario, se considera desplazamiento. Para los recorridos que representan objetos grandes, como aviones o barcos, se recomienda que aumente el valor del parámetro Número de puntos para tener en cuenta la mayor cantidad de tiempo para realizar un giro.

    Cálculos de rumbo
    El rumbo se calcula desde el punto anterior hasta el punto actual y desde el punto actual hasta el siguiente punto, y la diferencia se utiliza para determinar los eventos de giro.

  • Los valores predeterminados de los parámetros Curvatura y Número de puntos se optimizan para recorridos típicos de automóviles, suponiendo una tasa de muestreo aproximada de un segundo. Para los vehículos que se mueven más rápido que los automóviles o los datos que se muestrean en un intervalo distinto de uno por segundo, puede que deba cambiar los valores de los parámetros Curvatura o Número de puntos. Por ejemplo, para un dispositivo GPS personal que muestrea una vez cada cinco segundos, aumente el valor de Número de puntos. Para datos que representan un avión que se muestrea una vez por segundo, ajuste el valor del parámetro Curvatura a 10 o inferior para tener en cuenta la mayor cantidad de tiempo y espacio que se requiere para que un avión realice un giro.

    Las diferencias en el radio de giro entre objetos más pequeños y objetos más grandes
    Objetos más pequeños, como las personas y los coches, requieren menos distancia de giro que objetos más grandes, como aviones y barcos.

  • La velocidad se calcula utilizando la distancia entre puntos dividida por la cantidad de tiempo necesaria para recorrer esa distancia. Las paradas se identifican cuando un vehículo tiene una velocidad de cero. Los arranques se determinan a partir de cuando los puntos aceleran desde una posición de parada.

    El campo acc_event se calcula utilizando la diferencia del punto actual del recorrido y el punto anterior del recorrido y entre el punto actual y el siguiente punto del recorrido. Entre los eventos de aceleración específicos se incluyen los siguientes:

    • Evento Inicio de aceleración: el punto en el que empieza a acelerarse el recorrido. Al punto actual le precede un punto de igual velocidad y está seguido de un punto con una mayor velocidad.

    • Inicio de evento de deceleración: el punto en el que empieza a decelerarse el recorrido. Al punto actual le precede un punto de igual velocidad y está seguido de un punto con una velocidad menor.

    • Aceleración: el rastreo de puntos tiene una velocidad creciente entre el punto anterior y el punto actual. Esto debe ocurrir después del evento de inicio de aceleración y antes del evento de fin de aceleración.

      Cálculo de eventos de aceleración y deceleración
      Los eventos de aceleración y deceleración se calculan utilizando la velocidad media entre puntos.

    • Deceleración: el rastreo de puntos tiene una velocidad decreciente entre el punto anterior y el punto actual. Esto debe ocurrir después del inicio de un evento de deceleración y antes del fin de un evento de deceleración.

    • Evento Fin de aceleración: el punto en el que se detiene un evento de aceleración. El punto actual tiene una velocidad mayor que el punto anterior, pero el punto siguiente es de la misma o menor velocidad. Esto suele ir seguido de un desplazamiento o un evento de deceleración.

    • Fin de evento de deceleración: el punto en el que se detiene un evento de deceleración. El punto actual tiene una velocidad menor que el punto anterior, pero el punto siguiente es de la misma o mayor velocidad. Esto suele ir seguido de un evento de aceleración o parada.

    • Detenido: el rastreo de puntos no se mueve. La velocidad debe ser igual a 0 mph o 0 km/h.

    • Desplazamiento: el rastreo de puntos se mueve a una velocidad que no pertenece a ninguna de las categorías anteriores.

  • La clase de entidad de salida contendrá los siguientes campos:

    • track_id- el identificador único que asocia el punto a un recorrido. Este campo se deriva del parámetro Campo de Id.
    • time- el tiempo asociado a la entidad de rastreo de puntos. Este campo se deriva del campo de tiempo especificado en las propiedades de capa.
    • source_OID- el Id. de objeto de la entidad obtenido del parámetro Entidades de entrada.
    • POINT_X- la coordenada x asociada a la entidad actual.
    • POINT_Y- la coordenada y asociada a la entidad actual.
    • distance_diff- la distancia entre la entidad anterior del recorrido y la entidad actual. La distancia se calcula en las unidades del sistema de coordenadas de entrada.
    • time_diff- la diferencia en segundos entre la entidad anterior del recorrido y la entidad actual.
    • speed- la velocidad en las unidades lineales del sistema de coordenadas de entrada por segundo.
    • speed_mph- la velocidad en millas por hora del recorrido desde la entidad anterior del recorrido a la entidad actual.
    • speed_kph- la velocidad en kilómetros por hora del recorrido desde la entidad anterior del recorrido a la entidad actual.
    • acc_event- eventos de aceleración. Entre los eventos de aceleración específicos se incluyen los siguientes
      • Evento de inicio de aceleración
      • Inicio de evento de deceleración
      • Aceleración
      • Deceleración
      • Evento de fin de aceleración
      • Fin de evento de deceleración
      • Detenido
      • Desplazamiento
    • turn_event- un evento de giro. Entre los eventos de giro específicos se incluyen los siguientes:
      • Giro a la izquierda
      • Giro a la derecha
      • Cambio de sentido a la izquierda
      • Cambio de sentido a la derecha
      • Detenido
      • Desplazamiento
    • from_bearing- el rumbo desde el punto anterior del recorrido al punto actual.
    • to_bearing- el rumbo desde el punto actual del recorrido al siguiente punto.

    Si el valor del parámetro Regiones de interés tiene una clase de entidad asociada, se rellenará un campo roi_id. Este campo incluirá la región de interés que interseca el punto.

    Si el parámetro Crear identificadores de evento de giro está activado, la tabla de atributos de salida incluirá un campo turn_event_id que contiene el identificador único creado para cada evento de giro único. Si un evento de giro tiene varias entidades asociadas, cada entidad compartirá el mismo valor de turn_event_id.

  • Se incluyen los campos from_bearing y to_bearing y están pensados principalmente para ayudar a comprender la direccionalidad del viaje y ayudar a aplicar la simbología para orientar correctamente con la dirección del viaje. La diferencia clave entre estos campos es que el campo from_bearing representa un ángulo hacia atrás desde el punto actual hasta el punto anterior del recorrido.

  • Si el parámetro Excluir eventos que no son de giro está activado, la herramienta elimina las entidades del campo turn_event que tienen el valor Desplazamiento. Esto puede reducir el tamaño de la clase de entidad de salida y puede mejorar el rendimiento. Esto se recomienda cuando desea identificar dónde y con qué frecuencia se utiliza una intersección o dónde un recorrido concreto realizó un evento de giro para su uso en análisis forense.

  • Si el parámetro Representación de entidad de eventos de giro está establecido en Punto medio de giro, todas las entidades de eventos de giro que comparten el mismo valor de turn_event_id se agregarán al centro medio de las entidades. Se trata de un proceso reductivo con el que se eliminarán todas las entidades asociadas y se dejará una sola entidad en el centro medio calculado del evento de giro. Debido la naturaleza destructiva de este parámetro, su uso es más adecuado con el parámetro Excluir eventos que no son de giro activado.

Parámetros

EtiquetaExplicaciónTipo de datos
Entidades de entrada

Una capa de entidades de punto con la función de tiempo habilitada con un campo que anota el recorrido al que está asociado cada punto. La geometría, el identificador de objeto, el nombre del recorrido y el tiempo se transferirán a la clase de entidad de salida. La entrada debe estar en un sistema de coordenadas proyectadas.

Feature Layer
Campo de Id.

Un campo de las entidades de entrada que se usará para obtener los identificadores únicos por rastreo de puntos. El campo se copiará a la clase de entidad de salida.

Field
Clase de entidad de salida

La clase de entidad de salida que contendrá los eventos de movimiento calculados.

Feature Class
Curvatura
(Opcional)

El valor mínimo necesario para clasificar un evento como evento de giro. Una vez calculada la curvatura, cualquier curvatura calculada mayor que este valor hará que el campo turn_event se rellene con el evento de giro relevante, mientras que los valores menores que este harán que el campo turn_event se clasifique como desplazamiento.

Los giros se calculan con los parámetros Curvatura y Número de puntos. Cada punto se evalúa sobre la base del rumbo desde el punto anterior del recorrido hasta el punto actual y desde el punto actual hasta el siguiente punto del recorrido. Si el valor supera el valor especificado en el parámetro Curvatura, se considera un giro. De lo contrario, se considera desplazamiento. Para los recorridos que representan objetos grandes, se recomienda que aumente el valor de Número de puntos para tener en cuenta la mayor cantidad de tiempo para realizar un giro.

Double
Número de puntos
(Opcional)

El número de puntos que se evaluarán antes y después de un punto determinado al calcular la diferencia de rumbo. Al utilizar datos con una tasa de muestreo alta (subsegundo), es posible que tenga que aumentar el valor del parámetro Número de puntos para tener en cuenta la posible reducción de movimiento en ese breve periodo de tiempo. Un valor de 1 es adecuado para automóviles y peatones, suponiendo un muestreo de un segundo en los datos de entrada. Se necesitan valores más grandes para las aeronaves y los barcos; utilice un valor predeterminado de 5.

Long
Regiones de interés
(Opcional)

Las regiones de interés. Esta capa de entidades de entrada debe ser una clase de entidad poligonal. Si se proporciona un valor, se agregará un campo roi al parámetro Clase de entidad de salida.

Feature Layer
Campo Id. de regiones de interés
(Opcional)

Un campo del parámetro Regiones de interés que contiene los identificadores únicos de cada región de interés.

Field
Crear identificadores de evento de giro
(Opcional)

Especifica si se crearán identificadores de evento de giro para la clase de entidad de salida.

  • Activado: se crearán identificadores de evento de giro únicos.
  • Desactivado: no se crearán identificadores de evento de giro únicos. Esta es la opción predeterminada.

Boolean
Excluir eventos que no sean de giro
(Opcional)

Especifica si se excluirán las entidades con un valor de campo turn_event de Desplazamiento.

  • Activado: se excluirán las entidades con un valor de campo turn_event de Desplazamiento.
  • Desactivado: no se excluirán las entidades con un valor de campo turn_event de Desplazamiento; se devolverán todas las entidades. Esta es la opción predeterminada.

Boolean
Representación de entidad de eventos de giro
(Opcional)

Especifica cómo se representarán los eventos de giro de salida.

  • Todas las entidadesSe devolverán todos los puntos asociados con el evento de giro. Esta es la opción predeterminada.
  • Punto medio de giroSe devolverá el centro medio del evento de giro.
String

arcpy.intelligence.ClassifyMovementEvents(in_features, id_field, out_featureclass, {curvature}, {number_of_points}, {regions_of_interest}, {roi_id_field}, {include_turn_ids}, {exclude_non_turn_events}, {turn_events_representation})
NombreExplicaciónTipo de datos
in_features

Una capa de entidades de punto con la función de tiempo habilitada con un campo que anota el recorrido al que está asociado cada punto. La geometría, el identificador de objeto, el nombre del recorrido y el tiempo se transferirán a la clase de entidad de salida. La entrada debe estar en un sistema de coordenadas proyectadas.

Feature Layer
id_field

Un campo de las entidades de entrada que se usará para obtener los identificadores únicos por rastreo de puntos. El campo se copiará a la clase de entidad de salida.

Field
out_featureclass

La clase de entidad de salida que contendrá los eventos de movimiento calculados.

Feature Class
curvature
(Opcional)

El valor mínimo necesario para clasificar un evento como evento de giro. Una vez calculada la curvatura, cualquier curvatura calculada mayor que este valor hará que el campo turn_event se rellene con el evento de giro relevante, mientras que los valores menores que este harán que el campo turn_event se clasifique como desplazamiento.

Los giros se calculan con los parámetros curvature y number_of_points. Cada punto se evalúa sobre la base del rumbo desde el punto anterior del recorrido hasta el punto actual y desde el punto actual hasta el siguiente punto del recorrido. Si el valor supera el valor especificado en el parámetro curvature, se considera un giro. De lo contrario, se considera desplazamiento. Para los recorridos que representan objetos grandes, se recomienda que aumente el valor de number_of_points para tener en cuenta la mayor cantidad de tiempo para realizar un giro.

Double
number_of_points
(Opcional)

El número de puntos que se evaluarán antes y después de un punto determinado al calcular la diferencia de rumbo. Al utilizar datos con una tasa de muestreo alta (subsegundo), es posible que tenga que aumentar el valor del parámetro number_of_points para tener en cuenta la posible reducción de movimiento en ese breve periodo de tiempo. Un valor de 1 es adecuado para automóviles y peatones, suponiendo un muestreo de un segundo en los datos de entrada. Se necesitan valores más grandes para las aeronaves y los barcos; utilice un valor predeterminado de 5.

Long
regions_of_interest
(Opcional)

Las regiones de interés. Esta capa de entidades de entrada debe ser una clase de entidad poligonal. Si se proporciona un valor, se agregará un campo roi al parámetro out_featureclass.

Feature Layer
roi_id_field
(Opcional)

Un campo del parámetro regions_of_interest que contiene los identificadores únicos de cada región de interés.

Field
include_turn_ids
(Opcional)

Especifica si se crearán identificadores de evento de giro para la clase de entidad de salida.

  • INCLUDE_TURN_IDSSe crearán identificadores de evento de giro únicos.
  • NO_TURN_IDSNo se crearán identificadores de evento de giro únicos. Esta es la opción predeterminada.
Boolean
exclude_non_turn_events
(Opcional)

Especifica si se deben filtrar las entidades con un valor de campo turn_event de Desplazamiento.

  • ONLY_TURN_EVENTSSe excluirán las entidades con un valor de campo turn_event de Desplazamiento.
  • ALL_FEATURESNo se excluirán las entidades con un valor de campo turn_event de Desplazamiento; se devolverán todas las entidades. Esta es la opción predeterminada.
Boolean
turn_events_representation
(Opcional)

Especifica cómo se representarán los eventos de giro de salida.

String

Muestra de código

Ejemplo de ClassifyMovementEvents (script independiente)

El siguiente script independiente de Python muestra cómo utilizar la función ClassifyMovementEvents.

# Name: ClassifyMovementEvents.py
# Description: Identify movement events in a point track dataset. 

# Import system modules 
import arcpy 

arcpy.env.workspace = "C:/data/Tracks.gdb"

# Set local variables 
source_features = "Known_Tracks"
output_movement_events = "MovementEvents"
id_field = "device_id"
regions_of_interest = "Named_Areas_Of_Interest"
roi_name = "counties"

# Run tool
arcpy.intelligence.ClassifyMovementEvents(source_features,
                                          output_point_features,
                                          id_field,
                                          regions_of_interest,
                                          roi_name)

Información de licenciamiento

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

Temas relacionados