(From the diaries – promoted by James L.)
David asked me to do a quick example of how I do my redistricting, so I decided to use a relatively ‘easy’ state, Wisconsin, since it has townships. In the same way I wouldn’t drive a car or ride a bike without brakes (yes, fixie riders, the laws of physics hate you too), I don’t want to redistrict without having both sets of information.
Before you start, take a look at the state, and try to think how much detail you’re going to want to go into. I usually do townships/municipalities when available, but sometimes precincts. For Wisconsin, I’m going shooting for 7-1, by making the 1st and 6th more Democratic. Wisconsin doesn’t have precinct-level census data, so we’ll have to stick with townships. I really do want to split the city of Milwaukee though, so we’re going to do some estimating in just a little bit.
So now, here’s a quick overview of the process ahead:
1. Collect political and population data
2. Aggregate data together into one spreadsheet
3. Prepare a GIS shapefile (we’ll get into that) for the precinct and precinct-equivalents we’re going to use.
4. Import data from the spreadsheet into shapefile
5. Redistrict!
Follow me over the flip…
You’ll also need a few things:
a) GIS software (I use MapWindow GIS)
b) Microsoft Excel
c) An image editor program, like MS Paint, Photoshop or GIMP
d) A database file (.dbf) editor (Excel 2003 works for this, Excel 07 does not)
Let’s get started with the data.
Political data for Wisconsin is rather easy to do, everything comes in a nice spreadsheet. (Get it here.).
With that in hand, let’s get the population data. This will take a bit of work. Luckily, we have American FactFinder. Scroll down to “Census 2000 Redistricting Data” and select custom table. Let’s get the data for municipalities, so click “geo within geo”, select county subdivision within a state. Add all the county subdivisions of Wisconsin, and then hit next. Choose race, and then total population. Nothing in Wisconsin is VRA protected, so we don’t have to worry about racial breakdown. Now you’ll get a table, which conveniently, you can download by going to print/download. Now you have two nice spreadsheets.
Now that we have two spreadsheets, we have to combine them. This process is pretty arduous, but if you sort everything alphabetically, just copy and paste the two together and run a spot check. Make sure you watch out for any jurisdictions starting with “St.” or “Mc” – the Census Bureau aggregates them as ‘Saint’ and ‘Mac’, something Excel won’t do for you. With the political data, we can get to map making!
So first, we need a map template. Luckily for us, the Census Bureau keeps those on hand in its TIGER/LINE database. Since we’re only using municipalities, we can just download one file, 2000 County Subdivision. Of course, a shapefile is actually several different files, we’ll concern ourselves with two: the .shp, the shapefile itself; and the .dbf, the attribute file that we’ll be editing.
In my maps, I like to have both some political data and population data. Since we’re not worried about racial composition, I only add two sets of data to the attribute file: the population, and the Obama-McCain margin. Population is straightforward, obviously. I calculate the Obama-McCain margin, round up to the nearest percent, and then add 100 (MapWindow doesn’t like negative numbers too much), so theoretically, margins will range between 0 and 200.
Now pop open your MapWindow GIS, and click “Attribute Table Editor”. Under Edit, select “Add Field”. Call the new attribute whatever you want (I’d suggest something intuitive, like “Population” or “08 Margin”, but that’s just me). They’re both integers, and width of 10 is fine. Make sure you do this step before opening your .dbf.
Close out of MapWindow and open your .dbf so we can add our new data. Now we’re tempted to sort by County FIPS and township name (NAMELSAD00), but don’t just yet! Shapefiles require that the attribute file keep the EXACT order of attributes in their original order, so make sure you create a new column of numbers so you can get them back into their original places. Add the population and political info (again minding your Macs and your Saints). There are also ghost shapes called “County subdivision not defined”, which unsurprisingly occurs in counties like Kenosha, Racine, Milwaukee, Ozaukee, Sheboygan, etc… Just mind those as well so all our created data gets assigned to the right shapes. [Alternatively, you can also use the VLOOKUP function to match if so you’re so inclined and don’t want to worry about order.]
Finally, we can get to map making. I like to map a few maps before any gerrymandering actually happens: one with political data, and one blank “precinct” map that you can color in your image editor to keep track of what you’ve done so far. In the legend sidebar, right-click on the name of your shapefile, and select “Properties”. Here you can edit a whole bunch of stuff on how you want your shapefile to look, from fill color to line width to transparency. Here, we want to create a coloring scheme. Click on coloring scheme, and you’ll get a pop-up menu. For field, select your margin field. Then, hit the plus sign to add colors. You’ll have to choose your colors. Under the values field, you can pick the values for which MapWindow will apply that color. You can do ranges, like “0 – 100” (this is why we wanted to avoid negative numbers). I use a 7-color scale, which is 13 in total (6 Dem, 6 Rep, and 1 for an exact tie).
With that in hand, you can take screenshots of your maps using Edit->Copy->Map. For finer resolutions, I usually zoom in a bit, take multiple screenshots, and piece them together in an image editor. Now you can get to gerrymandering. To keep running totals of population and political data, in my Excel sheet, I create a column for “District”, and have a series of “SUMIF” statements. This way, as I assign precincts to a district, we get a running total. In states that have VRA protected districts, we can also track the racial composition of a district as we go along. Use your blank precinct map to keep track on a visual basis of what you’ve assigned. MapWindow is helpful here, as its “Identify” function can tell you the name of precincts you’re looking at. If you’re feeling efficient, you can select multiple precincts (holding CTRL), and viewing them all using the ‘Attribute Table Editor’. You can copy all the info out of the Attribute Table into Excel.
Now, all that work comes for the fun part: gerrymander away!
Once you’re done, you can make maps of your finished plan. You can use the precinct map you’ve been using to keep a running track, or we can go back into MapWindow. You can add a new attribute for “District” into the .dbf, as we did before. (Add field in MapWindow first, then use your .dbf editor. Again, make sure the shapes are in the exact order as you found them in.) You can then assign a new coloring scheme based on district number. There are plenty of things you can do at this point, like labeling county names using the County Shapefile, or labeling municipality names (I don’t recommend this, as this will clutter your screen beyond recognition). From here, the choices are endless.
Now, I did actually do a map of Wisconsin. I went a few steps further and divided the city of Milwaukee into precincts. Unfortunately, Census didn’t keep track of those, so I pieced together the city block by block, all 7,394 of them. I won’t go into detail on that, but my plan does split the city between two districts, much like the pre-2000 map.
I’ll cut the usual fluff I put here, since I made you read this far, haven’t I?
And here’s an inset of Milwaukee County, with municipalities labeled.
District by district, we have:
District | Population | Obama | McCain | Obama% | McCain% |
1 | 670,184 | 216,461 | 138,012 | 60.30% | 38.45% |
Kenosha | 149,577 | 45,836 | 31,609 | 58.38% | 40.26% |
Milwaukee | 305,170 | 109,975 | 56,748 | 65.12% | 33.60% |
Ozaukee | 0,103 | 0,053 | 0,026 | 67.09% | 32.91% |
Racine | 167,842 | 48,846 | 37,464 | 55.97% | 42.93% |
Walworth | 47,492 | 11,751 | 12,165 | 48.48% | 50.19% |
As I said at the outset, I wanted to draw Paul Ryan out. Plus, keeping Kenosha and Racine attached to Janesville required going through Republican Walworth County, something that made gerrymandering quite difficult. Thus, the new 1st sheds Rock County and instead climbs further through Milwaukee, grabbing St. Francis, South Milwaukee, and Cudahy, through some lakefront precincts to downtown, up the East Side, through to the Democratic-leaning North Shore towns. Kenosha County remains in its entirety, while the nastier parts of northwest Racine County are stripped out and packed into the Republican 5th. Obama’s performance in this 45% Milwaukee, 25% Racine, and 22% Kenosha district is up to 60%, up 9%.
District | Population | Obama | McCain | Obama% | McCain% |
2 | 670,284 | 274,235 | 133,998 | 66.36% | 32.43% |
Columbia | 5,154 | 1,697 | 1,174 | 58.34% | 40.36% |
Dane | 426,526 | 205,984 | 73,065 | 72.93% | 25.87% |
Dodge | 54,056 | 13,367 | 13,699 | 48.77% | 49.98% |
Jefferson | 74,021 | 21,448 | 21,096 | 49.80% | 48.98% |
Rock | 64,260 | 19,313 | 11,644 | 61.52% | 37.09% |
Walworth | 46,267 | 12,426 | 13,320 | 47.72% | 51.15% |
Gains have to come from somewhere, and Tammy Baldwin’s 2nd and Gwen Moore’s 4th are where the Democrats that are weakened somewhat to boost the 1st, 3rd, 6th, and 7th. However, this district is still centered on Dane County and Madison. Instead of looking south and north, this district looks east, taking in the entirety of Jefferson County and parts of Rock, Walworth, and Dodge County. Home to UW-M, UW-Whitewater, and Beloit College, this district featured Obama at 66.4%, a drop of 3%. 63.6% of this district’s residents still live in Dane County, so I’m not too concerned.
District | Population | Obama | McCain | Obama% | McCain% |
3 | 670,351 | 214,972 | 151,028 | 57.89% | 40.67% |
Barron | 44,963 | 12,078 | 10,457 | 52.89% | 45.79% |
Buffalo | 13,804 | 3,949 | 2,923 | 56.45% | 41.79% |
Burnett | 15,674 | 4,337 | 4,200 | 50.03% | 48.45% |
Crawford | 17,243 | 4,987 | 2,830 | 62.70% | 35.58% |
Dunn | 39,858 | 13,002 | 9,566 | 56.72% | 41.73% |
Grant | 49,597 | 14,875 | 9,068 | 61.29% | 37.36% |
Green | 33,647 | 11,502 | 6,730 | 62.23% | 36.41% |
Iowa | 22,780 | 7,987 | 3,829 | 66.85% | 32.05% |
La Crosse | 107,120 | 38,524 | 23,701 | 61.13% | 37.61% |
Lafayette | 16,137 | 4,732 | 2,984 | 60.49% | 38.14% |
Pepin | 7,213 | 2,102 | 1,616 | 55.74% | 42.85% |
Pierce | 36,804 | 11,803 | 9,812 | 53.59% | 44.55% |
Polk | 41,319 | 10,876 | 11,282 | 48.18% | 49.98% |
Richland | 17,924 | 5,041 | 3,298 | 59.77% | 39.10% |
Rock | 88,047 | 31,216 | 15,720 | 65.58% | 33.02% |
St. Croix | 63,155 | 21,177 | 22,837 | 47.38% | 51.09% |
Trempealeau | 27,010 | 8,321 | 4,808 | 62.59% | 36.16% |
Vernon | 28,056 | 8,463 | 5,367 | 60.22% | 38.19% |
Ron Kind gets a small boost too, from the inclusion of half of Rock County in his district. Ron Kind sheds Eau Claire to boost the 7th, but picks up Green and Rock from Baldwin and Burnett and Polk from Obey. Kind’s base of La Crosse stays, as does plenty of the dairy country that Kind’s been representing for years. You’re indeed right that Paul Ryan’s house in Janesville gets put in here, but Kind is favored in a Kind-Ryan matchup in this 57.9% Obama district, up half a percent. Paul Ryan’s represented 9% of this district before. Ron Kind’s representing 67% of this district – I’ll let you decide.
District | Population | Obama | McCain | Obama% | McCain% |
4 | 670,531 | 218,908 | 106,663 | 66.63% | 32.47% |
Milwaukee | 634,994 | 209,844 | 92,697 | 68.75% | 30.37% |
Waukesha | 35,537 | 9,064 | 13,966 | 38.91% | 59.96% |
As I’ve said, Gwen Moore bears the other brunt of redistricting. She keeps the western half on Milwaukee County – including the heart of Milwaukee and some suburbs, plus Menomonee Falls in Waukesha. Not to fear though, Obama still got 66.63% here, a drop of about 9%. Still, in this 95% Milwaukee, 5% Waukesha district, a Democrat has the clear advantage.
District | Population | Obama | McCain | Obama% | McCain% |
5 | 670,746 | 152,723 | 260,690 | 36.57% | 62.43% |
Columbia | 1,983 | 0,328 | 0,747 | 30.04% | 68.41% |
Dodge | 31,841 | 5,816 | 9,316 | 37.93% | 60.76% |
Fond du Lac | 40,923 | 9,025 | 13,722 | 39.17% | 59.55% |
Green Lake | 19,105 | 4,000 | 5,393 | 42.01% | 56.64% |
Ozaukee | 82,214 | 20,526 | 32,146 | 38.59% | 60.44% |
Racine | 20,989 | 4,562 | 8,490 | 34.61% | 64.40% |
Sheboygan | 25,362 | 4,897 | 9,913 | 32.61% | 66.02% |
Washington | 117,493 | 25,719 | 47,729 | 34.63% | 64.27% |
Waukesha | 325,230 | 76,275 | 131,186 | 36.45% | 62.69% |
Winnebago | 5,606 | 1,575 | 2,048 | 42.92% | 55.80% |
Sensenbrenner gets a boost too, as all the Republican votes of the Milwaukee suburbs and the Fox Valley get packed here. The trifecta of Ozaukee, Washington, and Waukesha counties are brutal for any Democrat (let’s not forget that Bush had a margin coming out of Greater Milwaukee!). Meanwhile, the North Shore of Milwaukee is removed – those were Democratic votes thrown in for no good reason. Throw in the unpalatable parts of Sheboygan, Fond du Lac, and Dodge County, and you’ve got this 37% Obama district.
District | Population | Obama | McCain | Obama% | McCain% |
6 | 670,599 | 195,883 | 157,909 | 54.60% | 44.02% |
Adams | 18,643 | 5,806 | 3,974 | 58.36% | 39.95% |
Calumet | 40,631 | 13,295 | 12,722 | 50.31% | 48.15% |
Columbia | 45,331 | 14,636 | 10,272 | 58.09% | 40.77% |
Fond du Lac | 56,373 | 14,438 | 14,442 | 49.47% | 49.48% |
Jackson | 19,100 | 5,572 | 3,552 | 60.24% | 38.40% |
Juneau | 24,316 | 6,186 | 5,148 | 53.80% | 44.77% |
Manitowoc | 82,887 | 22,428 | 19,234 | 53.00% | 45.45% |
Marquette | 15,832 | 4,068 | 3,654 | 51.92% | 46.64% |
Monroe | 40,899 | 10,198 | 8,666 | 53.33% | 45.32% |
Sauk | 55,225 | 18,617 | 11,562 | 60.92% | 37.84% |
Sheboygan | 87,284 | 25,498 | 20,888 | 54.30% | 44.48% |
Waushara | 23,154 | 5,868 | 5,770 | 49.64% | 48.82% |
Winnebago | 151,157 | 46,592 | 35,898 | 55.65% | 42.88% |
Wood | 9,767 | 2,681 | 2,127 | 54.81% | 43.49% |
The 6th would be the elusive seventh Democratic district in the state, and I had to reach for this one. There was potential in the old 6th, but just need to be developed further. As a result, instead of Republican leaning Dodge County, this district goes farther west and southwest, grabbing Columbia and parts of Baraboo from the 2nd, and some more counties from the 3rd. It sheds the southern half (read: Republican half) of Sheboygan, all of Fond du Lac outside of a few towns and Fond du Lac proper, and Green Lake County. What we get is a district that Obama got 54.6% in, winning each county part except Fond du Lac, which he lost by 4 votes. This district won’t necessarily elect a Democrat – the Fox Valley isn’t exactly a Democratic stronghold, but it’s certainly more likely this way.
District | Population | Obama | McCain | Obama% | McCain% |
7 | 670,602 | 207,247 | 150,865 | 56.98% | 41.48% |
Ashland | 16,866 | 5,818 | 2,634 | 68.01% | 30.79% |
Bayfield | 15,013 | 5,972 | 3,365 | 63.22% | 35.62% |
Chippewa | 55,195 | 16,239 | 13,492 | 53.82% | 44.72% |
Clark | 33,557 | 7,454 | 6,383 | 52.76% | 45.18% |
Douglas | 43,287 | 15,830 | 7,835 | 65.93% | 32.63% |
Eau Claire | 93,142 | 33,146 | 20,959 | 60.38% | 38.18% |
Iron | 6,861 | 1,914 | 1,464 | 55.83% | 42.71% |
Langlade | 20,740 | 5,182 | 5,081 | 49.92% | 48.95% |
Lincoln | 29,641 | 8,424 | 6,519 | 55.40% | 42.87% |
Marathon | 125,834 | 36,367 | 30,345 | 53.65% | 44.77% |
Oneida | 12,802 | 4,029 | 3,913 | 50.07% | 48.63% |
Portage | 67,182 | 24,817 | 13,810 | 63.15% | 35.14% |
Price | 15,822 | 4,559 | 3,461 | 55.76% | 42.33% |
Rusk | 15,347 | 3,855 | 3,253 | 53.14% | 44.84% |
Sawyer | 16,196 | 4,765 | 4,199 | 52.52% | 46.29% |
Taylor | 19,680 | 4,563 | 4,586 | 48.94% | 49.19% |
Vilas | 1,613 | 0,591 | 0,809 | 41.68% | 57.05% |
Washburn | 16,036 | 4,693 | 4,303 | 51.56% | 47.28% |
Wood | 65,788 | 19,029 | 14,454 | 55.89% | 42.45% |
Obey’s district gets a boost too. Dave doesn’t really need the help, but should he retire, nothing should be up to chance. Not too much changes – 81% of the district is a carryover from the current 7th, but the Minneapolis exurbs are shed in exchange for Eau Claire. Obama got 57% here, an improvement of 1%.
District | Population | Obama | McCain | Obama% | McCain% |
8 | 670,378 | 196,782 | 163,228 | 53.95% | 44.75% |
Brown | 226,778 | 67,269 | 55,854 | 54.02% | 44.85% |
Door | 27,961 | 10,142 | 7,112 | 58.14% | 40.77% |
Florence | 5,088 | 1,134 | 1,512 | 42.33% | 56.44% |
Forest | 10,024 | 2,673 | 1,963 | 57.13% | 41.95% |
Kewaunee | 20,187 | 5,902 | 4,711 | 54.81% | 43.75% |
Marinette | 43,384 | 11,195 | 9,726 | 52.77% | 45.84% |
Menominee | 4,562 | 1,257 | 0,185 | 86.81% | 12.78% |
Oconto | 35,634 | 9,927 | 8,755 | 52.42% | 46.23% |
Oneida | 23,974 | 7,878 | 5,717 | 57.00% | 41.36% |
Outagamie | 160,971 | 50,294 | 39,677 | 55.04% | 43.42% |
Shawano | 40,664 | 10,259 | 9,538 | 51.14% | 47.55% |
Vilas | 19,420 | 5,900 | 6,246 | 47.97% | 50.78% |
Waupaca | 51,731 | 12,952 | 12,232 | 50.85% | 48.02% |
Lastly, we have the 8th, centered still on Green Bay and Appleton. Intentionally, I didn’t tweak too much since Steve Kagen seems to be getting slowly entrenched. 96.5% of the district is the same as the old 8th, including Kagen’s base in Outagamie County. With some rearranging of precincts in Oneida and Vilas counties moves the balance 0.4% to the left, to 53.9% Obama.
There’s no doubt that Ryan would run for Herb Kohl’s Senate seat in 2012.
I am amazed you have the patience for it, but I’m happy with the results!
With this map I would worry (as always) about the impact of a closer year. Compared to Kerry, Obama had a landslide, and of course Democrats aren’t guaranteed statewide wins.
But he’ll be 72 in 2012. Once he retires we should have a good shot there.
While it’s nice to see a 7-1 split, I think beefing up the 8th for Steve Kagen should be a higher priority than reaching for the 6th.
If Kohl’s Senate seat gets open, and Kind runs for it, that could leave Paul Ryan to run in WI-3 (although he’d be more likely to run in the Senate seat.)
I think a better idea is to put Ryan’s home in WI-2, where he has zero chance.
The 5th looks more compact than I thought it would need be to cram the reds in, and the 6th isn’t too ugly.
Petri would still carry the 6th, but as long as we can get someone in there by 2020, we can hold that.
One quibble, what is called the Fox Valley is in the 8th. Like the Nile, the “Lower Fox” runs north from Lake Winnebago to Green Bay. The “Upper Fox” in the 5th and 6th is not normally called the Fox Valley.
rather than the last Governor race, which is more indicative of normal voting patterns?
Can you plug those numbers in easily?