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"
)
Figure 1: Locations of six gauges (red) for simple scenarios in the Macquarie (northern set of 3) and Lachlan (southern set of three) catchments. Blue outline is the Murray-Darling Basin.
Figure 2: 5-year hydrographs of six gauges (red) for simple scenarios of no change (‘base’), and multiplicative changes of 4x and (1/4)x.

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.

Figure 3: Locations of 45 gauges (red) for factorial multiplicative and additive scenarios in the Namoi (northern catchment with gauges) Macquarie (central) and Lachlan (southern) catchments. Blue outline is the Murray-Darling Basin.

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)
Table 1: Demonstration scenarios are a factorial combination of ‘climate’ (scaled flow) and ‘adaptation’ (pulsed additions).

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