Monday, November 22, 2010

The Snow Came Too Soon

I know of a lot of you are probably frustrated that OneBusAway is pretty much useless (no real-time, no snow reroute info) on a day when you need it most. I'm pretty frustrated too, if only because I have been working with King County Metro and other agencies over the past couple of months to try to get adverse weather reroute information into OneBusAway.

The good news is that we are making a lot of progress, but the bad and somewhat obvious news is that I didn't finish in time.

Of course, you could argue that I've had two years to prep for this, but we've only recently had time and resources to work on service alert information in OneBusAway. And the lack of gps-based tracking for King County Metro buses is always going to be a problem.

All I can say is that I'm working hard to be ready for the next storm. And to prove that this is not just a vapor-ware promise, here is what you have to look forward too:

http://www.youtube.com/watch?v=_DJLgHTxC8I

(Fast forward to 0:35 seconds in for the good stuff. And don't worry, everyone without an iPhone we're still thinking about you too).

King County Metro, Snow, and Real-Time Tracking

You'll notice that there is currently no real-time data available or King County Metro buses in OneBusAway. The issue is that King County Metro pulled the real-time feed because of the snow and adverse weather reroutes today. Why would they pull the real-time feed in conditions where you'd probably agree that it would be extra useful? They do so because the current tracking system for King County Metro buses doesn't work well when buses are on adverse weather reroute.

When a bus is on adverse weather reroute (see http://metro.kingcounty.gov/up/rr/adverseweather.html for 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 traveled. This gives us an estimate of position and from there, an estimate of how early or late a bus is. This is how http://mybus.org works 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?

I'd argue that King County Metro went too far in cutting the ENTIRE feed, as there are plenty of buses that aren't on reroute where the real-time tracking would be extra useful to riders today. If you feel the same way, definitely let them know.

Tuesday, November 9, 2010

OneBusAway for Windows Phone 7

With the U.S. launch of Windows Phone 7, we are proud to announce a native OneBusAway client for new WP7 users.

WindowsPhone7Screenshot.png
wp7English320x50green.pngThough I say "we", I really can't take much credit at all. Instead, I want to recognize a number of developers who have been hacking away on the client for the past few months to get it ready for the Windows Phone 7 launch. OneBusAway wouldn't happen without the help and support of developers like this, and I appreciate all their efforts.

The app is open-source, so check out the project page if you'd like to help make the app even better. And just a reminder that all the OneBusAway data that powers apps like this is available for developers to use to create new an interesting apps. Check out the API for more details.