Skip to content

Instantly share code, notes, and snippets.

@jueyang
Last active August 29, 2015 14:04
Show Gist options
  • Save jueyang/02327737fe5210e6c3c7 to your computer and use it in GitHub Desktop.
Save jueyang/02327737fe5210e6c3c7 to your computer and use it in GitHub Desktop.
Illinois Geographies

Boundaries

  • All census boundaries in the download use CBF (Cartographic Boundary Files).

  • These two errors are expected when you run make for the first time:

    • make: *** No rule to make target shp/il_legislative/PA_97-6_Senate_Districts.shp', needed by topo/il_senate.json'. Stop.
    • make: *** No rule to make target shp/il_legislative/PA_97-6_House_Districts.shp', needed by topo/il_house.json'. Stop.
  • If you run into the above error(s), run make shp/il_legislative and then make again. (This roundabout is a result of odd file/folder naming of the IL legislative boundary files).

External properties

CBSA-County Crosswalk

House, Senate, Congress

countyname state fipscounty cbsa cbsaname
MENARD IL 17129 44100 Springfield, IL
SANGAMON IL 17167 44100 Springfield, IL
BOND IL 17005 41180 St. Louis, MO-IL
CALHOUN IL 17013 41180 St. Louis, MO-IL
CLINTON IL 17027 41180 St. Louis, MO-IL
JERSEY IL 17083 41180 St. Louis, MO-IL
MACOUPIN IL 17117 41180 St. Louis, MO-IL
MADISON IL 17119 41180 St. Louis, MO-IL
MONROE IL 17133 41180 St. Louis, MO-IL
ST. CLAIR IL 17163 41180 St. Louis, MO-IL
BOONE IL 17007 40420 Rockford, IL
WINNEBAGO IL 17201 40420 Rockford, IL
MARSHALL IL 17123 37900 Peoria, IL
PEORIA IL 17143 37900 Peoria, IL
STARK IL 17175 37900 Peoria, IL
TAZEWELL IL 17179 37900 Peoria, IL
WOODFORD IL 17203 37900 Peoria, IL
LAKE IL 17097 29404 Lake County-Kenosha County, IL-WI
KANKAKEE IL 17091 28100 Kankakee-Bradley, IL
MACON IL 17115 19500 Decatur, IL
HENRY IL 17073 19340 Davenport-Moline-Rock Island, IA-IL
MERCER IL 17131 19340 Davenport-Moline-Rock Island, IA-IL
ROCK ISLAND IL 17161 19340 Davenport-Moline-Rock Island, IA-IL
VERMILION IL 17183 19180 Danville, IL
COOK IL 17031 16974 Chicago-Naperville-Joliet, IL
DE KALB IL 17037 16974 Chicago-Naperville-Joliet, IL
DU PAGE IL 17043 16974 Chicago-Naperville-Joliet, IL
GRUNDY IL 17063 16974 Chicago-Naperville-Joliet, IL
KANE IL 17089 16974 Chicago-Naperville-Joliet, IL
KENDALL IL 17093 16974 Chicago-Naperville-Joliet, IL
MC HENRY IL 17111 16974 Chicago-Naperville-Joliet, IL
WILL IL 17197 16974 Chicago-Naperville-Joliet, IL
CHAMPAIGN IL 17019 16580 Champaign-Urbana, IL
FORD IL 17053 16580 Champaign-Urbana, IL
PIATT IL 17147 16580 Champaign-Urbana, IL
MC LEAN IL 17113 14060 Bloomington-Normal, IL
ADAMS IL 17001 99 na
ALEXANDER IL 17003 99 na
BROWN IL 17009 99 na
BUREAU IL 17011 99 na
CARROLL IL 17015 99 na
CASS IL 17017 99 na
CHRISTIAN IL 17021 99 na
CLARK IL 17023 99 na
CLAY IL 17025 99 na
COLES IL 17029 99 na
CRAWFORD IL 17033 99 na
CUMBERLAND IL 17035 99 na
DE WITT IL 17039 99 na
DOUGLAS IL 17041 99 na
EDGAR IL 17045 99 na
EDWARDS IL 17047 99 na
EFFINGHAM IL 17049 99 na
FAYETTE IL 17051 99 na
FRANKLIN IL 17055 99 na
FULTON IL 17057 99 na
GALLATIN IL 17059 99 na
GREENE IL 17061 99 na
HAMILTON IL 17065 99 na
HANCOCK IL 17067 99 na
HARDIN IL 17069 99 na
HENDERSON IL 17071 99 na
IROQUOIS IL 17075 99 na
JACKSON IL 17077 99 na
JASPER IL 17079 99 na
JEFFERSON IL 17081 99 na
JO DAVIESS IL 17085 99 na
JOHNSON IL 17087 99 na
KNOX IL 17095 99 na
LA SALLE IL 17099 99 na
LAWRENCE IL 17101 99 na
LEE IL 17103 99 na
LIVINGSTON IL 17105 99 na
LOGAN IL 17107 99 na
MC DONOUGH IL 17109 99 na
MARION IL 17121 99 na
MASON IL 17125 99 na
MASSAC IL 17127 99 na
MONTGOMERY IL 17135 99 na
MORGAN IL 17137 99 na
MOULTRIE IL 17139 99 na
OGLE IL 17141 99 na
PERRY IL 17145 99 na
PIKE IL 17149 99 na
POPE IL 17151 99 na
PULASKI IL 17153 99 na
PUTNAM IL 17155 99 na
RANDOLPH IL 17157 99 na
RICHLAND IL 17159 99 na
SALINE IL 17165 99 na
SCHUYLER IL 17169 99 na
SCOTT IL 17171 99 na
SHELBY IL 17173 99 na
STEPHENSON IL 17177 99 na
UNION IL 17181 99 na
WABASH IL 17185 99 na
WARREN IL 17187 99 na
WASHINGTON IL 17189 99 na
WAYNE IL 17191 99 na
WHITE IL 17193 99 na
WHITESIDE IL 17195 99 na
WILLIAMSON IL 17199 99 na
STATEWIDE IL 17990 99 na
district congressperson party
01 Bobby Rush D
02 Robin Kelly D
03 Dan Lipinski D
04 Luis Gutiérrez D
05 Michael Quigley D
06 Peter Roskam R
07 Danny K. Davis D
08 Tammy Duckworth D
09 Jan Schakowsky D
10 Brad Schneider D
11 Bill Foster D
12 William Enyart D
13 Rodney L. Davis R
14 Randy Hultgren R
15 John Shimkus R
16 Adam Kinzinger R
17 Cheri Bustos D
18 Aaron Schock R
representative district party
Edward J. Acevedo 2 D
Jaime M. Andrade Jr. 40 D
John D. Anthony 75 R
Luis Arroyo 3 D
Daniel V. Beiser 111 D
Patricia R. Bellock 47 R
Maria Antonia Berrios 39 D
Mike Bost 115 R
John E. Bradley 117 D
Dan Brady 105 R
Rich Brauer 87 R
Adam Brown 102 R
Daniel J. Burke 1 D
Kelly Burke 36 D
John M. Cabello 68 R
Kelly M. Cassidy 14 D
John D. Cavaletto 107 R
Linda Chapa LaVia 83 D
Katherine Cloonen 79 D
Deborah Conroy 46 D
Jerry F. Costello II 116 D
Fred Crespo 44 D
Tom Cross 97 R
Barbara Flynn Currie 25 D
John D'Amico 15 D
C.D. Davidsmeyer 100 R
Monique D. Davis 27 D
William Davis 30 D
Anthony DeLuca 80 D
Tom Demmer 90 R
Scott Drury 58 D
Kenneth Dunkin 5 D
Jim Durkin 82 R
Marcus C. Evans Jr. 33 D
Sara Feigenholtz 12 D
Laura Fine 17 D
Mary E. Flowers 31 D
La Shawn K. Ford 8 D
Mike Fortner 49 R
Jack D. Franks 63 D
Robyn Gabel 18 D
Esther Golar 6 D
Jehan A. Gordon-Booth 92 D
Brad E. Halbrook 110 R
Norine Hammond 93 R
Josh Harms 106 R
David Harris 53 R
Greg Harris 13 D
Kay Hatcher 50 R
Chad Hays 104 R
Elizabeth Hernandez 24 D
Jay Hoffman 113 D
Frances Ann Hurley 35 D
Jeanne M Ives 42 R
Eddie Lee Jackson Sr. 114 D
Naomi D. Jakobsson 103 D
Sheri L Jesiel 61 R
Thaddeus Jones 29 D
Dwight Kay 112 R
Stephanie A. Kifowit 84 D
Renée Kosel 37 R
Lou Lang 16 D
David R. Leitch 73 R
Camille Y. Lilly 78 D
Michael J. Madigan 22 D
Natalie A. Manley 98 D
Robert F. Martwick 19 D
Frank J. Mautino 76 D
Rita Mayfield 60 D
Emily McAsey 85 D
Michael P. McAuliffe 20 R
David McSweeney 52 R
Charles E. Meier 108 R
Bill Mitchell 101 R
Christian L. Mitchell 26 D
Anna Moeller 43 D
Donald L. Moffitt 74 R
Thomas Morrison 54 R
Martin J. Moylan 55 D
Michelle Mussman 56 D
Elaine Nekritz 57 D
Brandon W. Phelps 118 D
Sandra M. Pihos 48 R
Raymond Poe 99 R
Robert W. Pritchard 70 R
Dennis M. Reboletti 45 R
David Reis 109 R
Al Riley 38 D
Robert Rita 28 D
Wayne Rosenthal 95 R
Ron Sandack 81 R
Sue Scherer 96 D
Timothy L. Schmitz 65 R
Darlene J. Senger 41 R
Carol A. Sente 59 D
Elgie R. Sims Jr. 34 D
Mike Smiddy 71 D
Derrick Smith 10 D
Keith P. Sommer 88 R
Joe Sosnowski 69 R
Cynthia Soto 4 D
Brian W. Stewart 89 R
Ed Sullivan Jr. 51 R
Silvana Tabares 21 D
André M. Thapedi 32 D
Jil Tracy 94 R
Michael W. Tryon 66 R
Arthur Turner 9 D
Michael Unes 91 R
Patrick J. Verschoore 72 D
Lawrence M. Walsh Jr. 86 D
Emanuel Chris Welch 7 D
Barbara Wheeler 64 R
Ann Williams 11 D
Kathleen Willis 77 D
Sam Yingling 62 D
Michael J. Zalewski 23 D
senator district party
Pamela J. Althoff 32 R
Jason A. Barickman 53 R
Jennifer Bertino-Tarrant 49 D
Daniel Biss 9 D
Tim Bivins 45 R
William E. Brady 44 R
Melinda Bush 31 D
James F. Clayborne, Jr. 57 D
Jacqueline Y. Collins 16 D
Michael Connelly 21 R
John J. Cullerton 6 D
Thomas Cullerton 23 D
Bill Cunningham 18 D
William Delgado 2 D
Kirk W. Dillard 24 R
Dan Duffy 26 R
Gary Forby 59 D
Michael W. Frerichs 52 D
William R. Haine 56 D
Don Harmon 39 D
Napoleon Harris, III 15 D
Michael E. Hastings 19 D
Linda Holmes 42 D
Mattie Hunter 3 D
Toi W. Hutchinson 40 D
Mike Jacobs 36 D
Emil Jones, III 14 D
David Koehler 46 D
Dan Kotowski 28 D
Darin M. LaHood 37 R
Steven M. Landek 12 D
Kimberly A. Lightford 4 D
Terry Link 30 D
David S. Luechtefeld 58 R
Andy Manar 48 D
Iris Y. Martinez 20 D
Wm. Sam McCann 50 R
Kyle McCarter 54 R
Karen McConnaughay 33 R
Pat McGuire 43 D
Julie A. Morrison 29 D
John G. Mulroe 10 D
Antonio Muñoz 1 D
Matt Murphy 27 R
Michael Noland 22 D
Jim Oberweis 25 R
Christine Radogno 41 R
Kwame Raoul 13 D
Sue Rezin 38 R
Dale A. Righter 55 R
Chapin Rose 51 R
Martin A. Sandoval 11 D
Ira I. Silverstein 8 D
Steve Stadelman 34 D
Heather A. Steans 7 D
John M. Sullivan 47 D
Dave Syverson 35 R
Donne E. Trotter 17 D
Patricia Van Pelt 5 D
TOPOJSON = node_modules/.bin/topojson
GENERATED_FILES = \
topo/il_cbsa.json \
topo/il_counties.json \
topo/il_tracts_2010.json \
topo/il_tracts_2000.json \
topo/il_places.json \
topo/il_congressional.json \
topo/il_senate.json \
topo/il_house.json \
shp/il_legislative
all: \
node_modules \
$(GENERATED_FILES)
node_modules:
npm install
.PHONY: clean all
clean:
rm -rf -- zip shp topo
.SECONDARY:
##############
# download #
##############
# 2013 US CBSA
zip/us_cbsa.zip:
mkdir -p $(dir $@)
curl -o $@ 'http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_cbsa_5m.zip' -o $@.download
# 2013 US Counties
zip/us_counties.zip:
mkdir -p $(dir $@)
curl -o $@ 'http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_county_5m.zip' -o $@.download
# 113th US Congressional Districts
zip/us_congressional.zip:
mkdir -p $(dir $@)
curl -o $@ 'http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_us_cd113_5m.zip' -o $@.download
# 2000 tracts
zip/il_tracts_2000.zip:
mkdir -p $(dir $@)
curl -o $@ 'www2.census.gov/geo/tiger/PREVGENZ/tr/tr00shp/tr17_d00_shp.zip' -o $@.download
# 2010 tracts
zip/il_tracts_2010.zip:
mkdir -p $(dir $@)
curl 'http://www2.census.gov/geo/tiger/GENZ2013/cb_2013_17_tract_500k.zip' -o $@.download
mv $@.download $@
# 2013 places
zip/il_places.zip:
mkdir -p $(dir $@)
curl 'www2.census.gov/geo/tiger/GENZ2013/cb_2013_17_place_500k.zip' -o $@.download
mv $@.download $@
### State Legislative ###
zip/il_legislative.zip:
mkdir -p $(dir $@)
curl 'http://ilhousedems.com/redistricting/2011-maps/Legislative_Districts_Public_Act/House%20and%20Senate%20shape%20files.zip' -o $@.download
mv $@.download $@
##############
# unzip #
##############
# 2013 US CBSA
shp/us_cbsa.shp: zip/us_cbsa.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
for file in $(basename $@)/*; do chmod 644 $$file; mv $$file $(basename $@).$${file##*.}; done
rmdir $(basename $@)
touch $@
# 2013 US Counties
shp/us_counties.shp: zip/us_counties.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
for file in $(basename $@)/*; do chmod 644 $$file; mv $$file $(basename $@).$${file##*.}; done
rmdir $(basename $@)
touch $@
# 113th US Congressional Districts
shp/us_congressional.shp: zip/us_congressional.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
for file in $(basename $@)/*; do chmod 644 $$file; mv $$file $(basename $@).$${file##*.}; done
rmdir $(basename $@)
touch $@
# IL Census Tracts 2000
shp/il_tracts_2000.shp: zip/il_tracts_2000.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
for file in $(basename $@)/*; do chmod 644 $$file; mv $$file $(basename $@).$${file##*.}; done
rmdir $(basename $@)
touch $@
# IL Census Tracts 2010
shp/il_tracts_2010.shp: zip/il_tracts_2010.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
for file in $(basename $@)/*; do chmod 644 $$file; mv $$file $(basename $@).$${file##*.}; done
rmdir $(basename $@)
touch $@
# IL Places
shp/il_places.shp: zip/il_places.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
for file in $(basename $@)/*; do chmod 644 $$file; mv $$file $(basename $@).$${file##*.}; done
rmdir $(basename $@)
touch $@
# IL legislative folder
# Note 1: House of representative and state senate districts are under the same folder
# Note 2: When unzipped the folder has long name with space
shp/il_legislative: zip/il_legislative.zip
rm -rf $(basename $@)
mkdir -p $(basename $@)
unzip -d $(basename $@) $<
cp $(basename $@)/*/*.* $(basename $@)
rm -rf $(basename $@)/*/ # delete the secondary folder
for file in $(basename $@)/*; do mv "$$file" "`echo $$file | sed -e 's/ /_/g'`"; done # join the space with "_"
##############
# Illinois #
##############
# IL CBSA (note: CBSA can cross multiple states)
# There is no useful GEOID/FP to pick the state from CBSA
# In the name field
shp/il_cbsa.shp: shp/us_cbsa.shp
mkdir -p $(basename $@)
ogr2ogr -f 'ESRI Shapefile' -where "NAME like '%IL-%' OR NAME like '%IL' OR NAME like '%-IL%'" $@ $<
rmdir $(basename $@)
# IL Counties
shp/il_counties.shp: shp/us_counties.shp
mkdir -p $(basename $@)
ogr2ogr -f 'ESRI Shapefile' -where "STATEFP = '17'" $@ $<
rmdir $(basename $@)
# IL Congressional District
shp/il_congressional.shp:shp/us_congressional.shp
mkdir -p $(basename $@)
ogr2ogr -f 'ESRI Shapefile' -where "STATEFP = '17'" $@ $<
rmdir $(basename $@)
##############
# topojson #
##############
# CBSA with simplify-proportaion of 0.4
topo/il_cbsa.json: shp/il_cbsa.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--simplify-proportion=0.4 \
--id-property=GEOID \
-- $(filter %.shp,$^)
# Counties with same simplify-proportion as CBSA
# Uses CBSA/county crosswalk CSB in bin/cbsa to give each county CBSA keys and names
topo/il_counties.json: shp/il_counties.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--simplify-proportion=0.4 \
--id-property=GEOID,fipscounty \
-e il_cbsa.csv \
-p cbsa=cbsa \
-p cbsaname=cbsaname \
-- $(filter %.shp,$^)
# Tracts with simplify-proportion of 0.2
topo/il_tracts_2000.json: shp/il_tracts_2000.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--simplify-proportion=0.2 \
--id-property=GEOID \
-- $(filter %.shp,$^)
topo/il_tracts_2010.json: shp/il_tracts_2010.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--simplify-proportion=0.2 \
--id-property=GEOID \
-- $(filter %.shp,$^)
# Places with with simplify-proportion of 0.2
topo/il_places.json: shp/il_places.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--simplify-proportion=0.2 \
--id-property=GEOID \
-- $(filter %.shp, $^)
# Legislative Boundaries do not simplify
# Uses CSVs in bin/legislative for representative and party information
topo/il_congressional.json: shp/il_congressional.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--id-property=CD113FP,district \
-e il_congressional.csv \
-p rep=congressperson \
-p party=party \
-- $(filter %.shp, $^)
topo/il_house.json: shp/il_legislative/PA_97-6_House_Districts.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--id-property=District_1,district \
-e il_house.csv \
-p rep=representative \
-p party=party \
-- $(filter %.shp, $^)
topo/il_senate.json: shp/il_legislative/PA_97-6_Senate_Districts.shp
mkdir -p $(dir $@)
TOPOJSON -o $@ \
--id-property=District_1,district \
-e il_senate.csv \
-p rep=senator \
-p party=party \
-- $(filter %.shp, $^)
{
"name": "Illinois Geography",
"version": "0.0.1",
"private": true,
"devDependencies": {
"topojson": "1"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment