The patterns of passenger activity are highly correlated to the cycles of the sun. This visualization explores the volume of passengers using the scale of particles that decay over inactivity.

San Francisco Muni Visualization from Emmett McQuinn.

A minimalistic appearance depicts the rhythmic motion that underlies the behaviour of San Francisco itself. Going to the Sunset looks difficult from other parts of the city, while heading from the Mission to Downtown looks both popular and well serviced.

What can you explore?

There are a couple of things that were interesting to visually explore:

  • Going east/west sucks much more than going north/south, or visa-versa.

  • A large volume of early morning commuters leave from the Richmond and Excelsior to arrive at downtown by morning hours.

  • Treasure island seems to have a batch of people leave around 8 AM, only to return late at night. However, I’m not sure how trustworthy the route data for Treasure Island is in this dataset.

  • We can see the frequency of stops along a route. Bus data suddently appears near Golden Gate bridge that doesn’t seem to stop much through the Precidio. Routes along market appear to stop every block.

  • Most traffic flows into downtown and Mission, for better or for worse.

I’m building a more recent dataset to see what a couple of years of money do to San Francisco traffic flow :)

Potential data issues

This historic dataset does not include the late night Owl service, which causes the appearance of an abrupt end in activity for late night travelers.

I suspect that the times were not adjusted for daylight savings properly as it appears the last Muni route data is from 12AM, not 1AM. If you also believe this hunch, which I havent been able to fully verify due to the historic nature of the data, then simply subtract an hour from the times you see. If someone has more knowledge of Muni than me and sees more evidence that this is true, I’d be happy to adjust this!

How was this created?

The dataset came from a urban data competition hosted by GAFFTA a couple years ago. I actually created this code for the competition in a couple hours with Qt/C++. Memory usage was thrifty, compile times were fast, and runtimes were even faster - great for rapid prototyping. In C you can try computationally stupid ideas and get away with it without needing to invest time into a more clever solution to optimize memory usage or reduce for loops.

The map is sourced from the fantastic Stamen Toner street map, avoiding saturated colors.