Reconstruir recorridos (GeoAnalytics Desktop)

Resumen

Crea recorridos de líneas o polígonos a partir de datos de entrada con el tiempo habilitado.

Ilustración

Herramienta Reconstruir pistas
Se muestran puntos con la función de tiempo habilitada que se han reconstruido para dar lugar a recorridos.

Uso

  • Reconstruir recorridos se ejecuta en entidades poligonales o de puntos. La capa de entrada debe tener el tiempo habilitado con entidades que representen un instante en el tiempo.

  • Puede especificar uno o más campos para identificar los recorridos. Los recorridos se representan mediante la combinación única de uno o más campos de recorrido. Por ejemplo, si se utilizan los campos flightID y Destination como identificadores de recorrido, las entidades ID007, Solden e ID007, Tokyo estarían en dos recorridos separados, dado que tienen valores de campo Destination diferentes.

  • Las entidades que tienen aplicada una zona de influencia generarán recorridos poligonales. Las entidades de puntos de entrada que no tienen aplicada una zona de influencia generarán recorridos de polilíneas.

  • Las entidades de entrada deben estar formadas por entidades con el tiempo habilitado que representen un instante en el tiempo. Los resultados son entidades de líneas o áreas que representan un intervalo en el tiempo. El inicio y final del intervalo vienen determinados por la hora en la primera y última entidad de un recorrido.

    Entidades de entrada con dos recorridos distintos (verde y rojo) que muestran el tipo de tiempo de instante (izquierda) y los recorridos resultantes (derecha) del tipo de tiempo de intervalo
    Se muestran las entidades de entrada con dos recorridos distintos (verde y rojo) que tienen el tipo de tiempo de instante (izquierda) y los recorridos resultantes (derecha) del tipo de tiempo de intervalo.

  • Para los resultados lineales, solo se devolverán los recorridos que contengan más de un punto. Si aplica una zona de influencia, se devolverán todas las entidades.

  • Si lo desea, puede aplicar una zona de influencia a las entidades de entrada. Cuando aplica una zona de influencia, los recorridos resultantes serán entidades poligonales.

    Puntos de entrada con una zona de influencia aplicada reconstruida en recorridos
    Los puntos de entrada con una zona de influencia se reconstruyen en forma de recorridos.

  • Al crear zonas de influencia para entidades de entrada, se crea una zona de influencia para cada entrada. A continuación, se genera una envoltura convexa para crear un recorrido de polígono.

    Puntos de entrada (verde), zona de influencia intermedia para visualización (trama azul) y el recorrido poligonal resultante (azul)
    Se muestra un ejemplo de puntos de entrada (verde), una zona de influencia intermedia para visualización (trazado de tramas de línea azul) y el recorrido poligonal resultante (azul).

  • Los campos utilizados en la expresión de la zona de influencia deben ser numéricos y se aplicarán usando las unidades de la referencia espacial de entrada. Consulte Expresiones de Arcade en la caja de herramientas de GeoAnalytics Desktop para obtener más información. Puede usar ecuaciones que realicen seguimiento.

  • De manera predeterminada, solo se calculará el recuento de puntos o polígonos de un recorrido. Se pueden calcular otras estadísticas especificando el valor del parámetro Campos de resumen.

  • De forma predeterminada, los recorridos se crean utilizando un método geodésico. El método se aplica a los dos componentes siguientes del análisis:

    • Recorridos que cruzan la línea de fecha internacional: cuando se utiliza el método geodésico, las capas de entrada que cruzan la línea de fecha internacional tendrán recorridos que cruzarán correctamente la línea de fecha internacional. Esta es la opción predeterminada. La capa de entrada o la referencia espacial de procesamiento deben estar definidas con una referencia espacial que admita el ajuste alrededor de la línea internacional de cambio de fecha, por ejemplo, una proyección global como proyección cilíndrica equivalente del mundo.
    • Zonas de influencia: se puede crear una zona de influencia de las entidades de entrada. Para obtener más información sobre cuándo aplicar una zona de influencia geodésica o planar, consulte Crear zonas de influencia.

  • Puede dividir recorridos de las siguientes formas:

    • División de tiempo: en función del tiempo entre entradas. Al aplicar una división de tiempo, se divide cualquier recorrido si los datos de entrada están mucho más separados que el tiempo especificado. Por ejemplo, si tiene cinco entidades con el mismo identificador de recorrido y las horas [01:00, 02:00, 03:30, 06:00, 06:30] y define una división de tiempo de 2 horas, se dividirán todas las entidades medidas con más de 2 horas de separación. En este ejemplo, el resultado sería un recorrido con [01:00, 02:00, 03:30] y [06:00, 06:30], porque la diferencia entre 03:30 y 6:00 es superior a 2 horas.
    • División de límite de tiempo: en función de intervalos de tiempo definidos. Al aplicar un límite de tiempo, se dividen en segmentos los recorridos con un intervalo definido. Por ejemplo, si establece el límite de tiempo en 1 día, a partir de las 9:00 AM del 1 de enero de 1990, cada recorrido se truncará a las 9:00 AM cada día. Esta división acelera el tiempo de procesamiento, ya que crea recorridos más pequeños para el análisis. Si a su análisis le conviene dividir por un límite de tiempo recurrente, le recomendamos que lo haga para procesar big data.
    • División de distancia: en función de la distancia entre entradas. Al aplicar una división de distancia, se divide cualquier recorrido si los datos de entrada están mucho más separados que la distancia especificada. Por ejemplo, si fija una división de distancia de 5 kilómetros, las entidades secuenciales que estén separadas más de 5 kilómetros formarán parte de otro recorrido.
    • Expresión de división: basada en una expresión de Arcade. Aplicar una expresión de división divide los recorridos en función de valores, geometría o valores de tiempo. Por ejemplo, puede dividir recorridos cuando un valor de campo es mayor que el doble del valor anterior en un recorrido. Para ello, utilizando un campo de ejemplo denominado WindSpeed, puede utilizar la siguiente expresión: var speed = TrackFieldWindow("WindSpeed", -1, 1); 2* speed[0] < speed[1]. Los recorridos se dividirán cuando el valor anterior (speed[0]) sea menor que dos veces el valor actual.

  • Puede aplicar una, dos, tres, cuatro o ninguna opción de división al mismo tiempo. Todos los ejemplos a continuación utilizan una división de espacio. Los resultados, suponiendo que aplique una división de tiempo de seis horas, un límite de tiempo de un día y una división de distancia de 16 kilómetros, son los siguientes:

    Cinco ejemplos de puntos de entrada (verde) con tiempo variable y divisiones de distancia
    Se muestran cinco ejemplos de puntos de entrada (amarillo) con divisiones de tiempo y distancia distintas.

    Opción de divisiónDescripción

    Seis puntos de entrada con un tiempo y una ubicación

    Puntos de entrada con el mismo identificador. La distancia entre dos puntos se marca sobre la línea punteada y la hora de cada medición de punto se marca debajo de los puntos. La línea temporal presenta cuatro divisiones. Las divisiones de color rojo representan la división de límite de tiempo de un día, partiendo de las 00:00 horas. La división azul representa la división de distancia si la distancia entre dos puntos es mayor de 16 kilómetros. La división morada representa la división de tiempo si la distancia temporal entre dos puntos secuenciales es de más de seis horas.

    Ejemplo sin división de tiempo ni división de distancia

    Ejemplo sin división de tiempo ni división de distancia.

    Ejemplo con una división de tiempo de 6 horas

    Ejemplo con una división de tiempo de seis horas. Las entidades separadas más de dos horas se dividen en recorridos separados.

    Ejemplo con un límite de tiempo de 1 día

    Ejemplo con un límite de tiempo de un día empezando a medianoche. En cada intervalo de un día a partir de la hora especificada (aquí las 00:00 horas), se crea un recorrido.

    Ejemplo con una división de distancia de 16 kilómetros

    Ejemplo con una división de distancia de 16 kilómetros. Las entidades separadas más de 16 kilómetros (las entidades a las 05:00 y las 06:00 horas) se dividen en recorridos separados.

    Ejemplo con una división de tiempo de 6 horas y una división de límite de tiempo de 1 día a las 0:00 horas

    Ejemplo con una división de tiempo de seis horas y un límite de tiempo de un día a partir de las 00:00 horas. Las entidades separadas más de seis horas o las que se intersecan con la división de duración de las 00:00 horas. se dividen en recorridos separados.

    Ejemplo con una división de tiempo de 6 horas y una división de distancia de 16 kilómetros

    Ejemplo con una división de tiempo de seis horas y una división de distancia de 16 kilómetros. Las entidades separadas más de seis horas (las entidades a las 06:00 y a las 19:00 horas) o que están a más de 16 kilómetros de distancia se dividen en recorridos separados.

    Ejemplo con una división de distancia de 16 kilómetros y un límite de tiempo de un día a partir de las 00:00 horas.

    Ejemplo con una división de distancia de 16 kilómetros y un límite de tiempo de un día a partir de las 00:00 horas. Las entidades separadas más de 16 kilómetros o que se intersecan con la división de duración de las 0:00 horas se dividen en recorridos separados.

    Ejemplo con una división de distancia de 16 kilómetros, una división de tiempo de 6 horas y un límite de tiempo de 1 día a partir de las 00:00 horas.

    Ejemplo con una división de distancia de 16 kilómetros, una división de tiempo de seis horas y un límite de tiempo de un día a partir de las 00:00 horas. Las entidades separadas más de 16 kilómetros, más de seis horas o que se intersecan con la división de duración de las 00:00 horas se dividen en recorridos separados.

  • Cuando divide un recorrido utilizando una división de tiempo, división de distancia o expresión de división, puede decidir cómo se crearán los segmentos entre la división. Existen las siguientes opciones:

    • Espacio: cree un espacio entre las dos entidades que se dividieron.
    • Finalizar después de: cree un segmento que termina después de la división.
    • Comenzar antes de: cree un segmento que termina y empieza antes de la división.

    El siguiente diagrama muestra un ejemplo de los tipos de división:

    Tres tipos de divisiones de tiempo

    Se muestran tres ejemplos de divisiones de tiempo en los mismos puntos de entrada (amarillo).

    Opción de división de tiempoDescripción

    Cinco puntos de entrada con un tiempo y una ubicación

    Cinco puntos de entrada con el mismo identificador. El tiempo de cada punto se marca debajo de la línea de puntos. Hay una división entre las 2:00 a.m. y las 5:00 a.m. para todos los ejemplos. Cada recorrido se divide en dos segmentos entre los puntos tercero y cuarto del recorrido. El primer recorrido es verde y el segundo es morado. El parámetro de tipo de división define cómo se dividen los recorridos.

    Espacio División de espacio

    Ejemplo con un espacio entre los dos puntos que se dividen. Esta es la opción predeterminada.

    Finalizar después de División Finalizar después de

    Ejemplo en el que el recorrido termina después de la división, en el cuarto punto. El segundo recorrido comienza en el cuarto punto.

    Comenzar antes de División Comenzar antes de

    Ejemplo en el que el recorrido se divide antes de la división, en el tercer punto. El segundo recorrido comienza en el tercer punto.

  • A continuación, se ofrecen ejemplos de por qué convendría definir los recorridos mediante los parámetros de división y el parámetro de identificador de campo partiendo del ejemplo del vuelo de un avión comercial:

    • Una entidad de avión tiene los campos aircraft ID, flight ID, pilot name, start time y flight_maneuver. El campo flight_maneuver representa si el avión está en tierra, despegando, aterrizando o a una altitud constante.
      • Use el campo aircraft ID como identificador para ver a dónde ha viajado cada avión.
      • Use los campos aircraft ID y flight ID como identificadores para comparar rutas diferentes.
      • Use el campo aircraft ID y el límite de tiempo de un año para examinar los vuelos de cada avión en un año cada vez.
      • Use los campos pilot name, aircraft ID y start time para ver el vuelo de cada piloto.
      • Use el campo aircraft ID como identificador y divida las distancias de más de 1.000 kilómetros para determinar los nuevos recorridos, partiendo de que un salto de 1.000 kilómetros en las mediciones no debe considerarse como perteneciente al mismo recorrido.
      • Utilice el campo aircraft ID como identificador y divida con una expresión cuando cambie el valor del campo flight_maneuver. Por ejemplo, var flight_manuever = TrackFieldWindow("maneuver", -1, 1); flight_maneuver[0] != flight_maneuver[1] comprueba si el valor actual de un recorrido y el valor anterior coinciden. Si no, el recorrido se divide.

  • Los recorridos de salida devolverán los campos utilizados como identificadores de recorrido, el recuento de las entidades dentro de un recorrido (count), la hora de inicio y finalización de cada recorrido (start_date y end_date), la duración en milisegundos (duration) y cualquier otra estadística opcional (con formato statisticstype_fieldname)).

  • Es posible mejorar el rendimiento de la herramienta Reconstruir recorridos realizando una o varias de las siguientes acciones:

    • Defina el entorno de extensión para analizar únicamente datos de interés.
    • Utilice el método planar en lugar del geodésico.
    • No aplique ninguna zona de influencia.
    • Divida los recorridos con los parámetros División de tiempo, División de límite de tiempo, División de distancia o Expresión de división. El parámetro División de límite de tiempo tendrá la mayor mejora de rendimiento.
    • Utilice datos locales en los que se ejecute el análisis.

  • Esta herramienta de geoprocesamiento se basa en Spark. El análisis se completa en su equipo de escritorio utilizando varios núcleos en paralelo. Consulte Consideraciones acerca de las herramientas de GeoAnalytics Desktop para obtener más información acerca de la ejecución de análisis.

  • Al ejecutar herramientas de GeoAnalytics Desktop, el análisis se completa en su equipo de escritorio. Para un rendimiento óptimo, los datos deben estar disponibles en su escritorio. Si utiliza una capa de entidades alojada, se recomienda utilizar ArcGIS GeoAnalytics Server. Si sus datos no están almacenados localmente, se tardará más tiempo en ejecutar una herramienta. Para utilizar ArcGIS GeoAnalytics Server con el fin de realizar un análisis, consulte GeoAnalytics Tools.

  • Se puede completar un análisis similar usando lo siguiente:

Sintaxis

arcpy.gapro.ReconstructTracks(input_layer, out_feature_class, track_fields, method, buffer_type, {buffer_field}, {buffer_expression}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference}, {summary_fields}, {split_expression}, {split_type})
ParámetroExplicaciónTipo de datos
input_layer

Los puntos o polígonos que se reconstruirán en recorridos. La entrada debe ser una capa con tiempo habilitado que represente un instante en el tiempo.

Feature Layer
out_feature_class

Una clase de entidad nueva con los recorridos resultantes.

Feature Class
track_fields
[track_fields,...]

Uno o varios campos que se utilizarán para identificar recorridos únicos.

Field
method

Especifica los criterios que se utilizarán para reconstruir recorridos. Si se usa una zona de influencia, el parámetro method determina el tipo de zona de influencia.

  • GEODESIC Si la referencia espacial se puede desplazar panorámicamente, los recorridos atravesarán la línea de cambio de fecha cuando sea necesario. Si la referencia espacial no se puede desplazar panorámicamente, los recorridos se limitarán a la extensión del sistema de coordenadas y podrían no ajustarse.
  • PLANARLos recorridos no cruzarán la línea de cambio de fecha.
String
buffer_type

Especifica cómo se definirá la distancia de zona de influencia.

  • FIELDSe utilizará un campo único para definir la distancia de zona de influencia.
  • EXPRESSIONSe utilizará una ecuación con campos y operadores matemáticos para definir la distancia de zona de influencia.
String
buffer_field
(Opcional)

El campo que se utilizará para crear zonas de influencia en las entidades de entrada. Los valores de campo se aplican en las unidades de la referencia espacial de la entrada a menos que se use un sistema de coordenadas geográficas, en cuyo caso estarán en metros.

Field
buffer_expression
(Opcional)

La expresión que se utilizará para crear zonas de influencia en entidades de entrada. Los campos deben ser numéricos y la expresión puede incluir los operadores [+ - * / ] y varios campos. Los valores calculados se aplican en las unidades de la referencia espacial de la entrada, a menos que se use un sistema de coordenadas geográficas, en cuyo caso estarán en metros.

Utilice expresiones de Arcade como, por ejemplo, as_kilometers($feature.distance) * 2 + as_meters(15).

Calculator Expression
time_split
(Opcional)

Las entidades que están separadas por un tiempo superior a la duración de la división de tiempo se dividirán en recorridos separados.

Time Unit
distance_split
(Opcional)

Las entidades que están separadas por una distancia superior al valor de división de distancia se dividirán en recorridos separados.

Linear Unit
time_boundary_split
(Opcional)

Un intervalo de tiempo en el que dividir los datos de entrada para el análisis. Un límite de tiempo permite analizar los valores dentro de un intervalo de tiempo definido. Por ejemplo, si utiliza un límite de tiempo de 1 día y establece la referencia de límite de tiempo en el 1 de enero de 1980, los recorridos se dividirán al comienzo de cada día.

Time Unit
time_boundary_reference
(Opcional)

El tiempo de referencia utilizado para dividir los datos de entrada para el análisis. Se crearán límites de tiempo para todo el intervalo de los datos y no es necesario que el tiempo de referencia se encuentre en el comienzo. Si no se especifica ningún tiempo de referencia, se utilizará el 1 de enero de 1970.

Date
summary_fields
[summary_fields,...]
(Opcional)

Las estadísticas que se calcularán en campos concretos.

  • COUNT: el número de valores no nulos. Se puede usar en campos numéricos o de cadenas de caracteres. El recuento de [null, 0, 2] es 2.
  • SUM: la suma de valores numéricos en un campo. La suma de [null, null, 3] es 3.
  • MEAN: el valor medio de los valores numéricos. La media de [0,2, null] es 1.
  • MIN: el valor mínimo de un campo numérico. El mínimo de [0, 2, null] es 0.
  • MAX: el valor máximo de un campo numérico. El valor máximo de [0, 2, null] es 2.
  • STDDEV: la desviación estándar de un campo numérico. La desviación estándar de [1] es null. La desviación estándar de [null, 1,1,1] es null.
  • VAR: la varianza de un campo numérico en un recorrido. La varianza de [1] es null. La varianza de [null, 1,1,1] es null.
  • RANGE: el rango de un campo numérico. Se calcula como el valor mínimo restado del valor máximo. El rango de [0, null, 1] es 1. El rango de [null, 4] es 0.
  • ANY: una cadena de caracteres de un campo de tipo cadena de caracteres.
  • FIRST: el primer valor de un campo especificado en un recorrido.
  • LAST: el último valor de un campo especificado en un recorrido.

Value Table
split_expression
(Opcional)

Una expresión que divide recorridos en función de valores, geometría o valores de tiempo. Se dividirán las expresiones que se validan como true.

Calculator Expression
split_type
(Opcional)

Especifica cómo se crea el segmento de recorrido entre dos entidades cuando se divide un recorrido. El tipo de división se aplica a expresiones de división, divisiones de distancia y divisiones de tiempo.

  • GAPNo se crea ningún segmento entre las dos entidades. Esta es la opción predeterminada.
  • FINISH_LASTSe crea un segmento entre las dos entidades que termina después de la división.
  • START_NEXTSe crea un segmento entre las dos entidades que termina antes de la división.
String

Muestra de código

Ejemplo 1 de ReconstructTracks (script independiente)

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

# Name: ReconstructTracks.py
# Description: Reconstruct hurricane points into hurricane tracks, where each 
#              location is buffered by the wind speed * 100.
# Import system modules
import arcpy
# Set local variables
inFeatures = "c:/mydata/Hurricanes.shp"
trackIdentifier = "EVENTID"
out = "c:/mydata/OutputDatasets.gdb/HurricaneTracks"
bufferExpression = "WINDSPEED * 100"
statistics = [["PRESSURE", "MEAN"]]
# Execute Reconstruct Tracks
arcpy.gapro.ReconstructTracks(inFeatures, out, trackIdentifier, 
                              "GEODESIC", "EXPRESSION", None, 
                              bufferExpression, None, statistics)

Información de licenciamiento

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

Temas relacionados