A Tutorial: Redistricting Wisconsin

(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?

Here’s the new map:

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.

10 thoughts on “A Tutorial: Redistricting Wisconsin”

  1. 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.  

  2. 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.

  3. 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.

Comments are closed.