---
title: "Scenarios"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Scenarios}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>"
)
n_runs <- nrow(keys.lid::performances)
seconds_per_run <- 30
run_total <- n_runs * seconds_per_run / 3600
run_total_hours <- round(run_total,0)
run_total_minutes <- round(60*(run_total - run_total_hours),0)
vrr_fig_height <- 8.5
vrr_fig_width <- 8.5
bp_fig_height <- 7
bp_fig_width <- 8.5
#keys.lid::performances
```
## Scenarios
```{r setup}
library(keys.lid)
paths_list <- list(
swmm_exe = "C:/Program Files (x86)/EPA SWMM 5.1.015/swmm5.exe"
)
paths <- kwb.utils::resolve(paths_list)
scenarios <- keys.lid::read_scenarios()
DT::datatable(scenarios)
```
## Simulate Performance
The SWMM simulations (years: 2008 - 2019) and calculation of
performance metrics (volume rainfall retended, rainfall event sums/max) for four
LIDs with different parameterisations and for five different climate zones
in China (in total: `r n_runs` model runs, which takes about `r seconds_per_run` `seconds per run`, i.e. in total `r run_total_hours` hours `r run_total_minutes` minutes on my laptop).
```{r simulate_performances, eval = FALSE}
### takes about 2.5h for all four LIDs to simulate
catchment_area_m2 <- 1000
lid_area_fractions <- c(0,0.25,0.5,0.75,1)
### Bioretention Cell
br <- keys.lid::simulate_performances(
lid_selected = scenarios[scenarios$lid_name_tidy == "bioretention_cell",],
lid_area_fractions = lid_area_fractions,
catchment_area_m2 = catchment_area_m2,
swmm_exe = paths$swmm_exe
)
### Green Roof
gr <- keys.lid::simulate_performances(
lid_selected = scenarios[scenarios$lid_name_tidy == "green_roof",],
lid_area_fractions = lid_area_fractions,
catchment_area_m2 = catchment_area_m2,
swmm_exe = paths$swmm_exe
)
### Permeable Pavement
pp <- keys.lid::simulate_performances(
lid_selected = scenarios[scenarios$lid_name_tidy == "permeable_pavement",],
lid_area_fractions = lid_area_fractions,
catchment_area_m2 = catchment_area_m2,
swmm_exe = paths$swmm_exe
)
performances <- br %>%
dplyr::bind_rows(gr) %>%
dplyr::bind_rows(pp)
```
## Evaluate Performance
### Median Volume Rainfall Retended per Year
#### Bioretention Cell
```{r evaluate_performance_vrr_br, fig.height=vrr_fig_height, fig.width=vrr_fig_width}
keys.lid::plot_vrr_median("bioretention_cell")
```
#### Green Roof
```{r evaluate_performance_vrr_gr, fig.height=vrr_fig_height, fig.width=vrr_fig_width}
keys.lid::plot_vrr_median("green_roof")
```
#### Permeable Pavements
```{r evaluate_performance_vrr_pp, fig.height=vrr_fig_height, fig.width=vrr_fig_width}
keys.lid::plot_vrr_median("permeable_pavement")
```
### Boxplots
#### Volume Rainfall Retended
##### Bioretention Cell
**Zone 1**
```{r evaluate_performance_boxplot_vrr_bc_zone1, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "bioretention_cell", zone_id = 1)
```
**Zone 2**
```{r evaluate_performance_boxplot_vrr_bc_zone2, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "bioretention_cell", zone_id = 2)
```
**Zone 3**
```{r evaluate_performance_boxplot_vrr_bc_zone3, fig.height=bp_fig_height, fig.width=bp_fig_width}
performances <- keys.lid::performances %>% dplyr::filter(lid_area_fraction == 1)
keys.lid::boxplot_vrr("bioretention_cell", zone_id = 3, performances = performances)
```
**Zone 4**
```{r evaluate_performance_boxplot_vrr_bc_zone4, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "bioretention_cell", zone_id = 4)
```
**Zone 5**
```{r evaluate_performance_boxplot_vrr_bc_zone5, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr("bioretention_cell", zone_id = 5, performances = performances)
```
##### Green Roof
**Zone 1**
```{r evaluate_performance_boxplot_vrr_gr_zone1, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "green_roof", zone_id = 1)
```
**Zone 2**
```{r evaluate_performance_boxplot_vrr_gr_zone2, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "green_roof", zone_id = 2)
```
**Zone 3**
```{r evaluate_performance_boxplot_vrr_gr_zone3, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "green_roof", zone_id = 3, performances = performances)
```
**Zone 4**
```{r evaluate_performance_boxplot_vrr_gr_zone4, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "green_roof", zone_id = 4)
```
**Zone 5**
```{r evaluate_performance_boxplot_vrr_gr_zone5, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "green_roof", zone_id = 4, performances = performances)
```
##### Permeable Pavement
**Zone 1**
```{r evaluate_performance_boxplot_vrr_pp_zone1, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "permeable_pavement", zone_id = 1)
```
**Zone 2**
```{r evaluate_performance_boxplot_vrr_pp_zone2, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "permeable_pavement", zone_id = 2)
```
**Zone 3**
```{r evaluate_performance_boxplot_vrr_pp_zone3, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "permeable_pavement", zone_id = 3, performances = performances)
```
**Zone 4**
```{r evaluate_performance_boxplot_vrr_pp_zone4, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "permeable_pavement", zone_id = 4)
```
**Zone 5**
```{r evaluate_performance_boxplot_vrr_pp_zone5, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_vrr(lid = "permeable_pavement", zone_id = 5, performances = performances)
```
#### Runoff Maximum per Event
**Zone 1**
```{r evaluate_performance_boxplot_runoff_max_gr_zone1, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_runoff_max(lid = "green_roof", zone_id = 1)
```
**Zone 5**
```{r evaluate_performance_boxplot_runoff_max_gr_zone5, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_runoff_max(lid = "green_roof", zone_id = 5)
```
#### Runoff Volume per Event
**Zone 1**
```{r evaluate_performance_boxplot_runoff_volume_gr_zone1, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_runoff_volume(lid = "green_roof", zone_id = 1)
```
**Zone 5**
```{r evaluate_performance_boxplot_runoff_volume_gr_zone5, fig.height=bp_fig_height, fig.width=bp_fig_width}
keys.lid::boxplot_runoff_volume(lid = "green_roof", zone_id = 5)
```
## Export Results to Excel
```{r export_results_to_excel, eval = FALSE}
keys.lid::export_performances()
```