What is this?

On Jan 3rd 2012, the City of Chicago released Plow Tracker, an app that tracks the city's snow plows in real time. We want to thank the city for taking this innovative step towards open government. In the words of Dan O'Neil, "it exposed city data in a fun and timely way that got people talking about an essential city service."

We wanted to help make it better, so we took the plows' locations and figured out which streets they're clearing.

However, the urge to make this ClearStreets app only hit us on Thursday evening, 12 hours before the storm descended on our fair city. So this is a rough draft (see disclaimer), but it shows what can be done when the city embraces open data. The more data they release, the more useful stuff we can build.

What exactly does the map show?

The dark lines on the map are road segments that plows have likely driven over since we started tracking them. That's it. We don't know whether they were salting, plowing, or just passing through. And we don't know for sure whether those streets are currently clear, because we don't have info about road conditions. Roads that were plowed early on might accumulate fresh snow as the storm ginds on.

Disclaimer: data may not be accurate

What's more, we don't guarantee that the dark lines — which, again, show where plows have passed - are accurate or complete. We only have data that the City of Chicago's Plow Tracker makes available. This means that private plows, modified garbage trucks and smaller vehicles are not tracked.

The plows we do track only transmit their rough locations, and they don't quite do so in real time. We make a best guess about where plows have passed, but it's still just that: a guess, though hopefully a good one. Don't sue us.

What we've learned about plowing in Chicago

After tracking the plow operations for several winters in Chicago, we've learned a few things:

  • On average, the City does a consistent and amazing job plowing every street in the City equitably and fairly. At the ward level, however, there is a lot of local discretion.

  • Snow plows will stay on the main arterial streets until it stops snowing. After that, they get to the side streets.

  • As far as we know, the City of Chicago does not have official routes for snow plows.

  • Plow operations are run by the Department of Streets and Sanitation. You can find them on Twitter @StreetsandSan


We've used the Chicago snow plow data we've collected since 2012 to help Chicago reporters investigate particular cases where blocks have been plowed (or not plowed) irregularly.

  • The snowplows hit Ald. Burke's street — five times - Chicago Sun-Times, Feb 2, 2015

    We helped Dan Mihalopoulos at the Chicago Sun-Times check snow plow visits to houses of Alderman Burke, Alderman Laurino and Mayor Emanuel during the Super Bowl Storm of 2015.

    Sun-Times cover story: HE HAS SNOW SHAME Ald. Ed Burke's house on 51st Street and the condo he developed next to it, Feb. 2 at about 2 p.m.

  • Chicago Block Has Not Been Plowed This Winter - NBC 5 Investigates | Feb 5th, 2014

    We helped NBC 5 Investigates map plow activity around the 4600 block of N Kelso, which suggests that no city plows had visited that block during the 2013-2014 winter.

    NBC 5 Investigates the un-plowed 4600 block of N Kelso 4600 block of N Kelso during the Dec 8th, 2013 snowstorm


Who made this?

This app was originally built by Open City and is now maintained and operated by DataMade .

The team includes:

In Dec 2012, we got some awesome help from:

Special thanks to CartoDB for gifting us their Cornelli data plan that we use to power the current version of this site.

Thanks to the Smart Chicago Collaborative for hosting us from Dec 2012 - Nov 2014 and to the Chicago Community Trust for helping us increase our Google Fusion Tables limit before we switched to CartoDB.

How did we do this?

Each of the city's snow plows is outfitted with a GPS system. When a storm hits, the plows begin transmitting their location to the city in real-time. The city puts this data online and constantly updates it to power their real-time Plow Tracker map.

We took that location data - where was plow x at time y? - and used it to figure out which streets plows have driven through.

How did we really do this? (For the geeks)

This app was hacked together with python, php, google fusion tables, javascript, html/css, and a humble batch script. Here's how we did it:

  1. We dug around in the Plow Tracker code and stumbled into the data feed of GPS plow locations. We pulled these dots with a script.

  2. In order to figure out which streets had been cleared, we needed to turn these dots into plow paths. Lukas Kabrt's MatchGPX2OSM did the trick. It takes a series of GPS locations and snaps them to the street grid in order to calculate the most likely path taken by the vehicle. The street grid itself was provided by the thousands of unsung heroes at OpenStreetMap.
    Code: ClearStreets GPX to OSM script

  3. We then wrote a script to import this data into Google Fusion Tables, so we could display it using Derek Eder's searchable map template.
    Code: ClearStreets OSM to Fusion Tables script

    In December 2013, we updated our frontend to use CartoDB. The process works very much the same as with Fusion Tables, but we get some advantages with the speed of updating our data and the ability to display more than 100,000 traces.
    Code ClearStreets OSM to CartoDB script

  4. Finally, we styled the template based on Derek's Fusion Tables searchable map and flipped the switch.
    Code: ClearStreets map front-end

  5. The processing scripts are all hosted on Amazon's Elastic Cloud Compute (EC2) and this website is hosted on Heroku.

Can I have your data?

Sure! We'd love other people to use our plow data. You can download all the raw files from on the data page.

Switching to CartoDB

For the first two winters of ClearStreets, we used Google Fusion Tables to display our maps. This worked out really well, especially since it able to display a lot of data quickly at no cost to us. However, for storms when the city deploys all ~300 of its plows over a period of several days, we found that Fusion Tables could not display all our data due to its limit of 100,000 features per map.

This was an issue we weren't sure how to solve with the resources we had (none), but as luck would have it, Andrew Hill from CartoDB reached out to us in December 2013 with an animated map built with our plow data and we got to talking. From that conversation, CartoDB graciously offered to gift us their Cornelli plan to display our plow data.

ClearStreets now uses CartoDB to fully map Chicago's plows.