diff --git a/figures/dynamic_crash_maps/dynamic_crash_map.html b/figures/dynamic_crash_maps/dynamic_crash_map.html index 1e319d2..471bc03 100644 --- a/figures/dynamic_crash_maps/dynamic_crash_map.html +++ b/figures/dynamic_crash_maps/dynamic_crash_map.html @@ -5254,9 +5254,9 @@ function asArray(value) {
-
+
- - + + diff --git a/scripts/crash_summary_charts.R b/scripts/crash_summary_charts.R index 48b493e..9b2e950 100644 --- a/scripts/crash_summary_charts.R +++ b/scripts/crash_summary_charts.R @@ -13,7 +13,6 @@ for (file in list.files(path = "data/TOPS/", pattern = "crash-data-download")) { message(paste("importing data from file: ", file)) year <- substr(file, 21, 24) csv_run <- read_csv(file = paste0("data/TOPS/",file), col_types = cols(.default = "c")) - csv_run["retreive_date"] <- file.info(file = paste0("data/TOPS/",file))$mtime TOPS_data[[file]] <- csv_run } rm(csv_run, file, year) @@ -29,8 +28,6 @@ TOPS_data <- TOPS_data %>% mutate(month = month(date, label = TRUE), year = as.factor(year(date))) -retrieve_date <- max(TOPS_data %>% filter(year %in% max(year(TOPS_data$date), na.rm = TRUE)) %>% pull(retreive_date)) - # Injury Severy Index and Color ----- injury_severity <- data.frame(InjSevName = c("No apparent injury", "Possible Injury", "Suspected Minor Injury","Suspected Serious Injury","Fatality"), code = c("O", "C", "B", "A", "K"), @@ -124,10 +121,7 @@ TOPS_data %>% x = "Year", y = "Total crashes per year per 100,000 residents", color = "County", - caption = paste0("crash data from UW TOPS lab - retrieved ", - strftime(retrieve_date, format = "%m/%Y"), - " per direction of the WisDOT Bureau of Transportation Safety", - "\nbasemap from StadiaMaps and OpenStreetMap Contributers")) + + caption = "data from UW TOPS lab\nretrieved 3/2024 per direction of the WisDOT Bureau of Transportation Safety") + theme(plot.caption = element_text(color = "grey")) ggsave(file = paste0("figures/crash_summaries/counties_year.pdf"), diff --git a/scripts/dynamic_crash_map.R b/scripts/dynamic_crash_map.R index 101f236..62bced8 100644 --- a/scripts/dynamic_crash_map.R +++ b/scripts/dynamic_crash_map.R @@ -16,11 +16,11 @@ for (file in list.files(path = "data/TOPS/", pattern = "crash-data-download")) { message(paste("importing data from file: ", file)) year <- substr(file, 21, 24) csv_run <- read_csv(file = paste0("data/TOPS/",file), col_types = cols(.default = "c")) - csv_run["retreive_date"] <- file.info(file = paste0("data/TOPS/",file))$mtime TOPS_data[[file]] <- csv_run } rm(csv_run, file, year) TOPS_data <- bind_rows(TOPS_data) + ## clean up data ---- TOPS_data <- TOPS_data %>% mutate(date = mdy(CRSHDATE), @@ -31,9 +31,6 @@ TOPS_data <- TOPS_data %>% mutate(month = month(date, label = TRUE), year = as.factor(year(date))) -retrieve_date <- max(TOPS_data %>% filter(year %in% max(year(TOPS_data$date), na.rm = TRUE)) %>% pull(retreive_date)) - - # Injury Severy Index and Color ----- injury_severity <- data.frame(InjSevName = c("No apparent injury", "Possible Injury", "Suspected Minor Injury","Suspected Serious Injury","Fatality"), code = c("O", "C", "B", "A", "K"), @@ -141,10 +138,7 @@ tag.map.title <- tags$style(HTML(" ")) title <- tags$div( - tag.map.title, HTML(paste0("Pedestrians & Bicyclists involved in a crash
", - min(year(TOPS_data$date), na.rm = TRUE), - " - ", - max(year(TOPS_data$date), na.rm = TRUE))) + tag.map.title, HTML("Pedestrians & Bicyclists hit by cars
2017-2023") ) tag.map.subtitle <- tags$style(HTML(" @@ -162,15 +156,13 @@ tag.map.subtitle <- tags$style(HTML(" ")) subtitle <- tags$div( - tag.map.subtitle, HTML(paste0("data from UW TOPS lab - retrieved ", - strftime(retrieve_date, format = "%m/%Y"), - "
per direction of the WisDOT Bureau of Transportation Safety")) + tag.map.subtitle, HTML("data from UW TOPS lab - retrieved 3/2024
per direction of the WisDOT Bureau of Transportation Safety") ) leaflet() %>% -# addControl(title, position = "topleft", className="map-title") %>% -# addControl(subtitle, position = "bottomleft", className="map-subtitle") %>% - addProviderTiles(providers$Stadia.AlidadeSmooth) %>% + addControl(title, position = "topleft", className="map-title") %>% + addControl(subtitle, position = "bottomleft", className="map-subtitle") %>% + addProviderTiles(providers$Stadia.AlidadeSmooth) %>% addCircleMarkers(data = Pedestrian_Crash_Data, lng=Pedestrian_Crash_Data$longitude, lat=Pedestrian_Crash_Data$latitude, @@ -180,9 +172,6 @@ leaflet() %>% color = "black", weight = 1, fillOpacity = 0.8, - label = lapply(paste0("", Pedestrian_Crash_Data$CrashDate, "
", - Pedestrian_Crash_Data$PedestrianInjurySeverity, "
", - "pedestrian age: ", Pedestrian_Crash_Data$PedestrianAge), htmltools::HTML), group = "Crash Points") %>% addLegend(position = "bottomleft", labels = injury_severity$InjSevName, colors = injury_severity$color, group = "Crash Points", title = "Injury Severity") %>% groupOptions(group = "Crash Points", zoomLevels = 10:20) %>% @@ -199,9 +188,6 @@ leaflet() %>% color = "black", weight = 1, fillOpacity = 0.7, - label = lapply(paste0("", str_to_title(County_Crash_Data$County), " County
", - "mean pedestrian crashes/year: ", round(County_Crash_Data$MeanCrashes,0), "
", - "crashes/100,000 residents: ", round(County_Crash_Data$CrashesPerPopulation,0)), htmltools::HTML), group = "Counties") %>% addLegend(position = "bottomleft", pal = county_pal, values = County_Crash_Data$CrashesPerPopulation, group = "Counties", title = "Mean Crashes/Year in County
(per 100,000 residents)") %>% # addLegendSize(position = "bottomright", color = "black", shape = "circle", values = County_Crash_Data$value.y, group = "Counties", title = "Population of County") %>% diff --git a/scripts/school_maps.R b/scripts/school_maps.R index b089736..1d30b42 100644 --- a/scripts/school_maps.R +++ b/scripts/school_maps.R @@ -20,11 +20,10 @@ library(parallel) ## Load TOPS data ---- ## load TOPS data for the whole state (crashes involving bikes and pedestrians), TOPS_data <- as.list(NULL) -for (file in list.files(path = "data/TOPS/", pattern = "crash-data-download")) { +for (file in list.files(path = "data/TOPS", pattern = "crash-data-download")) { message(paste("importing data from file: ", file)) year <- substr(file, 21, 24) csv_run <- read_csv(file = paste0("data/TOPS/",file), col_types = cols(.default = "c")) - csv_run["retreive_date"] <- file.info(file = paste0("data/TOPS/",file))$mtime TOPS_data[[file]] <- csv_run } rm(csv_run, file, year) @@ -40,8 +39,6 @@ TOPS_data <- TOPS_data %>% mutate(month = month(date, label = TRUE), year = as.factor(year(date))) -retrieve_date <- max(TOPS_data %>% filter(year %in% max(year(TOPS_data$date), na.rm = TRUE)) %>% pull(retreive_date)) - # county index counties <- data.frame(name = c("Dane", "Milwaukee"), CNTYCODE = c(13, 40), @@ -146,10 +143,7 @@ for(county in county_focus) { " County"), x = "Year", y = "Number of crashes", - caption = paste0("crash data from UW TOPS lab - retrieved ", - strftime(retrieve_date, format = "%m/%Y"), - " per direction of the WisDOT Bureau of Transportation Safety", - "\nbasemap from StadiaMaps and OpenStreetMap Contributers")) + caption = "data from UW TOPS Laboratory") ggsave(file = paste0("figures/school_maps/Crash Maps/", str_to_title(county), " County/_", @@ -298,10 +292,7 @@ for(district in district_focus) { min(year(TOPS_data$date), na.rm = TRUE), " - ", max(year(TOPS_data$date), na.rm = TRUE)), - caption = paste0("crash data from UW TOPS lab - retrieved ", - strftime(retrieve_date, format = "%m/%Y"), - " per direction of the WisDOT Bureau of Transportation Safety", - "\nbasemap from StadiaMaps and OpenStreetMap Contributers"), + caption = "crash data from UW TOPS lab - retrieved 3/2024 per direction of the WisDOT Bureau of Transportation Safety\nbasemap from StadiaMaps and OpenStreetMap Contributers", x = NULL, y = NULL) + theme(axis.text=element_blank(), diff --git a/scripts/school_maps_parallel.R b/scripts/school_maps_parallel.R index 1f4ff3c..1e119ca 100644 --- a/scripts/school_maps_parallel.R +++ b/scripts/school_maps_parallel.R @@ -20,14 +20,13 @@ library(parallel) ## Load TOPS data ---- ## load TOPS data for the whole state (crashes involving bikes and pedestrians), TOPS_data <- as.list(NULL) -for (file in list.files(path = "data/TOPS/", pattern = "crash-data-download")) { +for (file in list.files(path = "data/TOPS", pattern = "crash-data-download")) { message(paste("importing data from file: ", file)) year <- substr(file, 21, 24) csv_run <- read_csv(file = paste0("data/TOPS/",file), col_types = cols(.default = "c")) - csv_run["retreive_date"] <- file.info(file = paste0("data/TOPS/",file))$mtime TOPS_data[[file]] <- csv_run } -rm(csv_run, file, year) +rm(csv_run) TOPS_data <- bind_rows(TOPS_data) ## clean up data @@ -40,8 +39,6 @@ TOPS_data <- TOPS_data %>% mutate(month = month(date, label = TRUE), year = as.factor(year(date))) -retrieve_date <- max(TOPS_data %>% filter(year %in% max(year(TOPS_data$date), na.rm = TRUE)) %>% pull(retreive_date)) - # county index counties <- data.frame(name = c("Dane", "Milwaukee"), CNTYCODE = c(13, 40), @@ -150,10 +147,7 @@ for(county in county_focus) { labs(title = paste0("Pedestrians/bicyclists under 18 years old hit by cars in ", str_to_title(county), " County"), - caption = paste0("crash data from UW TOPS lab - retrieved ", - strftime(retrieve_date, format = "%m/%Y"), - " per direction of the WisDOT Bureau of Transportation Safety", - "\nbasemap from StadiaMaps and OpenStreetMap Contributers"), + caption = "crash data from UW TOPS lab - retrieved 3/2024 per direction of the WisDOT Bureau of Transportation Safety", x = "Year", y = "Number of crashes") ggsave(file = paste0("~/temp/wi_crashes/figures/crash_maps/Crash Maps/", @@ -301,10 +295,7 @@ generate_school_maps <- function(district) { min(year(TOPS_data$date), na.rm = TRUE), " - ", max(year(TOPS_data$date), na.rm = TRUE)), - caption = paste0("crash data from UW TOPS lab - retrieved ", - strftime(retrieve_date, format = "%m/%Y"), - " per direction of the WisDOT Bureau of Transportation Safety", - "\nbasemap from StadiaMaps and OpenStreetMap Contributers"), + caption = "crash data from UW TOPS lab - retrieved 3/2024 per direction of the WisDOT Bureau of Transportation Safety\nbasemap from StadiaMaps and OpenStreetMap Contributers", x = NULL, y = NULL) + theme(axis.text=element_blank(),