|
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, $^) |