-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsimulated_observed_comparisons.R
More file actions
139 lines (103 loc) · 5.68 KB
/
Copy pathsimulated_observed_comparisons.R
File metadata and controls
139 lines (103 loc) · 5.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#comparing observed and simulated metrics for EAP10
#Nick Manna
#started 6/7/21
# 0.0 SETUP-----
#clear env and load libraries
rm(list=ls())
library(pwdgsi)
library(odbc)
library(lubridate)
library(tidyverse)
library(stats)
library(gridExtra)
library(grid)
library(gtable)
library(ggtext)
#connection
mars <- odbc::dbConnect(odbc::odbc(), "mars_data")
#folder root to save plots
folder <- "//pwdoows/oows/Watershed Sciences/GSI Monitoring/06 Special Projects/34 PWDGSI metrics calculations/EAP10/"
dir.create(folder, showWarnings = FALSE)
date <- "20211019_aggregatedplots/"
dir.create(paste0(folder, date), showWarnings = FALSE)
#font size
text_size = 22
#folder organization
type <- "sim_obs_comp/"
# 1.1 long term smp plots (subsurface only)----
subsurface_metrics <- dbGetQuery(mars, "select s.ow_uid, s.smp_id, s.ow_suffix, s.asset_type, s.lined, s.surface, s.infiltration_rate_inhr, s.rel_percentstorage, s.draindown_hr, s.dd_assessment_lookup_uid, s.overtopping, s.error_lookup_uid, s.radar_event_uid, s.eventdepth_in, s.eventpeakintensity_inhr, s.eventdepth_lookup_uid, s.designdepth_in, s.relative_eventdepth_lookup_uid, e.eventdepth_range_in, e.eventdepth_description, r.relative_eventdepth_range_in, r.relative_eventdepth_description, s.observed_simulated_lookup_uid from metrics.summary_ow_event s
left join metrics.eventdepth_bin_lookup e on e.eventdepth_lookup_uid = s.eventdepth_lookup_uid
left join metrics.relative_eventdepth_bin_lookup r on r.relative_eventdepth_lookup_uid = s.relative_eventdepth_lookup_uid
where s.surface = false")
give.n <- function(x){
return(c(y = mean(x), label = round(length(x)/2)))
}
#compare overtopping - simulated events vs observed events
sub_sim <- subsurface_metrics %>%
dplyr::filter(observed_simulated_lookup_uid == 2)
sub_obs <- subsurface_metrics %>%
dplyr::filter(observed_simulated_lookup_uid == 1) %>%
dplyr::filter(ow_uid %in% sub_sim$ow_uid & radar_event_uid %in% sub_sim$radar_event_uid)
sub_all <- subsurface_metrics %>%
dplyr::filter(ow_uid %in% sub_sim$ow_uid & radar_event_uid %in% sub_sim$radar_event_uid) %>%
mutate("Observed" = case_when(observed_simulated_lookup_uid == 1 ~ "Observed",
observed_simulated_lookup_uid == 2 ~ "Simulated"))
overtopping_summary <- sub_all %>%
dplyr::count(asset_type, Observed, overtopping)
write.csv(overtopping_summary, paste0(folder,date, "subsurface_overtopping_summary.csv"))
for(i in 1:length(unique(sub_all$asset_type))){
#filter by asset type
sub_all_select <- sub_all %>%
dplyr::filter(asset_type == unique(sub_all$asset_type)[i])
counts <- sub_all_select %>%
dplyr::filter(observed_simulated_lookup_uid == 1) %>%
dplyr::group_by(eventdepth_range_in) %>%
dplyr::count()
asset_type <- sub_all_select$asset_type[1]
type <- "Functional Type/"
dir.create(paste0(folder, date, type), showWarnings = FALSE)
#plot RPSU by event depth range for smp
asset_rpsu_event_depth_plot <- ggplot(sub_all_select,
aes(x = eventdepth_range_in, y = rel_percentstorage)) +
geom_boxplot(aes(fill = Observed)) +
#geom_text(data = counts, aes(label = counts$n, x= counts$eventdepth_range_in))+
xlab("Event Depth Range (in)") +
ylab("Relative Percent of Storage Used") +
ggtitle(paste(sub_all_select$asset_type[1])) +
stat_summary(fun.data = give.n, geom= "label", size = 1/4*text_size, label.size = NA) +
theme(text = element_text(size = text_size))
ggsave(filename = paste0(folder,date, type, asset_type, "_event_depth_rpsu.jpg"), plot = asset_rpsu_event_depth_plot, width = 10, height = 8, units = "in")
}
#now let's do this for combined tree trench and trench
#filter by asset type
sub_all_select <- sub_all %>%
dplyr::filter(asset_type == "Trench" | asset_type == "Tree Trench")
counts <- sub_all_select %>%
dplyr::filter(observed_simulated_lookup_uid == 1) %>%
dplyr::group_by(eventdepth_range_in) %>%
dplyr::count()
asset_type <- "Trench and Tree Trench"
type <- "Functional Type/"
#plot RPSU by event depth range for smp
asset_rpsu_event_depth_plot <- ggplot(sub_all_select,
aes(x = eventdepth_range_in, y = rel_percentstorage)) +
geom_boxplot(aes(fill = Observed)) +
#geom_text(data = counts, aes(label = counts$n, x= counts$eventdepth_range_in))+
xlab("Event Depth Range (in)") +
ylab("Relative Percent of Storage Used") +
ggtitle(paste("Storage Utilization for Trench and Tree Trench Systems")) +
stat_summary(fun.data = give.n, geom= "label", size = 1/4*text_size, label.size = NA) +
theme(text = element_text(size = text_size))
ggsave(filename = paste0(folder,date, type, asset_type, "_event_depth_rpsu.jpg"), plot = asset_rpsu_event_depth_plot, width = 10, height = 8, units = "in")
#subsurface unlined draindown
sub_lined_select <- sub_all %>%
dplyr::filter(surface == 0 | lined == 0)
lined_draindown_event_depth_plot <- ggplot(sub_lined_select,
aes(x = eventdepth_range_in, y = draindown_hr)) +
geom_boxplot(aes(fill = Observed)) +
xlab("Event Depth Range (in)") +
ylab("Draindown (hr)") +
ggtitle("Subsurface Unlined SMP Draindown Times") +
stat_summary(fun.data = give.n, geom= "label", size = 1/4*text_size, label.size = NA) +
theme(text = element_text(size = text_size))
ggsave(filename = paste0(folder,date, type, "Subsurface_Unlined_event_depth_draindown.jpg"), plot = lined_draindown_event_depth_plot, width = 10, height = 8, units = "in")