Demonstration scenarios
Simplest scenarios
For most of the examples in the workflow, controller, and aggregator sections, we do not need much complexity to demonstrate use, and so we use a set of very simple scenarios provided as hydrographs with HydroBOT. These include a baseline scenario that is a 5-year historical hydrograph for 6 gauges in the Macquarie and Lachlan catchments in the Murray-Darling Basin, Australia Figure 1. They include two other scenarios that are simple 0.25x and 4x scaling of the historical hydrograph.
scenehydros <- read_hydro(system.file("extdata/testsmall/hydrographs", package = "HydroBOT"),
long = TRUE, format = "csv"
)
More complex scenarios
The ‘scenarios’ used for the examples are more complex to better illustrate plotting capabilities, and capture 45 gauges in three catchments (Figure 3). The scenarios are a factorial combination of multiplicative and additive changes to flow, based on historical hydrographs (Table 1). We use a more complex set for the Comparer examples than for the Controller and Aggregator in order to have something more interesting to plot. The creation of these scenarios is shown here.
To scale flow, we apply nine flow multipliers, ranging from 0.5 to 2.0, to the historical hydrographs (Table 1). We refer to these as ‘climate’ scenarios, reflecting a common representation where entire hydrographs might shift to represent climate change. To achieve pulsed change for each of the ‘climate’ scenarios, four flow additions were applied including 1) no addition (baseline), 2) addition of 250 ML/d, 3) addition of 6500 ML/d, and 4) addition of 12000 ML/d (Table 1). These additional flows were added throughout the period of September to December. We refer to these scenarios as ‘climate adaptations’ because management options are often available in the form of altering water availability for short time periods through mechanisms like water releases, though the options here do not represent proposed actions. These scenarios should not be interpreted as potential climate impacts or adaptations, but instead as different ways flows might change (multiplicative or additive) and different magnitudes of change.
adapt_scenes <- scenarios |>
dplyr::filter(scenario != "MAX") |>
dplyr::mutate(flow_addition = as.integer(flow_addition)) |>
dplyr::select(
`Adaptation code` = adapt_code,
`Flow addition (ML/d)` = flow_addition
) |>
dplyr::distinct()
climate_scenes <- scenarios |>
dplyr::filter(scenario != "MAX") |>
dplyr::select(
`Climate code` = climate_code,
`Flow multiplier` = flow_multiplier
) |>
dplyr::distinct()
adapt_scenes <- adapt_scenes |>
dplyr::bind_rows(tibble::tibble(
`Adaptation code` = rep(NA, nrow(climate_scenes) -
nrow(adapt_scenes)),
`Flow addition (ML/d)` = rep(NA, nrow(climate_scenes) -
nrow(adapt_scenes))
))
climate_scenes |>
dplyr::mutate(`Flow multiplier` = signif(`Flow multiplier`, 2)) |>
dplyr::bind_cols(adapt_scenes) |>
flextable::flextable() |>
flextable::font(fontname = "Calibri") |>
flextable::fontsize(size = 10, part = "all") |>
flextable::set_table_properties(layout = "autofit", width = 1) |>
flextable::vline(j = 2)
Climate code |
Flow multiplier |
Adaptation code |
Flow addition (ML/d) |
---|---|---|---|
A |
0.50 |
1 |
0 |
B |
0.67 |
2 |
250 |
C |
0.80 |
3 |
6,500 |
D |
0.91 |
4 |
12,000 |
E |
1.00 |
||
F |
1.10 |
||
G |
1.20 |
||
H |
1.50 |
||
I |
2.00 |