Documentación de Estructuras de Datos del Sistema
GTFS es un formato estándar internacional para compartir datos de transporte público. Los archivos son CSV con campos específicos.
| Archivo | Descripción | Campos Principales | Tipo |
|---|---|---|---|
| agency.txt | Información de las agencias de transporte | agency_id, agency_name, agency_url, agency_timezone |
Requerido |
| routes.txt | Rutas de transporte disponibles | route_id, route_short_name, route_long_name, route_type, route_color |
Requerido |
| stops.txt | Paradas de bus con coordenadas | stop_id, stop_name, stop_lat, stop_lon |
Requerido |
| trips.txt | Viajes individuales por cada ruta | trip_id, route_id, service_id, trip_headsign |
Requerido |
| stop_times.txt | Horarios de llegada/salida en cada parada | trip_id, arrival_time, departure_time, stop_id, stop_sequence |
Requerido |
| calendar.txt | Calendario de servicios (días operativos) | service_id, monday, tuesday, ..., start_date, end_date |
Requerido |
| calendar_dates.txt | Excepciones al calendario | service_id, date, exception_type |
Opcional |
| fare_attributes.txt | Información de tarifas | fare_id, price, currency_type, payment_method |
Opcional |
| fare_rules.txt | Reglas para aplicar tarifas | fare_id, route_id, origin_id, destination_id |
Opcional |
| frequencies.txt | Frecuencias de servicio | trip_id, start_time, end_time, headway_secs |
Opcional |
| feed_info.txt | Metadatos del feed GTFS | feed_publisher_name, feed_publisher_url, feed_lang, feed_version |
Opcional |
Estructura de datos almacenados en Firebase Firestore. Cada colección contiene documentos con los siguientes campos:
| Campo | Tipo | Descripción |
|---|---|---|
title | String | Título de la alerta |
description | String | Descripción detallada |
type | String | Tipo: info, warning, danger |
affectedRoutes | Array[String] | IDs de rutas afectadas |
affectedStops | Array[String] | IDs de paradas afectadas |
startDate | Timestamp | Fecha de inicio |
endDate | Timestamp | Fecha de fin |
isActive | Boolean | Estado activo/inactivo |
createdAt | Timestamp | Fecha de creación |
| Campo | Tipo | Descripción |
|---|---|---|
plateNumber | String | Número de placa |
model | String | Modelo del bus |
year | Number | Año de fabricación |
capacity | Number | Capacidad de pasajeros |
features | Object | Características: {airConditioning, wheelchair, wifi, gps} |
routeId | String | ID de ruta asignada |
conductorId | String | ID del conductor asignado |
status | String | Estado: active, inactive, maintenance |
currentLocation | GeoPoint | Ubicación actual: {lat, lng} |
heading | Number | Dirección en grados (0-360) |
speed | Number | Velocidad en m/s |
lastUpdated | Timestamp | Última actualización GPS |
| Campo | Tipo | Descripción |
|---|---|---|
cedula | String | Número de cédula |
nombre | String | Nombre del conductor |
apellidos | String | Apellidos |
email | String | Correo electrónico |
telefono | String | Número de teléfono |
direccion | String | Dirección de domicilio |
tipo_licencia | String | Tipo de licencia: A, B, C, D, E |
fecha_licencia | Timestamp | Fecha de emisión licencia |
fecha_vencimiento_licencia | Timestamp | Fecha de vencimiento |
estado | String | Estado: activo, inactivo, suspendido |
experiencia_anos | Number | Años de experiencia |
| Campo | Tipo | Descripción |
|---|---|---|
name | String | Nombre completo de la ruta |
shortName | String | Nombre corto (ej: L5) |
description | String | Descripción de la ruta |
color | String | Color en formato hexadecimal |
textColor | String | Color del texto |
type | String | Tipo de transporte: bus, minibus |
stopIds | Array[String] | IDs de paradas en orden |
operatingStartTime | String | Hora de inicio (HH:mm) |
operatingEndTime | String | Hora de fin (HH:mm) |
| Campo | Tipo | Descripción |
|---|---|---|
name | String | Nombre de la parada |
lat | Number | Latitud |
lng | Number | Longitud |
code | String | Código de parada |
routeIds | Array[String] | IDs de rutas que pasan |
amenities | Object | Comodidades: {shelter, bench, lighting, bin, wifi, realTimeDisplay} |
operator | String | Operador: SITU, etc. |
network | String | Red a la que pertenece |
| Campo | Tipo | Descripción |
|---|---|---|
name | String | Nombre del horario |
routeId | String | ID de ruta asociada |
monday - sunday | Boolean | Días operativos (7 campos) |
startDate | Timestamp | Fecha de inicio |
endDate | Timestamp | Fecha de fin |
holidays | Array[String] | Fechas de excepción |
operatingStartTime | String | Hora de inicio (HH:mm) |
operatingEndTime | String | Hora de fin (HH:mm) |
| Campo | Tipo | Descripción |
|---|---|---|
busId | String | ID del bus |
routeId | String | ID de ruta actual |
tripId | String | ID del viaje actual |
conductorId | String | ID del conductor |
lat | Number | Latitud actual |
lng | Number | Longitud actual |
bearing | Number | Dirección en grados |
speed | Number | Velocidad en m/s |
accuracy | Number | Precisión GPS en metros |
status | String | Estado: moving, stopped, idle |
timestamp | Timestamp | Marca de tiempo GPS |
Paradas de bus exportadas desde OpenStreetMap en formato GeoJSON FeatureCollection.
| Campo | Tipo | Descripción |
|---|---|---|
type | String | Siempre "FeatureCollection" |
generator | String | Herramienta generadora: "overpass-turbo" |
copyright | String | Información de derechos OSM |
timestamp | String | Fecha de exportación (ISO 8601) |
features | Array[Feature] | Array de features (paradas) |
| Campo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
type | String | Siempre "Feature" | "Feature" |
id | String | ID del nodo OSM | "node/663778211" |
properties | Object | Propiedades de la parada | Ver tabla abajo |
geometry | Object | Geometría del punto | {type: "Point", coordinates: [lng, lat]} |
| Propiedad | Tipo | Descripción | Valores Posibles |
|---|---|---|---|
@id | String | ID único de OSM | "node/663778211" |
name | String | Nombre de la parada | "Benjamín Carrión" |
highway | String | Tipo de elemento vial | "bus_stop" |
public_transport | String | Tipo de transporte público | "platform", "stop_position" |
bus | String | Indica si es parada de bus | "yes" |
operator | String | Operador del servicio | "SITU", "todas" |
network | String | Red de transporte | "Red Municipal", "Linea 12" |
bench | String | Disponibilidad de banca | "yes", "no" |
shelter | String | Disponibilidad de refugio | "yes", "no" |
bin | String | Disponibilidad de basurero | "yes", "no" |
lit | String | Iluminación nocturna | "yes", "no" |
covered | String | Indica si está cubierta | "yes", "no" |
wheelchair | String | Accesibilidad silla de ruedas | "yes", "no", "limited" |
ref | String | Referencia/código de línea | "L10", "L2" |
| Campo | Tipo | Descripción | Ejemplo |
|---|---|---|---|
type | String | Tipo de geometría | "Point" |
coordinates | Array[Number] | [longitud, latitud] | [-79.205295, -3.9946652] |