Chris L Keller ...


A flow chart and some technical solutions for data journalists, via @paulbradshaw of the Online Journalism Blog


View & organize Fusion Tables and shape files in Google Docs

UPDATED: Looks like if you open a Fusion Table from the Google Docs interface you get a docs ID for the table sted of the FT ID, meaning you would have to go to File —> About to get the ID. Still, the docs interface is way handy for organizing and renaming, so I think I’ll keep with it for a bit.

SECOND UPDATE: If — in the Google Docs interface — you trash a table, it doesn’t appear to trash it in the Fusion Tables interface.

If you have jumped head-first into Fusion Tables for mapping and housing data sets, then we’re probably in a similar boat — some kind of naming convention to show what is finshed, what is in progress and what is trash.


And while there are several requests submitted to the FT working group asking for ways to organize or tag tables, we might be the recipients of a solid because Fusion Tables have begun to appear in Google Docs, which means they can be organized into collections…


So I can separate my shapes from my completed merged tables that make the maps, etc.


And renaming of Fusion Table files have gone from File —> About —> Edit Table Information to right-click+rename.



Word of warning… if you have a lot of Fusion Tables in the trash, they will also appear in your Google Docs list… Me, I emptied my trash, which probably broke a map somewhere…


Stuck in a rut and in need of a map?

UPDATED Aug. 6: So the address search which worked after I uploaded it seems to be a bit wonky, so back to the drawing board I go.

Well then check out my Madison City Council map, or fork the code.

I’ve been so wrapped up in my Mozilla-Knight Journalism Learning Lab project that I need to make something that works and make it quick. Thus, there is a lot of room to add value to this map. Could write census data to the explainer window, and it would be interesting to grab legislation or police data to mirror with the council profiles. Any other ideas?


This is actually something I started back in late February or early March, and have to send thanks out to Jon Davenport, John Keefe, Brian Boyer and Christopher Groskopf.

At the time that set me on a path, I was still learning how all this code comes together, and couldn’t quite figure out how to make the API know when a submitted address falls within the location column of a Fusion Table. Now that’s taken care of… Sky’s the limit?

I do get the same refrain often — that the city offers the same thing, as does the state and other municipalities. That’s cool. I guess I’ll just have to make it better, easier, add value to?

Which reminds me… Twitter list of Madison City Council members being added in 5, 4, 3, 2, 1. Baby steps right?


Mapping data: Wis. Supreme Court voting, Madison Mayoral Voting, State Life Expectancies & school funding

The last month has been one of enjoying some summer sun and some new found free time, but that doesn’t mean there hasn’t been learning going on. Thanks to guidance and suggestions from Jon Davenport, John Keefe, Christopher Groskopf, Brian Boyer and so many others, I’ve developed some skills at making data maps via Google’s Fusion Tables and the Maps javascript API.

My first public attempt was a map of April’s Supreme Court election in Wisconsin which was quickly outdated as other votes were discovered and a recount ordered.

That map provided a perfect opportunity to branch out and try some new things in terms of displaying the data, if only because there was so much of it that changed between the first vote and the certification of the recount. You can find the new version here on

The tabbed info window may not be the most elegant, but it serves a purpose and I am able to learn from it, which counts for something.

I also finished off a map of how Madison voted in April 2011 mayoral election, how life expectancies for Wisconsin men and women have changed since 1987, and Wisconsin Department of Public Instruction estimates for state school aid for the 2011-12 school year.

Learning how to use the Maps javascript API has also helped me make progress toward one of my goals for 2011, though these lean heavily — OK downright mimic — work by Jon, John, Chris and Brian.

Then again, there’s something on the horizon that will help me put a checkmark next to many of those goals here in the coming months. 


Wisconsin’s state supreme court vote visualized

UPDATED JUNE 28: It took me a while, but I finished off an updated version of this map, which you can find here on

UPDATED 8:09 P.M. THURSDAY: Things took another turn on Thursday as Waukesha County Clerk Kathy Nickolaus said due to an inputting error she had undercounted — by 14,000 votes.

Via The Wisconsin State Journal:

The new totals showed Prosser with 92,263 votes in Waukesha County, while Kloppenburg had 32,758. Waukesha County Clerk Kathy Nickolaus said the votes weren’t reported to The Associated Press on Tuesday due to “human error.”

Thinking I will now hold off on updating the numbers on the Wisconsin Supreme Court election map until canvassing is completed. Scroll down and you will find it. The colors are still solid, but obviously the numbers in each county are now off.

You can find some aggregated links on the votes in Waukesha County here.

UPDATED 4:17 P.M. THURSDAY: On Thursday afternoon, the Winnebago County clerk updated election numbers that now give incumbent Justice David Prosser 710 more votes and assistant attorney general JoAnne Kloppenburg 466 votes.

Via The Wisconsin State Journal:

If the numbers stand, Prosser would be ahead of Kloppenburg by 40 votes.

Working on updating the map below to show the change.

When the final precinct finally reported Wednesday — that’s you Lake Mills — attorney JoAnne Kloppenburg declared victory over incumbent state Supreme Court Justice David Prosser.

But when a candidate declares victory with 50.01 percent of the vote, a recount is obviously on the horizon.

Denying that the Supreme Court race turned into a referendum on his push to end collective bargaining rights for state union workers, Gov. Scott Walker said Wednesday afternoon that Tuesday’s results were “largely driven by Madison" and that there are two worlds in the state.

The map below shows there are two worlds, but perhaps a bit more equal than any partisan will admit.

Obviously Dane, Waukesha and Milwaukee counties are the state’s population centers, so they carry a bigger weight when all the votes are counted.

But just as the vote count stands at 50.01 percent for Kloppenburg and 49.99 for Prosser, so too does the state it seems judging by the county-by-county breakdown for each candidate.

Much thanks goes out to Jon Davenport and John Keefe for their suggestions and tutorials, and to news app teams at the Chicago Tribune and the Bay Area Citizen for their inspiration.

John K’s blog post put forward a great method for working with the shapefiles and merging them census data in Google’s Fusion tables. John’s patience and help as I fired off questions on Twitter can’t be understated.

And special thanks to Christopher Groskopf for his how-to blog post on the RedEye’s homicide map, and for making the data available. The quick walk-through helped me get a quick win and make sure I wasn’t crazy.

There is plenty more I could do with this. The fact that eastern counties drift off into Lake Michigan bothers me, and I may still try to overlay a map showing how the state voted in November, when Walker defeated Democrat Tom Barrett. Adding a default zoom-level and some other bells and whistles would be neat. Campaign finance data for each candidate broken down by the county would be way cooler.

But for now, I’m gonna call it a completed project and move on to the next thing. Seems I have too many “works-in-progress” and not enough I call complete.