Descripción del software

Esta herramienta está construida en lenguaje C++, sólo utiliza librerías std, y ha sido compilada para Windows.

Flujo de ejecución

La herramienta se puede describir utilizando el siguiente diagrama de flujo.

Flujo Velocidades por Eje

Lectura de parámetros

En esta etapa el método constructor de la clase Parametros se encarga de leer desde el archivo entregado en línea de comandos los parámetros necesarios para que opere el programa. Estos parámetros serán detallados en la sección de uso de la herramienta.

Lectura de diccionario de tramos

La función leeDiccionarioTramos() tiene por objetivo leer y almacenar los datos del archivo Ejes_UOCT_AAAAMM.csv, los que corresponden a datos extras con los que se construye el reporte de velocidades para UOCT. Se definen los tramos a utilizar por eje y sus nuevos nombres.

Lectura de diccionario de servicios

La función LeeServicios() es la encargada de leer el archivo de diccionario de servicios, con los distintos códigos que se utilizan en los servicios según el dato desde donde provenga la información. Principalmente, se utiliza para cruzar la información de servicio que viene en los datos GPS con las de trazados.

Lectura de diccionario de prioridades

La función leeDiccionarioPrioridad() lee y almacena los datos que provienen del archivo Ejes_Prioridad_AAAAMM.csv, que contiene los ejes para el reporte de velocidades para Fiscalización, sus nombres y la prioridad de cada uno de estos.

Lectura de datos GPS

La función LeerPosicionamientoOnLine() lee y almacena solamente los datos GPS de los servicios que fueron definidos para los ejes y para los días definidos en los parámetros. Estos datos son almacenados como trayectorias ordenadas por tiempo por cada vehículo.

Ciclo principal

Leídos los datos de entrada en la función run() de Corredores.cpp, se realiza un ciclo por todos los ejes, y por cada eje sus corredores. Por cada corredor se realizan las siguientes tareas a continuación:

Lectura de tramado

Se leen desde el archivo correspondiente los tramos que definen ese corredor. La función que realiza este proceso es LeeTramado().

Lectura de trazado

Se leen los trazados de los servicios que participan en ese corredor. La función que realiza este proceso es LeerRutas().

Cargador de GPS del corredor

Esta función rescata la información GPS desde los datos ya almacenados previamente, sólo rescata los datos correspondientes a los servicios que participan en el corredor actual. La función que realiza este procedimiento se llama load_gps_dataONLINE().

Cálculo de velocidades

Con todos los datos necesarios ya cargados, se procede al cálculo de las velocidades. Este cálculo lo realiza la función build_data(), que resumidamente es un recorrido por todas las trayectorias de los buses intersectándolas con la grilla espacio-tiempo definida por los tramos y las medias horas. Al intersectar estas trayectorias, se van rescatando los tiempos de entrada y salida por cada tramo y alimentándose en los periodos correspondientes.

Resultados del eje

Con el conjunto de velocidades, o tiempos y distancias por cada tramo-periodo, se procede a guardar estos resultados en forma estándar en el archivo velocidades.csv, guardado en la carpeta con el nombre del proyecto definida en el archivo de parámetros. La descripción de esta tabla se realizará en detalle en la sección de resultados. La función que realiza este procedimiento se llama GeneraArchivoSalidaBaseDatos().

Resultados UOCT

En esta etapa, se va anexando los resultados de este corredor en particular al archivo vel_uoct.csv, que contiene los campos y datos requeridos para la UOCT. El detalle se podrá revisar en la sección de resultados. La función que realiza este procedimiento se llama GeneraArchivoUOCT().

Resultados Fiscalización

El siguiente proceso es la anexión de los resultados al archivo vel_fisca.csv con el formato y datos requeridos por Fiscalización. El detalle de estos campos se detallará en la sección de resultados. La función que realiza este procedimiento se llama GeneraArchivoFisca().