library(tidycensus)
library(tmap)
## Breaking News: tmap 3.x is retiring. Please test v4, e.g. with
## remotes::install_github('r-tmap/tmap')
library(sf)
## Linking to GEOS 3.12.1, GDAL 3.8.4, PROJ 9.3.1; sf_use_s2() is TRUE
library(tigris)
## To enable caching of data, set `options(tigris_use_cache = TRUE)`
## in your R script or .Rprofile.
tx_counties<- counties(state = "TX", cb=T)
## Retrieving data for the year 2022
## | | | 0% | | | 1% | |= | 1% | |= | 2% | |== | 2% | |== | 3% | |=== | 4% | |=== | 5% | |==== | 5% | |==== | 6% | |===== | 6% | |===== | 7% | |===== | 8% | |====== | 8% | |====== | 9% | |======= | 9% | |======= | 10% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========== | 14% | |========== | 15% | |=========== | 15% | |=========== | 16% | |============ | 17% | |============ | 18% | |============= | 18% | |============= | 19% | |============== | 20% | |=============== | 21% | |=============== | 22% | |================ | 22% | |================ | 23% | |================= | 24% | |================= | 25% | |================== | 25% | |================== | 26% | |=================== | 26% | |=================== | 27% | |==================== | 28% | |==================== | 29% | |===================== | 30% | |====================== | 31% | |====================== | 32% | |======================= | 32% | |======================= | 33% | |======================== | 34% | |======================== | 35% | |========================= | 35% | |========================= | 36% | |========================== | 37% | |========================== | 38% | |=========================== | 38% | |=========================== | 39% | |============================ | 39% | |============================ | 40% | |============================ | 41% | |============================= | 41% | |============================= | 42% | |============================== | 43% | |=============================== | 44% | |=============================== | 45% | |================================ | 45% | |================================ | 46% | |================================= | 46% | |================================= | 47% | |================================= | 48% | |================================== | 48% | |================================== | 49% | |=================================== | 49% | |=================================== | 50% | |==================================== | 51% | |===================================== | 53% | |===================================== | 54% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 58% | |========================================= | 59% | |========================================== | 59% | |========================================== | 60% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 62% | |============================================ | 63% | |============================================ | 64% | |============================================= | 64% | |============================================= | 65% | |=============================================== | 67% | |=================================================== | 72% | |=================================================== | 73% | |==================================================== | 74% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |========================================================= | 81% | |========================================================== | 82% | |========================================================== | 83% | |=========================================================== | 84% | |============================================================== | 89% | |=============================================================== | 89% | |=============================================================== | 90% | |=============================================================== | 91% | |================================================================ | 92% | |================================================================= | 93% | |================================================================== | 94% | |================================================================== | 95% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 99% | |======================================================================| 100%
############Q1
var <- c(poptotal='B03002_001E',
hispanic='B03002_012E')
st <-"TX"
ct <-"201"
tracts <- get_acs(geography = "tract", variables = var, count=ct,
state = st,output="wide", year = 2021, geometry = TRUE)
## Getting data from the 2017-2021 5-year ACS
## Downloading feature geometry from the Census website. To cache shapefiles for use in future sessions, set `options(tigris_use_cache = TRUE)`.
## | | | 0% | |= | 1% | |== | 2% | |== | 3% | |=== | 4% | |=== | 5% | |==== | 6% | |===== | 7% | |======== | 12% | |============== | 20% | |=============== | 21% | |======================= | 33% | |======================== | 34% | |=========================== | 38% | |=========================== | 39% | |============================= | 41% | |============================= | 42% | |============================== | 43% | |============================== | 44% | |=============================== | 44% | |=============================== | 45% | |================================ | 46% | |================================= | 47% | |================================= | 48% | |================================== | 48% | |=================================== | 50% | |==================================== | 51% | |==================================== | 52% | |===================================== | 52% | |===================================== | 53% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 58% | |========================================= | 59% | |========================================== | 60% | |============================================ | 63% | |============================================ | 64% | |============================================= | 64% | |============================================= | 65% | |==================================================== | 74% | |==================================================== | 75% | |====================================================== | 78% | |======================================================= | 78% | |========================================================== | 83% | |========================================================== | 84% | |=========================================================== | 84% | |=========================================================== | 85% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 90% | |======================================================================| 100%
tracts$hispanic_pct <- tracts$hispanic/tracts$poptotal
tm_shape(tracts) +
tm_polygons(col = "hispanic_pct", palette = "YlOrRd", title = "Hispanic %") + # Use yellow-orange-red palette to visualize hispanic_pct
tm_compass(type = "8star", position = c("right", "top"), size = 1) + # Add a north arrow at the top right
tm_scale_bar(position = c("left", "bottom"))+ # Add a scale bar at the bottom left
tm_layout(legend.position = c("center", "bottom"), # Place the legend at the center-bottom
legend.outside = TRUE, # Legend placed outside the map
legend.outside.position = "right") # Right side outside the map
#####Q2 points
library<-st_read(dsn = "C:/Users/zhaiw/Dropbox/UTSA teaching/UTSA-2024 Fall/Urban Planning Methods/Project2/Libraries/Libraries/Libraries.shp")
## Reading layer `Libraries' from data source
## `C:\Users\zhaiw\Dropbox\UTSA teaching\UTSA-2024 Fall\Urban Planning Methods\Project2\Libraries\Libraries\Libraries.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 30 features and 9 fields
## Geometry type: POINT
## Dimension: XY
## Bounding box: xmin: 2075828 ymin: 13669570 xmax: 2170361 ymax: 13779280
## Projected CRS: NAD83 / Texas South Central (ftUS)
bexar_tracts<- tracts(state = "TX", county = "Bexar",cb=T)
## Retrieving data for the year 2022
## | | | 0% | |= | 2% | |== | 3% | |====== | 9% | |======== | 11% | |========= | 13% | |========== | 14% | |============= | 19% | |============== | 20% | |=============== | 21% | |================= | 24% | |================== | 25% | |================== | 26% | |=================== | 27% | |=================== | 28% | |==================== | 28% | |===================== | 30% | |====================== | 31% | |====================== | 32% | |======================= | 33% | |======================== | 34% | |========================= | 35% | |========================= | 36% | |========================== | 37% | |============================================= | 64% | |=============================================== | 67% | |===================================================== | 76% | |======================================================= | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 82% | |========================================================== | 83% | |=========================================================== | 85% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 89% | |=============================================================== | 90% | |=============================================================== | 91% | |================================================================ | 91% | |================================================================ | 92% | |================================================================== | 94% | |=================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |======================================================================| 100%
tm_shape(bexar_tracts) +
tm_borders() +
tm_shape(library) +
tm_dots(col = "blue") + # Customize line appearance
tm_layout(frame = FALSE)
#####Q3 lines
bike_paths<-st_read(dsn = "C:/Users/zhaiw/Dropbox/UTSA teaching/UTSA-2023 Fall/Urban Planning Methods/Week 11/Lab 10/Bike_Facilities/Bike_Facilities.shp")
## Reading layer `Bike_Facilities' from data source
## `C:\Users\zhaiw\Dropbox\UTSA teaching\UTSA-2023 Fall\Urban Planning Methods\Week 11\Lab 10\Bike_Facilities\Bike_Facilities.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 3281 features and 13 fields
## Geometry type: MULTILINESTRING
## Dimension: XY
## Bounding box: xmin: 2062058 ymin: 13654800 xmax: 2175508 ymax: 13792060
## Projected CRS: NAD83 / Texas South Central (ftUS)
buffer_distance <- 0.01 # adjust as needed
lines_polygon <- st_buffer(bike_paths, dist = buffer_distance)
tm_shape(bexar_tracts) +
tm_borders() +
tm_shape(lines_polygon) +
tm_borders(lwd = 2, col = "red") + # Customize line appearance
tm_layout(frame = FALSE)
#####Q4 polygons
growth_area<-st_read(dsn = "C:/Users/zhaiw/Dropbox/UTSA teaching/UTSA-2024 Fall/Urban Planning Methods/Project2/InclusiveGrowthArea/InclusiveGrowthArea/InclusiveGrowthArea.shp")
## Reading layer `InclusiveGrowthArea' from data source
## `C:\Users\zhaiw\Dropbox\UTSA teaching\UTSA-2024 Fall\Urban Planning Methods\Project2\InclusiveGrowthArea\InclusiveGrowthArea\InclusiveGrowthArea.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 1 feature and 4 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: 2075668 ymin: 13626190 xmax: 2185797 ymax: 13789230
## Projected CRS: NAD83 / Texas South Central (ftUS)
# Set tmap to automatically check and fix geometries
tmap_options(check.and.fix = TRUE)
tm_shape(bexar_tracts) +
tm_borders() +
tm_shape(growth_area) +
tm_polygons(col = "green") + # Customize line appearance
tm_layout(frame = FALSE)
## Warning: The shape growth_area is invalid (after reprojection). See
## sf::st_is_valid
#####Q5 overlay analysis
clipped_bike_paths <- st_intersection(bike_paths, growth_area)
## Warning: attribute variables are assumed to be spatially constant throughout
## all geometries