diff --git a/.gitignore b/.gitignore index b349772..599f426 100644 --- a/.gitignore +++ b/.gitignore @@ -1,19 +1,8 @@ .Rproj* + data/addresses/* api_keys/* figures/* + .Rhistory .Rproj.user -*.md -.DS_Store -!README.md -.Rhistory -*\.\#* -data -!data/ -.RData -data-bkup/ -data-bkup -*.R -*.bak -archive/ diff --git a/Makefile b/Makefile deleted file mode 100644 index bfc6f18..0000000 --- a/Makefile +++ /dev/null @@ -1,15 +0,0 @@ -route_analysis: R/route_analysis.Rmd - R -e 'library("rmarkdown"); old_path <- Sys.getenv("PATH"); Sys.setenv(PATH = paste(old_path, "/usr/local/bin", sep = ":")); rmarkdown::render(knit_root_dir = "./", output_dir = "./html", input = "./R/route_analysis.Rmd", output_file = "./html/route_analysis.html")' - -clean: clean-data clean-figure clean-script - -clean-data: - rm -vf ./R/data/*.rds - -clean-script: - rm -rvf ./*.md - -clean-figure: - rm -rvf ./figure/ - -.PHONY: data diff --git a/README.md b/README.md index 5354ae9..2e4d3e9 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,3 @@ This script will generate a few figures: ### A map of those routes colored by the level of traffic stress to bike ![example routes-lts figure](examples/example-routes-lts.png) - -## Using make -The command `make route_analysis` will run *route_analysis.Rmd* which -is an R markdown file containing the original R script *route_analysis.R* diff --git a/html/.gitignore b/html/.gitignore deleted file mode 100644 index 5e7d273..0000000 --- a/html/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore everything in this directory -* -# Except this file -!.gitignore diff --git a/R/route_analysis.Rmd b/route_analysis.R similarity index 83% rename from R/route_analysis.Rmd rename to route_analysis.R index f391e28..24ad135 100644 --- a/R/route_analysis.Rmd +++ b/route_analysis.R @@ -1,17 +1,3 @@ ---- -title: "Route Analysis" -output: - html_document: - toc: true - toc_depth: 5 - toc_float: - collapsed: false - smooth_scroll: true ---- - -```{r libs, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} -date() -rm(list=ls()) library(tidyverse) library(ggmap) library(sf) @@ -19,13 +5,8 @@ library(osrm) library(smoothr) library(magick) library(ggnewscale) -fig.height <- 6 -set.seed(1) -``` -# Main R script -```{r Rscript, eval = TRUE, echo = TRUE, results = "show", warning = FALSE, error = TRUE, message = FALSE} ## school focus school_focus <- data.frame(name = c("East High School"), NCES_CODE = c("550852000925")) @@ -33,10 +14,10 @@ school_focus <- data.frame(name = c("East High School"), NCES_CODE = c("55085200 walk_boundary_m <- 1.5 * 1609 ## load school locations -WI_schools <- st_read(dsn = "../data/Schools/WI_schools.gpkg") +WI_schools <- st_read(dsn = "data/Schools/WI_schools.gpkg") ## load addresses -addresses <- read_csv(file="../data/addresses/Addresses_Students_EastHS_2024_GeocodeResults.csv") %>% +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 @@ -44,7 +25,7 @@ addresses <- read_csv(file="../data/addresses/Addresses_Students_EastHS_2024_Geo options(osrm.server = "http://127.0.0.1:5000/") options(osrm.profile = "walk") -register_stadiamaps(key = substr(read_file(file = "../api_keys/stadia_api_key"), 1, 36)) +register_stadiamaps(key = substr(read_file(file = "api_keys/stadia_api_key"), 1, 36)) ## subset addresses within 1.5 miles walk_boundary_poly <- fill_holes(st_make_valid(osrmIsodistance( @@ -56,7 +37,7 @@ walk_boundary_poly <- fill_holes(st_make_valid(osrmIsodistance( addresses_near <- st_intersection(addresses, walk_boundary_poly) ## load bike tls -bike_lts <- st_read("../data/bike_lts/bike_lts_DANE.geojson") +bike_lts <- st_read("data/bike_lts/bike_lts_DANE.geojson") bike_lts[["lts"]] <- as.factor(bike_lts$LTS_F) bike_lts_scale <- data.frame(code = c(1, 2, 3, 4, 9), @@ -77,7 +58,7 @@ for(i in addresses_near$number) { routes <- bind_rows(routes) ## combine routes -bike_lts_buffer <- st_buffer(st_intersection(bike_lts, walk_boundary_poly), 20) +bike_lts_buffer <- st_buffer(st_intersection(bike_lts, walk_boundary_poly), 10) bike_lts_buffer["student_use"] <- unlist(lapply(st_intersects(bike_lts_buffer, routes), length)) @@ -85,14 +66,14 @@ bike_lts <- st_join(bike_lts, bike_lts_buffer %>% select(OBJECTID, student_use)) ## make maps # load logo -logo <- image_read(path = "../other/BFW_Logo_180_x_200_transparent_background.png") -school_symbol <- image_read_svg(path = "../other/school_FILL0_wght400_GRAD0_opsz24.svg") +logo <- image_read(path = "other/BFW_Logo_180_x_200_transparent_background.png") +school_symbol <- image_read_svg(path = "other/school_FILL0_wght400_GRAD0_opsz24.svg") bbox <- st_bbox(st_transform(st_buffer(addresses_near, dist = 500), crs = 4326)) -bbox <- c(left = as.double(bbox[1]), - bottom = as.double(bbox[2]), - right = as.double(bbox[3]), +bbox <- c(left = as.double(bbox[1]), + bottom = as.double(bbox[2]), + right = as.double(bbox[3]), top = as.double(bbox[4])) #get basemap @@ -106,7 +87,7 @@ ggmap(basemap) + x = NULL, y = NULL, color = NULL, - linewidth = "Potential student walkers") + + linewidth = "How many students can use road") + theme(axis.text=element_blank(), axis.ticks=element_blank(), plot.caption = element_text(color = "grey")) + @@ -136,8 +117,8 @@ ggmap(basemap) + label.size = 0.04, size = 2) -ggsave(file = paste0("../figures/", - school_focus %>% pull(name), +ggsave(file = paste0("figures/", + school_focus %>% pull(name), " Routes.pdf"), title = paste0(school_focus %>% pull(name), " Walking Routes"), device = pdf, @@ -150,11 +131,11 @@ ggsave(file = paste0("../figures/", ggmap(basemap) + labs(title = paste0("Walking routes for students at ", school_focus %>% pull(name)), - subtitle = "only showing routes within the walk boundary", + subtitle = "only showing routes within the 1.5 walk boundary", x = NULL, y = NULL, color = NULL, - linewidth = "Potential student walkers") + + linewidth = "How many students can use road") + theme(axis.text=element_blank(), axis.ticks=element_blank(), plot.caption = element_text(color = "grey")) + @@ -183,8 +164,8 @@ ggmap(basemap) + nudge_y = 0.0015, label.size = 0.04, size = 2) -ggsave(file = paste0("../figures/", - school_focus %>% pull(name), +ggsave(file = paste0("figures/", + school_focus %>% pull(name), " Routes - Traffic Stress.pdf"), title = paste0(school_focus %>% pull(name), " Walking Routes - Traffic Stress"), device = pdf, @@ -227,8 +208,8 @@ ggmap(basemap) + nudge_y = 0.0015, label.size = 0.04, size = 2) -ggsave(file = paste0("../figures/", - school_focus %>% pull(name), +ggsave(file = paste0("figures/", + school_focus %>% pull(name), " Addresses.pdf"), title = paste0(school_focus %>% pull(name), " Addresses"), device = pdf, @@ -236,13 +217,3 @@ ggsave(file = paste0("../figures/", width = 11, units = "in", create.dir = TRUE) - - -``` - -# Appendix - -```{r chunklast, eval = TRUE, echo = TRUE, results = "show", warning = TRUE, error = TRUE, message = TRUE} -date() -sessionInfo() -``` diff --git a/R/route_analysis.Rproj b/route_analysis.Rproj similarity index 100% rename from R/route_analysis.Rproj rename to route_analysis.Rproj