Other research

Bus Bunching Analysis and Visualisation

During a summer internship at Centre for infrastructure, Sustainable Transportation and Urban Planning (CiSTUP) , Indian Institute of Sciences (IISc), Bangalore from May 2019 - July 2019, I worked on the visualisation and analysis of a phenomenon called bus bunching using data collected from BMTC buses in Bangalore. I was fortunate to work with Dr. Tarun Rambha who helped me navigate through domain knowledge that I wasn’t very familiar at the time.

Bus Bunching

In public transport, bus bunching refers to the situation when 2 or more buses of the same route having evenly spaced schedules end up at the same place at the same time. For this, 1 or more buses have to violate their schedule. Causes for this could include traffic congestion, extra time taken by passengers to board or deborad the bus or temporary breakdowns of buses while on route. Effects of bus bunching can get magnified very easily. For instance, when two buses get bunched, the first bus usually gets overcrowded and the second goes near-empty. This becomes a vicious cycle that cannot be broken. This ultimately leads to inconsistent waiting times, not allowing passengers to fully rely on the bus system for their transport.

Depiction of the effects of bus bunching. Taken from this link.

Depiction of the effects of bus bunching. Taken from this link.

Data

BMTC

Bangalore Metropolitan Transport Corporation (BMTC) is a government agency that controls public transport bus service in Bengaluru.

Types of Data Collected

We had access to ticketing and GPS data for a year from BMTC buses of multiple routes. Due to time constraints, I focused only on the data from January 1st, 2018. In addition, I chose only one route, with the most trips on this day - route #248 (Krishna Rajendra Market to Jalahalli Cross).

Visualisation

Picture of visualisation of data

Picture of visualisation of data

I have explained the meaning of all the components represented on the visualisation.

Markers

Each marker represents a bus and is numbered in serial order. Buses bunched are green in colour and the other ones are red in colour.

Route Variables

  1. Fare - Total fare collected by all buses on the route at a given point of time.
  2. Passengers - Total number of passangers that have boarded any bus on the route at a given point of time.
  3. Bunches - Number of bunching instances. Here, bunching instance is defined as an instant when 2 buses are travelling in the same direction but are within a certain bunching radius (in this case, 100m).
    Route variables

    Route variables

Time Factor

Time factor is defined as the number of seconds from the live data displayed per second in the simulation. This value can range from 10 to 1000.

Time factor

Time factor

Bus Data

It has the total fare collected and total number of passengers that have boarded the bus. The colour of the row changes based on whether it is bunched or not.

Bus data

Bus data

Space Time Plot

This a graph with the time passed on the X-axis and the distance travelled by the bus on the Y-axis (Distance is positive for the UP direction and negative for the DOWN direction). Each line plotted represents a diferent bus on the route. When two lines are parallel, it can be interpreted that they are consistently travelling with an even space between each other. However, when the lines intersect, we can see that they have bunched.

Space Time Plot

Space Time Plot

I used MySQL, Javascript (ChartJS), HTML and Python (pandas and modin) for this project. All the code associated along with a more detailed report can be found here