Created
February 13, 2018 16:21
-
-
Save alexsingleton/c8db2fc44091105bf12b903cd003f3fc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Set Working Directory and Options | |
setwd("~/Dropbox/Blocks") | |
options(scipen=999) | |
#Load Packages | |
packages <- c("R.utils","data.table","RCurl","bit64","maptools","rgdal","rgeos") | |
for (package in packages){ | |
if(paste(package) %in% rownames(installed.packages()) == FALSE) {install.packages(paste(package))} | |
library(paste(package),character.only=TRUE) | |
} | |
################## | |
# Download blocks | |
################## | |
FIPS_USPS <- fread("FIPS_USPS_CODE.csv") #Lookup from: https://www.census.gov/geo/reference/ansi_statetables.html | |
#List of the states | |
state_list <- FIPS_USPS[,FIPS] #Get state numbers | |
#Download the block shapefiles - this is a bit crap in R; might be better to use an FTP client | |
for (i in 1:length(state_list)){ | |
URL_file <- paste0("tl_2015_",state_list[i],"_tabblock10") | |
URL <- paste0("ftp://ftp2.census.gov/geo/tiger/TIGER2015/TABBLOCK/",URL_file,".zip") | |
download.file(URL,paste0(URL_file,".zip")) #Download | |
unzip (paste0(URL_file,".zip"), exdir = ".") #Unzip | |
file.remove(paste0(URL_file,".zip")) | |
} | |
#Create a US Block File from the states | |
#List files | |
files <- list.files(pattern=".shp$", recursive=TRUE,full.names=TRUE) #Generate list of shapefiles | |
system(paste0("ogr2ogr blocks.shp"," ",files[1]," -simplify 0.00009 -overwrite")) #Simplify and copy | |
#Loop to merge shapefiles / simplify | |
for (i in 2:length(files)){ | |
system(paste0("ogr2ogr tmp.shp"," ",files[i]," -simplify 0.00009 -overwrite")) #Simplify and copy | |
system("ogr2ogr -f 'ESRI Shapefile' -update -append blocks.shp tmp.shp") #Merge blocks | |
file.remove(list.files(pattern="tmp")) | |
print(i) | |
} | |
#Remove unwanted columns | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN STATEFP10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN COUNTYFP10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN TRACTCE10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN BLOCKCE10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN NAME10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN MTFCC10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN UR10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN UACE10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN UATYPE'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN FUNCSTAT10'") | |
system("ogrinfo blocks.shp -sql 'ALTER TABLE blocks DROP COLUMN INTPTLAT10'") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment