Tráfico histórico
La Extensión ArcGIS Network Analyst le permite utilizar la información de tráfico histórica para modelar las velocidades dependientes del tiempo del viaje en carreteras. De esta manera, los tiempos de viaje y las horas de llegada previstas son más fiables y el tiempo que pasa conduciendo realmente es probablemente menor que si se hubieran ignorado los patrones de tráfico.
Los datos del tutorial de ArcGIS Network Analyst, que se encuentran disponibles en ArcGIS.com, incluyen una geodatabase de San Francisco con datos de tráfico. El estudio de la clase de entidad Streets, la tabla DailyProfiles y la tabla Streets_DailyProfiles contenidas en SanFrancisco.gdb, le permitirá comprender mejor este tema. Tras descargar y extraer los datos, puede encontrar la geodatabase de San Francisco en \Network Analyst\Tutorial\SanFrancisco.gdb.
Más información sobre los ejercicios del tutorial de Network Analyst
El tráfico histórico solo se puede configurar en una geodatabase; no se puede configurar en un dataset de red basado en shapefiles.
Crear datos de tráfico histórico para su uso con Network Analyst
Incluso si obtiene sus datos de terceros, es importante entender cómo se crean los datos de tráfico históricos para que pueda configurarlos correctamente en un dataset de red. En esta sección se ofrece información general del modelo que emplea Network Analyst.
Dado que los datos de tráfico capturan el flujo y reflujo continuo de las velocidades de viaje, cada dirección de un borde puede tener muchos costes distintos dependiendo de la hora del día. Este está en contraste a un atributo de coste típico, que permite solo un valor por dirección del borde.
Hay varias formas diferentes para modelar varios costos por dirección de borde. Para entender por qué ArcGIS Network Analyst usa un modelo específico, es importante comprender las deficiencias de la que quizás es la forma más obvia para modelar el tráfico.
Cómo Network Analyst no modela el tráfico histórico
Una opción para almacenar datos de tráfico histórico es crear una serie de costes para cada borde. Los costos representarían las velocidades de tráfico en diferentes horas del día, a lo largo del curso de una semana Por ejemplo, una semana se puede dividir en 168 pausas, intervalos de una hora. Esto significa que cada borde necesitaría 168 atributos de coste para representar cómo tiende a cambiar el tráfico durante el período de una semana. Si el período de tiempo se acorta a intervalos de cinco minutos para proporcionar una resolución temporal mejor, cada borde necesitaría 2,016 atributos de coste. El almacenamiento de todos estos valores únicos requeriría mucho espacio, especialmente en el caso de redes grandes. Además, dado que muchas calles tienen los mismos costes durante el día, habría una gran duplicación de datos innecesaria. Por estas razones, esta opción de modelado no es viable para Network Analyst.
Cómo Network Analyst modela el tráfico histórico
En lugar de almacenar toda la información de tráfico por entidad, ArcGIS utiliza un modelo normalizado para minimizar el tamaño de los datos de tráfico. En lugar de almacenar los 168 o 2.016 atributos de coste por entidad, se crea una tabla relacionada para alojar esta información. Cada fila en la tabla contiene las velocidades u opcionalmente, los tiempos de viaje para cada intervalo en un día. Una fila es un perfil de tráfico; representa cómo cambian las velocidades a lo largo del día. Por ejemplo, si tiene muchas calles secundarias, las calles de 35 millas por hora cuyas velocidades de viaje varían al unísono a lo largo del día, podría crear una fila única en la tabla de perfiles de tráfico para representar estas dinámicas y hacer que todas estas calles señalen a la misma fila o perfil del tráfico. Como verá a continuación, se realizan refinamientos adicionales para que incluso estas carreteras con límites de velocidades distintos que siguen el mismo patrón de tráfico a lo largo del día puedan hacer referencia al mismo perfil de tráfico.
Para entender mejor este modelo de tráfico, suponga que necesita utilizarlo para registrar y almacenar velocidades de viaje para un segmento de calle unidireccional en el transcurso de una semana, empezando el lunes. Primero, determinaría la velocidad de circulación libre, que es la velocidad a la que un vehículo viaja cuando ningún otro tráfico impide su movimiento. El método que utilice para determinar la velocidad de circulación libre depende de usted, pero normalmente el límite de la velocidad u la velocidad promedio observada de paso cuando no hay otro vehículo presente. Supongamos que selecciona la velocidad promedio observada de automóviles y la velocidad de circulación libre estable es de 70 millas por hora.
Ahora puede realizar observaciones a lo largo del día en períodos o intervalos de tiempo iguales. Los intervalos que elija proporcionan a los datos la resolución temporal. Podría elegir intervalos de una hora, intervalos de 10 minutos, etc. Supongamos que elige intervalos de 5 minutos. Las observaciones se registran como factores de escala de las velocidades de circulación libre. Los factores de escala se limitan a un rango de cero a uno. Supongamos que observa automóviles viajando a 28 millas por hora a las 8:00 a.m. Esto es 0,4 veces la velocidad de viaje de circulación libre. A las 5:00 de la tarde, la velocidad promedio es de 60 millas por hora, lo que es alrededor de 0,85 veces la velocidad de viaje de circulación libre. A las 11:00 p.m., hay pocos automóviles en la carretera y su velocidad promedio es de 70 millas por hora, lo que es igual a la velocidad de viaje de circulación libre (el factor de escala es uno).
Una vez finalizadas las observaciones del día, tiene que hacer referencia a una tabla de perfiles de tráfico y elegir el perfil que mejor se adapte a la variación observada de las velocidades relativas a lo largo del día.
Elige el perfil de tráfico 68 (representado en el gráfico siguiente) para representar el tiempo de viaje del segmento los lunes.
La hora del día en un perfil siempre representa la hora local, es decir, la zona horaria donde se encuentra el borde al que se hace referencia. Por consiguiente, un borde en Los Ángeles que hace referencia al perfil 68 tendrá una velocidad que es el 40% de la velocidad de circulación libre a las 8:00 a.m. hora del Pacífico. Un borde en Nueva York que señala al mismo perfil tendrá una velocidad que es el 40% de la velocidad de circulación libre a las 8:00 a.m. hora del Este.
Obtener información acerca de cómo añadir zonas horarias a un dataset de red
Puede disponer de cualquier número de perfiles tráfico entre los que elegir. Al disponer de más perfiles, tiene la posibilidad de modelar tiempos de viaje con mayor precisión. Sin embargo, si dispone de menos perfiles, se reducen los requisitos de espacio para los datos. El objetivo es encontrar un buen equilibrio entre precisión y requisitos de espacio. Es habitual que las redes de calles grandes tengan de docenas a centenares de perfiles de tráfico.
Ahora que ha elegido un perfil para los lunes, tiene que repetir el proceso para los demás días de la semana. Como repaso, dicho proceso es el siguiente:
- Observar o calcular el tiempo de viaje de circulación libre en el segmento de calle. (No es necesario repetirlo, dado que es el mismo independiente del día de la semana.)
- Observar las velocidades promedio para intervalos iguales a lo largo del día.
- Convertir las velocidades a un factor de escala (entre 0 y 1) de la velocidad de circulación libre. (Si está modelando directamente los tiempos de viaje en lugar de velocidades, el factor de escala debe ser mayor que o igual a uno).
- Elegir un perfil para representar el tráfico del segmento de calle para ese día de la semana.
Determina que el perfil 68 también funciona bien para el segmento los demás días de la semana. Esta determinación se suele realizar dado a que los patrones de tráfico general son con frecuencia los mismos todos los días hábiles. No obstante, no es difícil encontrar días de la semana que utilizan perfiles representativos diferentes; por ejemplo, podría resultar que lunes, martes y miércoles utilizan el mismo perfil, mientras que jueves y viernes comparten un perfil diferente.
El tráfico en el segmento durante el sábado y domingo es ligero y constante, de modo que elige el perfil de tráfico 3 (abajo) para representar los tiempos de viaje en fines de semana.
A continuación, almacena las velocidades de viaje de circulación libre y las relaciones entre el segmento de calle y los perfiles de tráfico en una tabla: la tabla de unión Perfiles de tráfico-calles. En las próximas secciones se revisa esta tabla, así como otras entradas requeridas.
Almacenar datos y relaciones en la geodatabase
Necesita una o más clases de entidad de línea y dos tablas en una geodatabase si desea crear un dataset de red con datos de tráfico históricos. Las clases de entidad de línea representan calles, que se deben almacenar en un dataset de entidades. Los perfiles de velocidad se almacenan en una de las tablas y las relaciones entre las calles y perfiles de la velocidad se almacenan en la otra tabla. Estos elementos y los campos requeridos para configurar el tráfico histórico en un dataset de red se describen en las siguientes subsecciones.
Las relaciones entre calles y perfiles de velocidad se realizan sencillamente almacenando valores de identificadores únicos en tablas; no tiene que crear ninguna clase de relación.
Clase de entidad Calles
Cada entidad de calle tiene un identificador único: el valor ObjectID. La tabla de unión Perfiles de calles relaciona las calles con los diversos perfiles de tráfico a través del identificador único.
Otros campos pueden ser útiles a la hora de configurar el tráfico histórico. Se muestran más abajo y se describen con más detalle posteriormente en este tema.
Campo |
Ejemplos de nombre de campo |
Descripción |
---|---|---|
Tiempos de viaje sin distinción de días |
FT_Minutes TF_Minutes |
Se usa para crear un atributo de coste de red cuando se secuencian ubicaciones en problema de ruta o de generación de rutas de vehículos que utiliza tráfico |
Tiempos de viaje de día de la semana |
FT_WeekdayMinutes TF_WeekdayMinutes |
Para crear un atributo de coste de red que se utiliza cuando un segmento de calle no tiene un perfil de tráfico histórico asociado para un día de la semana (Los tiempos de viaje sin distinción de días se utilizan a menudo también como tiempos de viaje específicos del día de la semana.) |
Tiempos de viaje de fin de semana |
FT_WeekendMinutes TF_WeekendMinutes |
Para crear un atributo de coste de red que se utiliza cuando un segmento de calle no tiene un perfil de tráfico asociado para un sábado o domingo |
Zona horaria |
TimeZoneID |
Para crear un atributo de red de zona horaria que es necesario cuando una red abarca varias zonas horarias |
Tabla de perfiles
Cada registro de una tabla de perfiles de tráfico tiene un identificador único y varios campos para almacenar el factor de escala de circulación libre en las distintas horas del día. Las horas del día están divididas en intervalo de tiempo o períodos de tiempo, que deben ser de igual duración y, por tanto, abarcar un período de 24 horas en intervalos iguales. Por ejemplo, si los intervalos de tiempo son de cinco minutos de duración, hay 288 campos (uno para 12:00-12:05 a.m., 12:05-12:10 a.m., etc.).
La geodatabase de San Francisco en los datos de tutorial de Network Analyst tienen perfiles que cubren el día en intervalos de tiempo de cinco minutos. El campo SpeedFactor_0000 contiene los factores de escala de circulación libre para medianoche hasta las 12:05 a.m. El campo SpeedFactor_1140 contiene los múltiplos para el intervalo de tiempo de 11:40 a.m. a 11:45 a.m. Cuando una entidad de calle se relaciona con un perfil, puede obtener su tiempo de viaje esperado para cualquier hora del día. Por ejemplo, si una calle se relaciona con el perfil 16, que se muestran en el gráfico siguiente, puede calcular el tiempo de viaje esperado a las 11:41 a.m. multiplicando el tiempo de viaje de circulación libre con el valor TimeFactor_1140 del perfil (0.889).
Las geodatabases personales limitan las tablas a un máximo de 255 campos. Algunas geodatabases de ArcSDE podrían tener límites similares en el número de campos. Por consiguiente, es posible que tenga que dejar un hueco en los datos para reducir el número de campos en la tabla de perfiles de tráfico. Por ejemplo, si la tabla de perfiles de tráfico va a tener intervalos de cinco minutos y se va a almacenar en una geodatabase personal, la tabla requeriría al menos 288 campos, lo cual no resulta factible. En su lugar, podría utilizar una geodatabase de archivos, dado que admite más de 65.000 campos, o podría eliminar varios campos que representen intervalos de tiempo de velocidad constante como, por ejemplo, desde medianoche a las 3:00 a.m., cuando el tráfico tiende a fluir libremente.
Tabla de unión de Perfiles de calles
La tabla de unión Perfiles de calles identifica las entidades de calle, los tiempos de viaje de circulación libre (o tiempos de viaje) y los perfiles de tráfico relacionados para cada día de la semana. En la siguiente tabla se muestran los campos requeridos, un nombre de campo de ejemplo, los tipos de datos permitidos y una breve descripción:
Campo |
Ejemplos de nombre de campo |
Tipo de datos |
Descripción |
---|---|---|---|
Identificador de clase de entidad de eje |
EdgeFCID Debe denominar este campo EdgeFCID. |
Entero largo |
Identifica la clase de entidad en que se almacena la entidad de calle. |
Identificador de entidad de borde |
EdgeFID Debe denominar este campo EdgeFID. |
Entero largo |
Identifica la entidad de calle. |
Borde desde posición |
EdgeFrmPos Debe denominar este campo EdgeFrmPos. |
Doble |
Trabaja conjuntamente con EdgeToPos para identificar una dirección de viaje o lado de la calle. El cero indica el principio de la entidad de línea tal como se define mediante su dirección digitalizada. Uno indica el extremo contrario. Por ejemplo, un valor EdgeFrmPos de 0 y un valor EdgeToPos de 1 identificaría el lado derecho de la entidad de línea (suponiendo un tráfico por el lado derecho). Los perfiles de tráfico mostrados en el mismo registro solo representarían el tráfico para ese lado de la calle. Cualquier valor decimal especifica una posición a lo largo del dirección digitalizada de la entidad, que permite a la herramienta Disolver red mantener los perfiles apropiados para las calles una vez que los bordes se hayan disuelto conjuntamente. |
Borde a posición |
EdgeToPos Debe denominar este campo EdgeToPos. |
Doble |
Trabaja conjuntamente con EdgeFrmPos para identificar una dirección de viaje o lado de la calle. |
Campo de velocidad base o bien, Campo de tiempo de viaje base |
BaseSpeedKPH o bien, FreeflowMinutes |
Flotante o doble |
La velocidad de circulación libre. Opcionalmente, el tiempo de viaje de circulación libre. Como un campo de velocidad de base, puede representar kilómetros por hora o millas por hora. Como un campo de tiempo de viaje base, puede representar días, horas, minutos o segundos. |
Campo Sunday ProfileID |
Profile_1 SundayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el patrón de tráfico los domingos para la parte de la calle identificada por EdgeFCID, EdgeFID, EdgeFrmPos y EdgeToPos. |
Campo Monday ProfileID |
Profile_2 MondayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el tráfico del lunes. |
Campo Tuesday ProfileID |
Profile_3 TuesdayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el tráfico del martes. |
Campo Wednesday ProfileID |
Profile_4 WednesdayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el tráfico del miércoles. |
Campo Thursday ProfileID |
Profile_5 ThursdayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el tráfico del jueves. |
Campo Friday ProfileID |
Profile_6 FridayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el tráfico del viernes. |
Campo Saturday ProfileID |
Profile_7 SaturdayProfile |
Corto o entero largo |
El Id. de perfil que mejor representa el tráfico del sábado. |
Un ejemplo de una tabla de unión Perfiles de calles es la tabla titulada Streets_DailyProfiles en el gráfico a continuación. El campo, PROFILE_1, representa el campo Sunday ProfileID; PROFILE_7 representa el campo Saturday ProfileID; de PROFILE_2 a PROFILE_6 (no mostrado) representan los campos Monday a Friday ProfileID.
Mire el registro seleccionado (Id. de objeto 111). Se relaciona con los perfiles de cada día de la semana con el lado desde-hasta de la entidad de calle que tiene un Id. de objeto de 28803. EdgeFrmPos identifica la dirección desde-hasta de la calle y los valores EdgeToPos, que son respectivamente cero y uno. El perfil de tráfico 12 representa ese lado de la calle los domingos y sábados, dado que 12 es el valor en los campos PROFILE_1 y PROFILE_7. El campo SPFREEFLOW indica la velocidad de viaje para la calle en la dirección de origen a destino bajo condiciones de circulación libre.
Ahora mire los primeros dos registros. El primer registro (Id. de objeto 109) almacena los Id. de perfil de un segmento de calle en la dirección hasta-desde y el segundo registro (Id. de objeto 110) los almacena para el mismo segmento de calle en la dirección contraria. Esto se deduce de los valores EdgeFCID y EdgeFID, que son idénticos, y los valores EdgeFrmPos y EdgeToPos que son inversos. Además observe que los Id. de perfil de domingo y sábado son cero. Esto significa que no se recogieron los datos o no se seleccionó un perfil para esos días. Al evaluar los tiempos de viaje históricos de sábado o domingo para ese borde, el evaluador deberá retroceder a un atributo de coste secundario definido en el evaluador de tráfico de borde.