The League of American Cyclists announced their “Every Bicyclist Counts” project, which will chronicle news and police reports of cyclists killed on America’s roadways.
The LAB’s Every Bicyclist Counts” website is a memorial and collection of news and information about cyclists killed since January 1, 2012. It’s an expansion to the national level of the effort Ted Rogers has put into tracking southern California fatalities over at Biking In LA.
Besides the narratives, the LAB websites also includes a national map of cycling fatalities.
This is as good a place as any to mention a little something I whipped up over the weekend: my real time map of California bike crashes. Right now, it shows bicycle crashes reported to the California Highway Patrol since Monday evening, when this project went live, with today’s crashes highlighted in yellow.
This is an expansion of my 3 year collection of CHP crash data, and it’s obviously still a work in progress. I can use better icons, for example. The UI is still a little wiggy: to zoom into a specific ‘incident,’ click on the X; double click if you’d like to see the complete details. To go back to the entire state map, you need to refresh the page or zoom out).
On my TODO list for this California crash map:
- Better icons, and special icons to display hit & runs and fatalities. (Any artists in the house who’d like to help?)
- Pop up text. Show incident reports as a popup box within the map. This is just a matter of coding up the CSS and DOM elements.
- Date Matching. Most of the time, CHP dispatchers enter dates as numeric month, day and year such as “5/23/2012.” Sometimes, though, I see “May 23 2012” instead. Matching on the current date to highlight today’s bike crashes is imperfect as a result.
- Geocode efficiency. Google Maps rate-limits geocode requests, which is how street addresses are translated into latitude / longitude required for mapping. Right now, I meter the requests out slowly using a timer function, which is why you’ll see the markers pop up one by one over a few seconds. The better solution to this is to cache the geocode responses on my server so I don’t need to repeat geocode for each map load.
- Database query. Somebody I might get fancy and allow for queries based on county, dates, etc. I’ve built my crash database to allow for this, but the actual user query engine for this is at least a year away.
I also have issues with the actual data collection that I should fix. I’ve slowly been improving them over time, but these are still problems:
- Motorcycle false positives. My code to grab CHP’s incident reports gets many false positives for motorcycle crashes too. Many (most? all?) motorcycle crashes will mention “biker” or “bike.” For example, “Motorcycle vs Honda. Biker injured. Ambulance required.” I’ve thought about just filtering out every report that mentions a motorcycle, but I have seen a couple of instances of bicycle vs motorcycle crashes. Should I allow the false positives to retain those rare bike vs motorcycle reports? Or should I filter them out and miss those occasional motorcycle vs bicycle crashes?
- Bike lane false positives. The CHP incident reports come from dispatchers who use code words and jargon, but free text entry is also allowed so I’ll sometimes see reports like “Dead animal in bike lane” or “Chevy Tahoe vs Bike Lane sign.”
- Geocoding. This is different from the geocoding efficiency item above. A responding police officer in Santa Barbara county knows that Sr217 E Sandpit Rd Ofr is by Goleta State Beach. Google Maps freaks out because it can’t find the address — the dispatcher misspelled “Sandsspit” Road. I think the CHP hired a lot of new dispatchers about six months ago, too, because that’s when I began seeing inconsistent capitalization and misspellings for commonly used abbreviations.
The other geocoding issue I need to solve: multiple county coverage among CHP regional offices. The dispatches come from one of several CHP offices around the state, but a few offices cover multiple counties. The “Golden Gate Communication Center” covers the entire 9 County San Francisco Bay Area, so if all you have is a street address like “Fillmore Street and McAlester Street“, which County do you tell Google Maps to search in? My easy workaround for now: I punt and just use San Francisco. The real solution is to use Google Maps geocode API to make a more educated guess and search all counties until I find a reasonable hit.