Sitio web con información GTFS del transporte público elaborado por el proyecto TC-691 "Tropicalización de la Tecnología" de la Universidad de Costa Rica.
3
stars
5
forks
source link
Modificar la creación de tabla de horarios a partir de trips.txt #109
GTFS especifica los horarios como un tiempo de llegada a cada una de las paradas para cada uno de los viajes. Esto genera archivos muy grandes (por ejemplo, nuestro archivo tiene más de 17000 líneas). Cada vez que ingresa la página, el backend tiene que buscar entre estas 17000 líneas para construir tres tablas con solamente unas cuantas decenas de horas. Esto es bruscamente ineficiente, pero es la "única" forma con el formato GTFS as is. Esto podría explicar la lentitud de la página para cargar.
La otra posibilidad es modificar GTFS para ajustarlo a nuestra necesidad. Esto es posible, y muchas agencias alrededor del mundo lo hacen para ajustarse a sus circunstancias.
La modificación propuesta es la siguiente: agregar una nueva columna trip_departure_time a la tabla trips, de forma que solamente hay que utilizar esa columna para crear la tabla de horarios.
Inicialmente, las modificaciones necesarias en la app "rutas":
models.py: en Trip, agregar un nuevo models.TimeField llamado trip_departure_time
views.py: modificar def ruta() para no buscar en StopTimes sino en Trip, en la nueva columna
templates/ruta.html: de preferencia no modificar muchas cosas, porque ya están funcionando, el problema es realmente el tiempo de búsqueda de los horarios.
Un objetivo de esta modificación es también facilitar la edición de horarios, pero no sustituye el editor que está pendiente.
GTFS especifica los horarios como un tiempo de llegada a cada una de las paradas para cada uno de los viajes. Esto genera archivos muy grandes (por ejemplo, nuestro archivo tiene más de 17000 líneas). Cada vez que ingresa la página, el backend tiene que buscar entre estas 17000 líneas para construir tres tablas con solamente unas cuantas decenas de horas. Esto es bruscamente ineficiente, pero es la "única" forma con el formato GTFS as is. Esto podría explicar la lentitud de la página para cargar.
La otra posibilidad es modificar GTFS para ajustarlo a nuestra necesidad. Esto es posible, y muchas agencias alrededor del mundo lo hacen para ajustarse a sus circunstancias.
La modificación propuesta es la siguiente: agregar una nueva columna
trip_departure_time
a la tablatrips
, de forma que solamente hay que utilizar esa columna para crear la tabla de horarios.Inicialmente, las modificaciones necesarias en la app "rutas":
models.py
: en Trip, agregar un nuevomodels.TimeField
llamadotrip_departure_time
views.py
: modificardef ruta()
para no buscar en StopTimes sino en Trip, en la nueva columnatemplates/ruta.html
: de preferencia no modificar muchas cosas, porque ya están funcionando, el problema es realmente el tiempo de búsqueda de los horarios.Un objetivo de esta modificación es también facilitar la edición de horarios, pero no sustituye el editor que está pendiente.