UM provides information on where buses are and when they will get to your stop through Magic Bus. The information is also available through an API. I stumbled across the paths to the data when I was reading about Digital Signage, which are signs that display announcements and bus location.
I made two scripts using this data. One got data every two seconds. It saved the heading data and calculated the speed based on the difference in location between data points. The second script got data every 10 seconds. It timed how long it takes for a bus to travel its route.
This is a polar plot of the heading of a Commuter North bus. As you can see, its heading is mostly northward.
This is the heading of six Commuter North buses. They mostly match each other, except for the one bus which went all over the place at the end. These polar plots were made in MATLAB. The radius value is the distance along the route in miles.
These are the Bursley-Baits route times that were less than 50 minutes. Of the 518 data points, 41 or 8% were over 50 minutes. The outliers probably made several trips before they were recorded as finished. The average trip was 24 minutes long.
The early morning and late evening trips were about 10 minutes faster on average in the six days I collected data.
This graph of Thursday, September 29, 2016 has two groups: there’s the trips between 15 and 25 minutes, and there’s the group above 25 minutes.
This is another route called Northwood, with similar results. I removed values in the top 5% of the range. The average trip was 36 minutes.
There may be an effect from rush hour at 5 PM.