#Package imports
import geopandas as gpd
from datetime import datetime
%matplotlib inline
#User inputs
stateFIPS = '37'
countyFIPS = '183'
outFilename = './data/spatial/tabblock2010_{}{}_pophu.shp'.format(stateFIPS,countyFIPS)
outMetaFilename = outFilename[:-4] + "_README.txt"
#Pull the state block data for the supplied FIPS code
print("Downloading blocks for {}; this take a few minutes...".format(stateFIPS))
dataURL = 'https://www2.census.gov/geo/tiger/TIGER2010BLKPOPHU/tabblock2010_{}_pophu.zip'.format(stateFIPS)
fcBlocks = gpd.read_file(dataURL)
Downloading blocks for 37; this take a few minutes...
#Subset county blocks
print("Subsetting data for County FIPS ".format(countyFIPS))
fcWake_blocks = fcBlocks[fcBlocks.COUNTYFP10 == countyFIPS]
Subsetting data for County FIPS
#Save to a file
print("Saving to {}".format(outFilename))
fcWake_blocks.to_file(outFilename,filetype='Shapefile')
#Save projection to .prj file
with open(outFilename[:-3]+'prj','w') as outPrj:
outPrj.write('GEOGCS["GCS_North_American_1983",DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137.0,298.257222101]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]]')
Saving to ./data/spatial/tabblock2010_37183_pophu.shp
#Write metadata file
timeStamp = datetime.now().strftime("%Y-%m-%d")
with open(outMetaFilename,'w') as outFN:
outFN.write('''Census block data for FIPS {0}{1} extracted from
{2} on {3}
'''.format(stateFIPS,countyFIPS,dataURL,timeStamp))