Etiqueta | Explicación | Tipo de datos |
Capa de puntos de entrada | Los puntos que se emparejarán con líneas. La entrada debe ser una capa de puntos con la función de tiempo habilitada que represente un instante en el tiempo y debe contener al menos un campo que identifique recorridos únicos. | Feature Layer |
Capa de líneas de entrada | Las líneas con las que se emparejarán los puntos. La entrada debe contener campos con valores que indiquen los nodos de origen y de destino de la línea. | Feature Layer |
Clase de entidad de salida | La clase de entidad que contendrá los puntos emparejados. | Feature Class |
Campos de recorrido | Uno o varios campos que se utilizarán para identificar recorridos únicos. | Field |
Distancia de búsqueda | La distancia máxima permitida entre un punto y cualquier línea para que se considere concordancia. Se recomienda utilizar valores menores o iguales que 75 metros. Las distancias más grandes darán como resultado un tiempo de proceso más largo y unos resultados menos precisos. | Linear Unit |
Concordancia de campos de conectividad | Los campos de la capa de líneas que se utilizarán para definir la conectividad de las entidades de línea de entrada.
| Value Table |
Campos de línea a incluir (Opcional) | Uno o varios campos de la capa de líneas de entrada que se incluirán en el resultado de salida. | Field |
Método de distancia (Opcional) | Especifica el método que se utilizará para calcular distancias entre puntos y líneas.
| String |
Coincidencia de valor de dirección (Opcional) | Los valores de atributo y del campo de la capa de líneas que se utilizarán para definir la dirección de las entidades de línea de entrada. Por ejemplo, una capa de líneas tiene un campo llamado direction con valores T (hacia atrás), F (hacia delante), B (ambas) y "" (ninguna). Si no se especifica ningún valor, se presupone que la línea es bidireccional.
| Value Table |
Modo de salida (Opcional) | Especifica si se devolverán todas las entidades de entrada o solo las entidades de entrada que coincidieron con una entidad de línea.
| String |
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 |
Resumen
Alinea puntos de recorrido de entrada con líneas. Los datos de puntos con la función de tiempo habilitada deben incluir entidades que representen un instante en el tiempo. Para el análisis se requieren líneas transitables con campos que indiquen los nodos de origen y destino.
Ilustración
Uso
En la siguiente tabla se enumera la terminología utilizada en la herramienta Alinear recorridos:
Término Descripción Recorrido
Una secuencia de entidades que tengan la función de tiempo habilitada con el instante de tipo tiempo. Las entidades están definidas para estar en la secuencia por un campo de identificación de recorrido y su orden en el tiempo. Por ejemplo, una ciudad puede tener una flota de camiones quitanieves que registren su ubicación cada 30 segundos. El Id. del vehículo puede representar los diferentes recorridos.
Observación
Un punto de un rastreo.
Nodo
Los nodos son los vértices finales de las entidades de línea que se utilizan para indicar la dirección de la línea. El inicio de la línea es el nodo de origen y el final de la línea es el nodo de destino.
Dirección
La dirección de una línea. La dirección hace referencia a cómo una línea puede desplazarse entre el nodo de origen y el nodo de destino.
Conectividad
La conectividad describe cómo se conectan las líneas para representar una red transitable. Las líneas se conectan en función de los valores del nodo de origen y del nodo de destino. Las líneas a las que no pueda llegar un punto, por su conectividad, no se considerarán coincidencias.
Transitable
Las líneas son transitables si están conectadas por nodos comunes. Por ejemplo, si el nodo de origen de la línea A es el mismo que el nodo de destino de la línea B, son transitables.
La herramienta requiere las siguientes capas de entrada de parámetros:
- Capa de puntos de entrada: la capa de puntos de entrada deben ser observaciones con la función de tiempo habilitada que representen un instante en el tiempo. Las observaciones de recorridos que no tengan una marca de tiempo válida se excluirán del análisis.
- Capa de líneas de entrada: la capa de líneas de entrada debe contener campos con la siguiente información de conectividad y se debe especificar en el parámetro Coincidencia de campos de conectividad:
- Unique ID: el identificador único de la línea
- From node: el nodo del que se está alejando el desplazamiento a lo largo de una línea
- To node: el nodo al que se dirige el desplazamiento a lo largo de una línea
La referencia espacial del valor del parámetro Capa de puntos de entrada debe ser la misma que la referencia espacial del valor del parámetro Capa de líneas de entrada. Si los datasets tienen referencias espaciales diferentes, utilice el entorno Sistema de coordenadas de salida para especificar la referencia espacial que se va a utilizar en el análisis, o proyecte los datasets antes del análisis.
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.
Los recorridos deben tener más de una observación para poder utilizarse en el análisis. Los recorridos que solo tengan una observación quedarán desparejados.
Las coincidencias de punto a línea se realizan con las siguientes consideraciones:
- La observación se encuentra dentro de la distancia de búsqueda desde una línea. Este es el requisito mínimo. Las observaciones quedarán desparejadas si no cumplen la condición de distancia de búsqueda.
- La observación puede atravesar las líneas en función de su conectividad.
- La observación se desplaza en una dirección admitida por la línea. Esta es una condición opcional que se realizará si especifica valores para el parámetro Coincidencia de valor de dirección. Los resultados que cumplan esta condición opcional serán más precisos.
Use el parámetro Distancia de búsqueda para especificar la distancia máxima permitida entre una observación y una línea. Por ejemplo, si sabe que la precisión de los puntos GPS es de aproximadamente 100 metros, especifique 100 metros para la distancia de búsqueda.
El parámetro Método de distancia especifica cómo se calcularán las distancias de búsqueda. Existen dos métodos de distancia:
- Geodésico: si la referencia espacial se puede desplazar panorámicamente de forma continua por el antimeridiano, los recorridos cruzarán el antimeridiano cuando proceda. Si la referencia espacial no se puede desplazar panorámicamente de forma continua, los recorridos se limitarán a la extensión del sistema de coordenadas y podrían no ajustarse. Esta es la opción predeterminada.
- Planar: los recorridos no cruzarán el antimeridiano. Utilice esta opción si los datos de entrada utilizan un sistema de coordenadas proyectadas.
Para incluir atributos de línea adicionales en los resultados de salida, especifique los nombres de campo mediante el parámetro Campos de línea a incluir. Estos campos no se utilizarán para fines analíticos y se incluyen para su propio uso. No puede incluir campos de geometría en el resultado de salida.
Utilice el parámetro Concordancia de valor de dirección para definir las indicaciones admitidas para cada entidad de línea. Por ejemplo, una capa de líneas tiene un campo llamado direction con valores T (hacia atrás), F (hacia delante), B (ambas) y "" (ninguna). La coincidencia de direcciones es opcional, pero se recomienda para obtener resultados precisos. Si no se especifica la coincidencia de direcciones, se presupone que la línea es bidireccional.
La herramienta devuelve puntos alineados con la ubicación más cercana a lo largo de la línea con la que coincidieron. No se devuelven las entidades de línea. El identificador único del dataset de línea estará disponible para los resultados coincidentes. El campo de identificador único se especifica utilizando el parámetro Coincidencia de campos de conectividad. Puede identificar las líneas con las que coinciden haciendo referencia a este campo.
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 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 menor que dos veces el valor actual.
Además de los campos del valor del parámetro Capa de puntos de entrada y cualquier campo de línea especificado mediante el parámetro Campos de línea a incluir, los siguientes campos se incluirán en la salida:
Nombre de campo Descripción MatchStatus
Indica si la observación se determinó como coincidencia de una línea. Los valores son M para las entidades coincidentes y U para las entidades no coincidentes.
OrigX
La coordenada x de la observación de entrada. Las coordenadas se almacenan en las unidades de la referencia espacial de salida.
OrigY
La coordenada y de la observación de entrada. Las coordenadas se almacenan en las unidades de la referencia espacial de salida.
MatchX
La coordenada x del resultado coincidente en la línea. Las coordenadas se almacenan en las unidades de la referencia espacial de salida.
MatchY
La coordenada y del resultado coincidente en la línea. Las coordenadas se almacenan en las unidades de la referencia espacial de salida.
MatchDist
La distancia entre la ubicación de origen y la ubicación coincidente para una observación. Las distancias se calculan en función del método de distancia especificado (geodésico o planar). Los valores se registran en metros.
DATE
La marca de tiempo de la observación.
Si el valor del parámetro Modo de salida especificado es Todas las entidades, se devolverán los puntos tanto coincidentes como no coincidentes. Para los puntos no coincidentes, los campos de resultados de salida se incorporarán con valores nulos para los campos numéricos y con cadenas vacías para los campos de cadena de caracteres. Los campos que se incorporarán con valores nulos son los campos de línea especificados mediante el parámetro Campos de línea a incluir, el campo MatchX, el campo MatchY y el campo MatchDist.
Se puede completar un análisis similar usando lo siguiente:
- Reconstruya puntos de recorrido con la función de tiempo habilitada como líneas con la herramienta Reconstruir recorridos.
- Alinee puntos, multipuntos, líneas o polígonos con otras entidades con la herramienta Alinear. Esta herramienta modifica los datos de entrada.
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.
Nota:
Las capas de entidades de geodatabase de StreetMap Premium con licencia no se admiten como entrada para ArcGIS Pro 3.0.
Parámetros
arcpy.geoanalytics.SnapTracks(input_points, input_lines, out_feature_class, track_fields, search_distance, connectivity_field_matching, {line_fields_to_include}, {distance_method}, {direction_value_matching}, {output_mode}, {time_split}, {distance_split}, {time_boundary_split}, {time_boundary_reference})
Nombre | Explicación | Tipo de datos |
input_points | Los puntos que se emparejarán con líneas. La entrada debe ser una capa de puntos con la función de tiempo habilitada que represente un instante en el tiempo y debe contener al menos un campo que identifique recorridos únicos. | Feature Layer |
input_lines | Las líneas con las que se emparejarán los puntos. La entrada debe contener campos con valores que indiquen los nodos de origen y de destino de la línea. | Feature Layer |
out_feature_class | La clase de entidad que contendrá los puntos emparejados. | Feature Class |
track_fields [track_fields,...] | Uno o varios campos que se utilizarán para identificar recorridos únicos. | Field |
search_distance | La distancia máxima permitida entre un punto y cualquier línea para que se considere concordancia. Se recomienda utilizar valores menores o iguales que 75 metros. Las distancias más grandes darán como resultado un tiempo de proceso más largo y unos resultados menos precisos. | Linear Unit |
connectivity_field_matching [connectivity_field_matching,...] | Los campos de la capa de líneas que se utilizarán para definir la conectividad de las entidades de línea de entrada.
| Value Table |
line_fields_to_include [line_fields_to_include,...] (Opcional) | Uno o varios campos de la capa de líneas de entrada que se incluirán en el resultado de salida. | Field |
distance_method (Opcional) | Especifica el método que se utilizará para calcular distancias entre puntos y líneas.
| String |
direction_value_matching [direction_value_matching,...] (Opcional) | Los valores de atributo y del campo de la capa de líneas que se utilizarán para definir la dirección de las entidades de línea de entrada. Por ejemplo, una capa de líneas tiene un campo llamado direction con valores T (hacia atrás), F (hacia delante), B (ambas) y "" (ninguna). Si no se especifica ningún valor, se presupone que la línea es bidireccional.
| Value Table |
output_mode (Opcional) | Especifica si se devolverán todas las entidades de entrada o solo las entidades de entrada que coincidieron con una entidad de línea.
| String |
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 |
Muestra de código
El siguiente script independiente muestra cómo utilizar la función SnapTracks.
# Name: SnapTracks.py
# Description: Snap snowplow fleet tracks to roads to uncover areas that
# may need more resources for snow removal efforts
# 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\Snowplow.lyrx'
# MakeFeatureLayer converts the .lyrx to features
snowplowsLayer = arcpy.management.MakeFeatureLayer(inputLyrx, "Snowplows Layer")
# ApplySymbologyFromLayer sets the time using the .lyrx file definition
arcpy.management.ApplySymbologyFromLayer(snowplowsLayer, inputLyrx)
# Set local variables
lineLayer = "c:/mydata/Roads.gdb/CityStreets"
trackIdentifier = "vehicle_id"
out = "c:/mydata/OutputDatasets.gdb/Snowplows_snapped_to_streets"
searchDistance = "10 Meters"
connectivityFieldMatching = "unique_ID from_node to_node"
directionValueMatching = "dir_travel F T B #"
# Run Snap Tracks
arcpy.gapro.SnapTracks(snowplowsLayer, lineLayer, out, trackIdentifier,
searchDistance, connectivityFieldMatching, None,
"GEODESIC", directionValueMatching, "MATCHED_FEATURES")