Etiqueta | Explicación | Tipo de datos |
Capa de entrada | 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 |
Clase de entidad de salida | Una clase de entidad nueva con los recorridos puntos resultantes. | Feature Class |
Campos de pistas | Uno o varios campos que se utilizarán para identificar pistas únicas. | Field |
Método | Especifica los criterios que se utilizarán para reconstruir los recorridos. Si se utiliza una zona de influencia, el parámetro Método determina el tipo de zona de influencia.
| String |
Tipo de zona de influencia | Especifica cómo se definirá la distancia de zona de influencia.
| String |
Campo de zona de influencia (Opcional) | Campo que se utilizará para establecer la zona de influencia de 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 |
Expresión de zona de influencia (Opcional) | 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 se expresarán en metros. Utilice expresiones de Arcade como as_kilometers($feature.distance) * 2 + as_meters(15). Si se agrega la capa al mapa, es posible usar los filtros Campos y Auxiliares para construir una expresión. | Calculator Expression |
División de tiempo (Opcional) | Las entidades distanciadas por un tiempo superior a la duración de la división de tiempo se dividirán en pistas separadas. | Time Unit |
División de distancia (Opcional) | Las entidades cuya distancia sea mayor que el valor de división de distancia se dividirán en recorridos separados. | Linear Unit |
División de límite de tiempo (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 |
Referencia de límite de tiempo (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 |
Campos de resumen (Opcional) | Las estadísticas que se calcularán en campos concretos.
| Value Table |
Expresión de división (Opcional) | Expresión que divide los recorridos en función de valores, geometría o valores temporales. Las expresiones que se validen como verdaderas se dividirán. | Calculator Expression |
Tipo de división (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.
| String |
Resumen
Crea pistas de líneas o polígonos a partir de datos de entrada con el tiempo habilitado.
Ilustración
Uso
Reconstruir recorridos se ejecuta en entidades de punto o polígono. 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 recorridos. Por ejemplo, si los campos flightID y Destination se utilizan 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 pistas poligonales. Las entidades de puntos de entrada que no tienen aplicada una zona de influencia generarán pistas 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 el final del intervalo vienen determinados por la hora en la primera y última entidad de un recorrido.
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 de polígono.
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.
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 utilizar ecuaciones que realicen seguimiento.
De manera predeterminada, solo se calculará el recuento de puntos o polígonos de una pista. 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 los recorridos como se indica a continuación:
- División de tiempo: se basa en el tiempo entre entradas. Al aplicar una división de tiempo, se disuelve cualquier recorrido cuando 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: se basa en los intervalos de tiempo definidos. Al aplicar una división de límite de tiempo, los recorridos se segmentan 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 cálculo, 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: se basa en una distancia entre entradas. Al aplicar una división de distancia, se disuelve cualquier recorrido cuando 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 km, las entidades secuenciales que estén separadas más de 5 km formarán parte de un recorrido diferente.
- Expresión de división: se basa en una expresión de Arcade. La aplicación de una expresión de división divide los recorridos basándose en valores, geometría o valores temporales. Por ejemplo, puede dividir los recorridos si el valor de un campo es superior al doble del valor anterior de un recorrido. Para esto, si usa un campo de ejemplo llamado 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 inferior al doble del valor actual.
Puede aplicar ninguna, una, dos, tres o cuatro opciones de división al mismo tiempo. Todos los ejemplos siguientes utilizan un división de espacio. Los resultados, suponiendo que aplique una división de tiempo de 6 horas, un límite de tiempo de 1 día y una división de distancia de 16 km, son los siguientes:
Opción de división Descripció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 en la parte superior de 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 1 día, partiendo de las 0:00 horas. La división azul representa la división de distancia si la distancia entre dos puntos es mayor de 16 km. La división morada representa la división de tiempo si la distancia temporal entre dos puntos secuenciales es de más de 6 horas.
Ejemplo sin división de tiempo ni división de distancia.
Ejemplo con una división de tiempo de 6 horas. Las entidades separadas más de dos horas se dividen en recorridos independientes.
Ejemplo con un límite de tiempo de 1 día empezando a medianoche. En cada intervalo de 1 día a partir de la hora especificada (aquí las 0:00 horas), se crea un nuevo recorrido.
Ejemplo con una división de distancia de 16 kilómetros. Las entidades separadas más de 16 km (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. Las entidades separadas por más de 6 horas de diferencia 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 tiempo de 6 horas y una distancia fraccionada de 16 km. Las entidades separadas más de 6 horas (las entidades a las 06:00 y las 19:00 horas) o más de 16 km se dividen en recorridos separados.
Ejemplo con una división de distancia de 16 km y un límite de tiempo de un día a partir de las 0:00 horas. Las entidades separadas por más de 16 km 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 km, una división de tiempo de 6 horas y un límite de tiempo de un día a partir de las 0:00 horas. Las entidades separadas por más de 16 km o por más de 6 horas, o las que se intersecan con la división de duración de las 0:00 horas se dividen en recorridos separados.
Si 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: permite crear un espacio entre las dos entidades que se dividieron.
- Finalizar después: crear un segmento que acabe después de la división.
- Comenzar antes: crear un segmento que acabe y comience antes de la división.
En el diagrama siguiente se muestra un ejemplo de los tipos de división:
Se muestran tres ejemplos de divisiones de tiempo en los mismos puntos de entrada (amarillo). Opción de división de tiempo Descripción Cinco puntos de entrada con un tiempo y ubicación
Cinco puntos de entrada con el mismo identificador. El tiempo de cada punto se marca debajo de la línea de puntos. Existe una división entre las 2:00 a.m. y las 5:00 a.m. en todos los ejemplos. Cada recorrido se divide en dos segmentos entre el tercer punto y el cuarto punto del recorrido. El primer recorrido es verde y el segundo, morado. El parámetro de tipo de división determina cómo se dividen los recorridos.
Espacio
Ejemplo con un espacio entre los dos puntos que se han dividido. Esta es la opción predeterminada.
Finalizar después
Ejemplo en el que el recorrido termina tras la división, en el cuarto punto. El segundo recorrido empieza en el cuarto punto.
Iniciar antes
Ejemplo en el que el recorrido se divide antes de la división, en el tercer punto. El segundo recorrido empieza en el tercer punto.
A continuación, se ofrecen ejemplos de por qué puede ser conveniente 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 ha aterrizado, está despegando, está aterrizando o vuelva a una altitud constante.
- Utilice el campo aircraft ID como identificador para ver hacia dónde ha volado cada avión.
- Utilice los campos aircraft ID y flight ID como identificadores para comparar distintas rutas.
- Utilice 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.
- Utilice los campos pilot name, aircraft ID y start time para ver el vuelo de cada piloto.
- Utilice el campo aircraft ID como identificador y divida las distancias de más de 1.000 km para determinar los nuevos recorridos, partiendo de que un salto de 1.000 km en las mediciones no debe considerarse como perteneciente al mismo recorrido.
- Utilice el campo aircraft ID como identificador y divida mediante el uso de una expresión cuando el valor del campo flight_maneuvercambie. 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 coinciden, el recorrido se divide.
- 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 ha aterrizado, está despegando, está aterrizando o vuelva a una altitud constante.
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 del recorrido en milisegundos (duration) y cualquier otra estadística opcional (con el formato statisticstype_fieldname)).
Puede mejorar el rendimiento de la herramienta Reconstruir recorridos mediante una o varias de las acciones siguientes:
- 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 utilizando 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 es el que más aumentará el 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 su ArcGIS GeoAnalytics Server para realizar un análisis, consulte GeoAnalytics Tools.
Se puede completar un análisis similar usando lo siguiente:
- La herramienta De puntos a líneas de la caja de herramientas Administración de datos.
Parámetros
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})
Nombre | Explicación | Tipo 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 puntos resultantes. | Feature Class |
track_fields [track_fields,...] | Uno o varios campos que se utilizarán para identificar pistas únicas. | Field |
method | Especifica los criterios que se utilizarán para reconstruir los recorridos. Si se utiliza una zona de influencia, el parámetro method determina el tipo de zona de influencia.
| String |
buffer_type | Especifica cómo se definirá la distancia de zona de influencia.
| String |
buffer_field (Opcional) | Campo que se utilizará para establecer la zona de influencia de 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) |
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 se expresarán en metros. Utilice expresiones de Arcade como as_kilometers($feature.distance) * 2 + as_meters(15). | Calculator Expression |
time_split (Opcional) | Las entidades distanciadas por un tiempo superior a la duración de la división de tiempo se dividirán en pistas separadas. | Time Unit |
distance_split (Opcional) | Las entidades cuya distancia sea mayor que el 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.
| Value Table |
split_expression (Opcional) | Expresión que divide los recorridos en función de valores, geometría o valores temporales. Las expresiones que se validen como verdaderas se dividirán. | 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.
| String |
Muestra de código
El siguiente script independiente muestra cómo utilizar la función 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
# Enable time on the input features using an .lyrx file.
# To create the .lyrx file, add your layer to a map, open the layer properties
# and enable time. Then right-click the layer and select Share As Layer File.
inputLyrx = r'C:\data\Hurricanes.lyrx'
# MakeFeatureLayer converts the .lyrx to features
hurricanesLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Hurricanes Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(hurricanesLayer, inputLyrx)
# Set local variables
trackIdentifier = "EVENTID"
out = "c:/mydata/OutputDatasets.gdb/HurricaneTracks"
bufferExpression = "WINDSPEED * 100"
statistics = [["PRESSURE", "MEAN"]]
# Run Reconstruct Tracks
arcpy.gapro.ReconstructTracks(hurricanesLayer, out, trackIdentifier,
"GEODESIC", "EXPRESSION", None,
bufferExpression, None, statistics)
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí