Unofficial GTFS dataset for BMTC routes, stops and timetables in Bengaluru. Raw data sourced from Namma BMTC app, parsed and saved as GTFS.
The source for the data and analysis in this repository are the routes, stops and timetables as displayed on the Namma BMTC app. However, the Namma BMTC app is not completely accurate, and is particularly unreliable for timetables and stop timings. Nonetheless, the data can be used to understand general trends in the BMTC network.
Due to the design of the Namma BMTC app, only routes with functional live tracking are included in the GTFS. Any missing routes may be due to live tracking unavailability and not necessarily due to the route being inoperational.
The GTFS dataset can be found here
Route frequency - number of daily trips passing through a given route. View interactive map
Stop frequency - number of daily trips passing through a given stop. View interactive map
Most frequent routes - MF-375D (434 trips), MF-378 (393 trips), MF-410FA (319 trips), 290-E (306 trips), KBS-3A (293 trips). View interactive map
Most frequent stops - KBS (12520 trips), Corporation (7376 trips), Town Hall (4631 trips), Indian Express (4268 trips), Maharani College (4187 trips). View interactive map
GeoJSONs can be found below:
Conversion into other formats can be done using free tools like mapshaper or QGIS
CSVs can be found below:
Visualize the routes, stops and timetables in the GTFS dataset, with a web browser: https://bmtc-gtfs.netlify.app
- gtfs-validator
- gtfsvtor
- transport-validator (Older versions of GTFS)
- scrape.py: Scrape raw data from Namma BMTC
- gtfs.py: Parse raw data and save as GTFS
- valiate.py: Pass the GTFS through multiple GTFS validation tools
- analysis.py: Process the GTFS and output a GeoJSON representing the network
Raw JSON data scraped from Namma BMTC can be found below:
- routelines.zip: Pointwise co-ordinates of each route
- stops.zip: Stops through which each route passes
- timetables.zip: Timetables for each route
- fares.zip: Fares for each route and stop-pair
- translations.zip: Kannada names for each stop
- Scripts and data
- Fix validation errors and warnings
- Fix missing/failed routes/stops/timetables/fare information
- Optimize fetch scripts to minimize network call
- Optimize parse scripts to speed up data processing
- GitHub Actions workflow for automatic GTFS data updates
- Regularly scheduled GitHub Actions workflow for daily GTFS data updates
- Analysis and visualizations
- HTML timetables
- PDF timetables
- Route series-wise maps
- Directionality
- Reachability
- Redundancy
- Access to amenities (education, health, recreation, employment)
- Features
- Add fields for platform related details in large stations
- Add Fares v2 support with fare product details
Interested in contributing or want to know more? Join the bengwalk Discord Server