diff --git a/.gitignore b/.gitignore index 6ed82b1..b38b214 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ archive/ trash/ api_key R/route_analysis.html +log/ diff --git a/R/route_analysis.Rmd b/R/route_analysis.Rmd index c9d287c..1ef53cf 100644 --- a/R/route_analysis.Rmd +++ b/R/route_analysis.Rmd @@ -7,7 +7,7 @@ output: toc_float: collapsed: false smooth_scroll: true -editor_options: +editor_options: chunk_output_type: console --- @@ -34,16 +34,19 @@ set.seed(1) ```{r gpkg, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} WI_schools <- st_transform(st_read(dsn = "data/Schools/Wisconsin_Public_Schools_-5986231931870160084.gpkg"), crs = 4326) -WI_schools <- WI_schools %>% mutate(geom = SHAPE) +# WI_schools <- WI_schools %>% mutate(geom = SHAPE) +names(WI_schools) ``` +There was an error here. _SHAPE_ does not exist in the _WI\_schools_ object. The variable _geom_ is already in _WI\_schools_. ## Addresses Data ```{r addresses, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} addresses <- read_csv(file="data/addresses/Addresses_Students_EastHS_2024_GeocodeResults.csv") %>% filter(lat > 0) %>% - st_as_sf(coords=c("lon","lat"), crs=4326) # remember x=lon and y=lat + st_as_sf(coords=c("lon","lat"), crs=4326) ``` +(Remember that x = lon and y = lat.) ## Open Source Routing Machine (OSRM) @@ -57,14 +60,13 @@ options(osrm.profile = "walk") ```{r stadiamaps, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} register_stadiamaps(key = substr(read_file(file = "api_keys/stadia_api_key"), 1, 36)) ``` - # Analysis ## Subset Addresses Within 1.5 Miles ```{r walkBoundary, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} -walk_boundary_m <- 1.5 * 1609 ## walk boundary -school_focus <- data.frame(name = c("East High School"), NCES_CODE = c("550852000925")) ## school focus +walk_boundary_m <- 1.5*1609 +school_focus <- data.frame(name = c("East High School"), NCES_CODE = c("550852000925")) walk_boundary_poly <- fill_holes(st_make_valid(osrmIsodistance( loc = WI_schools %>% filter(NCES_CODE %in% school_focus$NCES_CODE), @@ -75,6 +77,21 @@ walk_boundary_poly <- fill_holes(st_make_valid(osrmIsodistance( addresses_near <- st_intersection(addresses, walk_boundary_poly) ``` +## Calculate Routes + +```{r routes, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} +routes <- list(NULL) + +for(i in addresses_near$number) { + routes[[i]] <- osrmRoute( + src = addresses_near %>% filter(number == i), + dst = WI_schools %>% filter(NCES_CODE %in% school_focus$NCES_CODE)) + message(paste0("done - ", i, "of", max(addresses_near$number))) +} + +routes <- bind_rows(routes) +``` + ## Bike Level of Traffic Stress (LTS) ```{r bikelts, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} @@ -91,21 +108,6 @@ bike_lts_scale <- data.frame(code = c(1, 2, 3, 4, 9), "#fdae61", "#d7191c", "#d7191c")) -``` - -## The Rest - -```{r therest, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} - -## calculate routes -routes <- list(NULL) -for(i in addresses_near$number) { - routes[[i]] <- osrmRoute( - src = addresses_near %>% filter(number == i), - dst = WI_schools %>% filter(NCES_CODE %in% school_focus$NCES_CODE)) - message(paste0("done - ", i, "of", max(addresses_near$number))) -} -routes <- bind_rows(routes) ## combine routes # Count the routes that intersect or overlap with each segment of the bike_tls network. @@ -115,6 +117,11 @@ bike_lts_buffer <- st_buffer(st_intersection(bike_lts, walk_boundary_poly), 20) bike_lts_buffer["student_use"] <- unlist(lapply(st_intersects(bike_lts_buffer, routes), length)) bike_lts <- st_join(bike_lts, bike_lts_buffer %>% select(OBJECTID, student_use)) +``` + +# Make Maps + +```{r maps, eval = TRUE, echo = FALSE, results = "show", warning = FALSE, error = TRUE, message = FALSE} ## make maps # load logo @@ -260,6 +267,7 @@ ggmap(basemap) + nudge_y = 0.0015, label.size = 0.04, size = 2) + ggsave(file = paste0("figures/", school_focus %>% pull(name), " Addresses.pdf"), @@ -269,8 +277,6 @@ ggsave(file = paste0("figures/", width = 11, units = "in", create.dir = TRUE) - - ``` # Appendix