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 resultantes. | Feature Class |
Campos de recorrido | Uno o varios campos que se utilizarán para identificar recorridos únicos. | Field |
Método | Especifica los criterios que se utilizarán para reconstruir recorridos. Si se usa 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) | 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 |
Expresión de zona de influencia (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). 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 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 |
División de distancia (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 |
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) | 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 |
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 recorridos 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 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.
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.
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 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:
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 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 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 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. 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 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 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. 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 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:
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 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
Ejemplo con un espacio entre los dos puntos que se dividen. Esta es la opción predeterminada.
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
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.
- 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.
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:
- 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 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.
| String |
buffer_type | Especifica cómo se 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.
| 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.
| 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 a .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.MakeFeatureLayer_management(inputLyrx, "Hurricanes Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.ApplySymbologyFromLayer_management(hurricanesLayer, inputLyrx)
# Set local variables
trackIdentifier = "EVENTID"
out = "c:/mydata/OutputDatasets.gdb/HurricaneTracks"
bufferExpression = "WINDSPEED * 100"
statistics = [["PRESSURE", "MEAN"]]
# Execute Reconstruct Tracks
arcpy.gapro.ReconstructTracks(hurricanesLayer, out, trackIdentifier,
"GEODESIC", "EXPRESSION", None,
bufferExpression, None, statistics)
Entornos
Casos especiales
Información de licenciamiento
- Basic: No
- Standard: No
- Advanced: Sí