It depends on the agency:
OneBusAway is just a front end to data from MyBus, which provides the underlying tracking data. MyBus was developed in the days before cheap GPS units, so it actually works by putting a wheel rotation encoder on each bus that tracks the active mileage of each bus. This info gets radioed in once a minute and is translated into an estimated position along each route. Since this method isn't super accurate, there are radio transponders located in a few places along each route that provide a sync signal for positioning.
MyBus takes this estimated position data and produces a deviation from schedule for a number of timepoints along each route (distinct from the actual stops along each route). That data can be publicly accessed through the web interfaces ator through some web services provided by the Intelligent Transportation Systems group at UW (the original developers of the MyBus tracking system: see
OneBusAway combines the timepoint prediction data from MyBus with the transit database from MetroKC to interpolate prediction data to each physical stop along a route. The transit database from Metro is sort of public, but you have to fill out a waiver to get access.
Pierce Transit has a more modern GPS-based tracking system.
When a bus is on adverse weather reroute (seefor a current list), real-time arrival predictions are not accurate for that route. Why is that?
The position of each bus in Metro KC is not tracked with GPS, but rather with a decidedly lower-tech approach. Each bus is outfitted with a device that can radio the current odometer reading for the bus back to a server. If we know the odometer reading when the bus starts its route, we can periodically monitor the real-time odometer readings to determine how far along the route the bus has travelled. This gives us an estimate of position and from there, an estimate of how early or late a bus is. This is howworks and OneBusAway is just a fancy front-end to MyBus.
The problem comes with buses on adverse weather reroute, or any type of temporary reroute. When a bus goes on reroute, the physical route changes and the odometry calculation based on the original route used above is no longer accurate. In a perfect world, we would know when a bus is on reroute and adjust to its new route. Unfortunately, there is currently no automated way for handling this situation.
The result, unfortunately, is that on days when it is often cold and miserable and you'd rather not wait outside any longer than you have to for your bus, the real-time tracker often doesn't work. Ironic, huh?
You may be tempted to use BusView to look at your bus during adverse weather events, since BusView sure looks like the real-time GPS position of your bus plotted on a map. Don't be fooled. BusView is using the same underlying tracking technology that all the other systems use, which mean no GPS. Again, it's just calculting the position of the vehicle from odometry data and the route map. BusView will not accurately show the position of your bus if the bus is on adverse weather reroute.
Many different ways, but one way to start is to look atwhich offers ways programmers and non-programmers alike can help.