Resumen
Busca aquellas ubicaciones en las cuales se han detenido o han permanecido objetos en movimiento, empleando para ello umbrales de tiempo y distancia determinados.
Ilustración
Uso
Esta herramienta de geoprocesamiento está disponible con ArcGIS Enterprise 10.8 o posterior.
La capa de entrada debe contener entidades de punto con función de tiempo habilitada que representen un instante en el tiempo.
Las ubicaciones de permanencia se definen como observaciones secuenciales con poco o ningún movimiento durante un período de tiempo determinado. Dependiendo del campo de aplicación, se pueden conocer como puntos de estadía o detección de inactividad.
En la siguiente tabla se enumera la terminología utilizada en la herramienta Buscar ubicaciones de permanencia:
Plazo Description Ubicación de permanencia
Entidades que representan en qué momento un rastreo ha permanecido estacionario dentro de los parámetros de tiempo y distancia especificados. Este es el resultado de la salida de la herramienta y representa entidades de permanencia tales como puntos, envolturas convexas o centros medios.
Recorrido
Una secuencia de entidades que tenga la función de tiempo habilitada con el tipo de tiempo de instante. Las entidades están definidas para estar en la secuencia por un campo de identificación de recorrido y están ordenadas por el tiempo. Por ejemplo, una ciudad podría tener una flota de camiones quitanieves que registren su ubicación cada 10 minutos. El Id. del vehículo podría representar los diferentes recorridos.
Observación
Un punto de un recorrido.
Geodésico
Una línea dibujada en una esfera. Una línea geodésica dibujada en el globo representa la curvatura del geoide de la Tierra.
Planar
Distancia en línea recta medida en una superficie plana (es decir, plano cartesiano). También se conoce como distancia euclidiana.
Instante
Un único momento en el tiempo representado por una hora de inicio y sin hora de finalización.
Intervalo
Una duración de tiempo representada por una hora de inicio y una hora de finalización.
Los resultados son entidades de puntos que representan instantes en el tiempo, o bien entidades de área 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 permanencia.
Aquellas entidades que carezcan de tiempo se excluyen del análisis.
Solo es posible detectar ubicaciones de permanencia en los rastreos que tengan más de una entidad.
Las ubicaciones de permanencia se determinan utilizando valores de tiempo (Tolerancia de tiempo) y de distancia (Tolerancia de distancia). Primero, la herramienta asigna las entidades a un recorrido mediante un identificador único. El orden del recorrido se rige por el tiempo de las entidades. A continuación, se calcula la distancia entre la primera observación de un rastreo y la siguiente. Se considera que las entidades pertenecen a una permanencia si dos puntos consecutivos en el tiempo permanecen dentro de una distancia determinada durante al menos una duración determinada. Si se encuentran dos entidades que forman parte de una permanencia, la primera entidad de la permanencia se utiliza como punto de referencia y la herramienta busca las entidades consecutivas que estén a un máximo de la distancia especificada respecto del punto de referencia de la permanencia. Una vez encontradas todas las entidades existentes dentro de la distancia especificada, la herramienta recopila las entidades de permanencia y calcula su centro medio. Las entidades anteriores y posteriores a la permanencia actual se agregan a la permanencia si están dentro de una distancia determinada respecto del centro medio de la ubicación de permanencia. Este proceso continúa hasta el final del rastreo.
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.
De forma predeterminada, las ubicaciones de permanencia se crean mediante un método geodésico para el cálculo de la distancia. Se recomienda utilizar la distancia geodésica en las siguientes circunstancias:
- Recorridos que cruzan la línea internacional de cambio de fecha: 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.
- Su dataset no se encuentra en una proyección local: si sus datos de entrada se encuentran en una proyección local, utilice el método de distancia planar. Por ejemplo, utilice el método planar para examinar las ubicaciones de permanencia que corresponden a un mismo estado. La capa de entrada o la referencia espacial de procesamiento deben estar definidas con una referencia espacial local de su dataset.
Las ubicaciones de permanencia de salida pueden representarse de cuatro formas. En la siguiente tabla se muestra un ejemplo de cada posibilidad:
Tipo de salida Description Ejemplo Todas las entidades
Se devuelven todas las entidades. Las entidades resultantes presentan el instante de tipo tiempo.
Las entidades que pertenecen a una permanencia se muestran en azul. Las entidades que no pertenecen ninguna permanencia se muestran en gris.
Solo se calcula una estadística de recuento para este tipo de salida. El recuento representa el número de entidades que pertenecen a una permanencia individual. Las entidades sin permanencia presentan un recuento de 0.
Entidades de permanencia
Solo se devuelven las entidades que forman parte de una permanencia. Las entidades resultantes presentan el instante de tipo tiempo.
Solo se calcula una estadística de recuento para este tipo de salida. El recuento representa el número de entidades que pertenecen a una permanencia individual.
Centros medios
Para cada permanencia, se devuelve un único punto que representa el centro medio de la permanencia en distancia y tiempo. Las entidades resultantes presentan un intervalo de tipo tiempo.
Siempre se calcula el recuento de entidades de la permanencia. Si lo desea, puede calcular estadísticas a partir de este tipo de entidad de permanencia. De forma predeterminada, no se calcula ninguna estadística.
Envolturas convexas
Cada permanencia se representa mediante una envoltura convexa de las entidades de permanencia. Las entidades resultantes presentan un intervalo de tipo tiempo.
Siempre se calcula el recuento de entidades de la permanencia. Si lo desea, puede calcular estadísticas a partir de este tipo de entidad de permanencia. De forma predeterminada, no se calcula ninguna estadística.
Además de los campos de la capa de entrada y de las estadísticas de resumen especificadas, se incluyen los siguientes campos en todas las entidades de salida:
Nombre de campo Description count
El número de entidades contenidas en la permanencia
dwellid
El Id. único de la permanencia a la que pertenece la entidad
meanx
El valor medio de las coordenadas x que componen la permanencia
meany
El valor medio de las coordenadas y que componen la permanencia
meandistance
La distancia media entre los puntos consecutivos de una ubicación de permanencia
instant_datetime
El tiempo de la entidad individual creada si el tipo de salida es el de entidades de permanencia, centro medio o todas las entidades
start_datetime
La hora de inicio creada si el tipo de salida es de envoltura convexa
end_datetime
La hora de fin creada si el tipo de salida es de envoltura convexa
Si el tipo de salida es Todas las entidades, en los resultados que pertenecen a una permanencia, los campos indicados arriba se calculan. Los resultados que no pertenecen a una permanencia devuelven un valor de 0 en el campo count, el campo instant_datetime devuelve el valor de tiempo de la entidad de entrada y todos los demás campos devuelven un valor de null.
Al calcular la envoltura convexa y si la ubicación de permanencia es completamente estacionaria (una ubicación única) o se compone de dos puntos únicos, un valor pequeño basado en la tolerancia de la referencia espacial usada en un análisis se usará como ancho, alto o diámetro para crear polígonos de salida en lugar de envolturas convexas. Estos polígonos se utilizan para la visualización y no representan la extensión espacial de la permanencia. En la tabla que aparece a continuación se describen ejemplos de estos casos:
Caso de entrada Description Ejemplo Coincidente (un punto espacialmente único)
Si las entidades de entrada están apiladas (son coincidentes), la envoltura convexa resultante será un polígono no válido.
En este ejemplo, las entidades de entrada coincidentes están representadas por el punto rojo del centro del polígono amarillo. El polígono amarillo representa el resultado de la envoltura convexa de salida para los puntos coincidentes. El polígono azul muestra el aspecto de una envoltura convexa real cuando existen cuatro puntos no coincidentes en una misma ubicación de permanencia.
Colineal (dos puntos espacialmente únicos)
Si las entidades de entrada se encuentran en una línea (más habitualmente, con dos puntos espacialmente únicos), la envoltura convexa será un polígono no válido.
En este ejemplo, los puntos colineales están representados por puntos rojos en el interior del polígono amarillo. El polígono amarillo representa el resultado de la envoltura convexa de salida para los puntos colineales.
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.
Al elegir los parámetros para calcular las ubicaciones de permanencia, tenga en cuenta el tipo de observación y la escala de las permanencias que desea encontrar. A continuación, se muestran algunos ejemplos de cómo puede modificar los parámetros para encontrar permanencias en datos de movimiento:
- Las entidades de buques presentan los campos vesselID y tripID.
- Use los campos vesselID y tripID como identificadores para calcular las ubicaciones de permanencia existentes a lo largo de rutas diferentes.
- Utilice una tolerancia de tiempo de 1 hora y una tolerancia de distancia de 1 milla náutica para descubrir en qué lugares permanecen los buques dentro de una distancia de 1 milla náutica durante al menos 1 hora.
- Los rastreadores de animales presentan campos animalID.
- Utilice el campo animalID como identificador para comparar las ubicaciones de permanencia de animales concretos.
- Para determinar el rango de movimiento de un animal, utilice una tolerancia de tiempo de 3 días, además de una tolerancia de distancia de 10 millas para descubrir hábitats animales de interés.
- Para áreas de interés más pequeñas, utilice una tolerancia de tiempo de 2 horas y una tolerancia de distancia de 100 metros.
- Las entidades de buques presentan los campos vesselID y tripID.
Puede mejorar el rendimiento de la herramienta Buscar ubicaciones de permanencia mediante una o varias de las siguientes acciones:
- Defina el entorno de extensión para analizar únicamente datos de interés.
- Genere los resultados de salida como Entidades de permanencia o Centro medio.
- Subdivida los rastreos el máximo posible mediante la incorporación de entradas de Campo de recorrido.
- Utilice el método planar para el cálculo de distancias, en lugar del geodésico.
- Divida los recorridos con los parámetros División de tiempo, División de límite de tiempo y División de distancia. El uso del parámetro División de límite de tiempo ofrecerá la mayor mejora de rendimiento.
- Utilice datos locales en los que se ejecute el análisis.
Esta herramienta de geoprocesamiento se basa en ArcGIS GeoAnalytics Server. El análisis se completa en su GeoAnalytics Server y los resultados se almacenan en su contenido en ArcGIS Enterprise.
Al ejecutar herramientas de GeoAnalytics Server, el análisis se completa en GeoAnalytics Server. Para obtener un rendimiento óptimo, haga que los datos estén disponibles para GeoAnalytics Server mediante capas de entidades alojadas en su portal de ArcGIS Enterprise o mediante recursos compartidos de archivos de big data. Los datos que no son locales para su GeoAnalytics Server se moverán a GeoAnalytics Server antes de que comience el análisis. Significa que ejecutar una herramienta tardará más tiempo y, en algunos casos, mover los datos de ArcGIS Pro a GeoAnalytics Server podría fallar. El umbral de error depende de la velocidad de su red, así como del tamaño y complejidad de los datos. Por lo tanto, se recomienda que siempre comparta sus datos o que cree un recurso compartido de archivos de big data.
Más información acerca del uso compartido de datos en el portal
Más información sobre cómo crear un archivo compartido de Big Data mediante Server Manager
Sintaxis
arcpy.geoanalytics.FindDwellLocations(input_features, output_name, track_fields, distance_method, distance_tolerance, time_tolerance, output_type, {summary_statistics}, {data_store}, {time_boundary_split}, {time_boundary_reference})
Parámetro | Explicación | Tipo de datos |
input_features | Los rastreos de puntos a partir de los cual buscar permanencias. La entrada debe ser una capa con función de tiempo habilitada y entidades que representen instantes en el tiempo. | Feature Set |
output_name | El nombre del servicio de entidades de salida. | String |
track_fields [track_fields,...] | Uno o varios campos que se utilizarán para identificar recorridos únicos. | Field |
distance_method | Especifica cómo se calculan las distancias entre las entidades de permanencia.
| String |
distance_tolerance | La distancia máxima entre puntos que se considerará como una ubicación de permanencia única. | Linear Unit |
time_tolerance | La duración de tiempo mínima que se considerará como una ubicación de permanencia única. Se consideran tanto el tiempo como la distancia a la hora de encontrar las permanencias. El parámetro Tolerancia de distancia especifica la distancia. | Time Unit |
output_type | Especifica qué formato de salida tendrán las entidades de permanencia.
| String |
summary_statistics [summary_statistics,...] (Opcional) | Las estadísticas que se calcularán en campos concretos.
| Value Table |
data_store (Opcional) | Especifica el ArcGIS Data Store en el que se guardará la salida. La predeterminada es SPATIOTEMPORAL_DATA_STORE. Todos los resultados almacenados en un big data store espaciotemporal se almacenarán en WGS84. Los resultados almacenados en un data store relacional mantendrán su sistema de coordenadas.
| String |
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 |
Salida derivada
Nombre | Explicación | Tipo de datos |
output | Las ubicaciones de permanencia de punto o polígono de salida. | Conjunto de registros |
Muestra de código
El siguiente script de la ventana de Python muestra cómo utilizar la herramienta FindDwellLocations.
# Name: FindDwellLocations.py
# Description: Find the mean centers representing locations where ships have
# stayed within 15 miles across 4 hours of travel
# Requirements: ArcGIS GeoAnalytics Server
# Import system modules
import arcpy
# Set local variables
inFeatures = "https://sampleserver6.arcgisonline.com/arcgis/rest/services/Hurricanes/MapServer/0"
outputName = "AtlanticShips_DwellLocations"
trackIdentifier = "SHIPID"
distance = "15 Miles"
timeDuration = "4 Hours"
outputType = "MEAN_CENTERS"
statistics = [["SPEED", "MEAN"]]
# Execute Find Dwell Locations
arcpy.geoanalytics.FindDwellLocations(inFeatures, outFeatures, trackIdentifier,
"GEODESIC", distance, timeDuration,
outputType, statistics,
"RELATIONAL_DATA_STORE")
Entornos
- Sistema de coordenadas de salida
El sistema de coordenadas que se usará para el análisis. El análisis se completará en el sistema de coordenadas de entrada salvo que este parámetro especifique otra opción. Para las GeoAnalytics Tools, los resultados finales se almacenarán en el data store espaciotemporal en WGS84.
Información de licenciamiento
- Basic: Requiere ArcGIS GeoAnalytics Server
- Standard: Requiere ArcGIS GeoAnalytics Server
- Advanced: Requiere ArcGIS GeoAnalytics Server