Summary
Inputs for AEME follow standardised conventions that are compatible
with most lake ecosystem modelling frameworks. All variable names are
defined in the key_naming data frame, which maps
human-readable names to AEME variable codes and their units.
Lake
The lake list object provides physical and geographic
metadata about the waterbody. Required fields are:
| Field | Type | Description |
|---|---|---|
name |
character | Name of the lake or reservoir |
id |
character / numeric | Unique identifier |
latitude |
numeric | Latitude (degrees North) |
longitude |
numeric | Longitude (degrees East) |
elevation |
numeric | Surface elevation above sea level (m) |
depth |
numeric | Maximum water depth (m) |
area |
numeric | Surface area at maximum depth (m²) |
The depth and area fields are used to
generate a simple cone-shaped hypsograph if none is provided in the
input slot. For more accurate simulations it is strongly
recommended to supply a measured hypsograph.
Meteorological Data
Meteorological data requirements for lake modelling are similar to those used in most lake ecosystem models. The following meteorological variables are required for AEME:
- Air temperature
- Shortwave radiation
- Wind speed
- Rain
- Either relative humidity or dew point temperature
- Either mean sea level pressure or station pressure
The following meteorological variables can be derived from the required variables:
- Dew point temperature
- Relative humidity
- Precipitation vapor pressure
- Wind u and v components
- Cloud cover
- Longwave radiation
Inflows and Outflows
Inflows
Inflows supply water, heat, and (if the biogeochemistry module is
active) nutrients and sediment to the lake. Inflows are specified as a
named list of data frames passed to
add_inflows(). The list name is used as the stream
identifier in each model.
Each inflow data frame must contain:
| Column | Units | Description |
|---|---|---|
Date |
YYYY-MM-DD |
Date of the observation |
HYD_flow |
m³ day⁻¹ | Volumetric flow rate |
HYD_temp |
°C | Inflow water temperature (defaults to air temperature if absent) |
CHM_salt |
PSU | Salinity (0 for freshwater) |
Additional biogeochemical variables (e.g. CHM_oxy,
PHS_frp, NIT_amm) can be included if the
ecosystem model is being used. All variable names must match those in
the key_naming data frame.
# Example: two inflows
inf_data <- list(
stream_north = data.frame(
Date = seq(as.Date("2020-01-01"), as.Date("2021-12-31"), by = "day"),
HYD_flow = 5000,
HYD_temp = 12,
CHM_salt = 0
),
stream_south = data.frame(
Date = seq(as.Date("2020-01-01"), as.Date("2021-12-31"), by = "day"),
HYD_flow = 3000,
HYD_temp = 10,
CHM_salt = 0
)
)
aeme <- add_inflows(aeme, data = inf_data)Outflows
Outflows drain water from the lake or reservoir. Like inflows, they
are specified as a named list of data frames passed to
add_outflows().
Each outflow data frame must contain:
| Column | Units | Description |
|---|---|---|
Date |
YYYY-MM-DD |
Date |
HYD_flow |
m³ day⁻¹ | Volumetric flow rate |
Outlet elevation
The elevation argument of add_outflows()
specifies the depth at which each outlet withdraws water:
- Set
elevation = -1(orelevation = list(outflow = -1)for a named list) for a surface outlet – the outlet always withdraws from the current water surface. - Set
elevationto the actual elevation above sea level (m) for a fixed-depth outlet (e.g. a dam penstock or selective withdrawal). The value must fall within the elevation range of the hypsograph.
# Single surface outlet
outf_single <- list(
outlet = data.frame(
Date = seq(as.Date("2020-01-01"), as.Date("2021-12-31"), by = "day"),
HYD_flow = 8000
)
)
aeme <- add_outflows(
aeme,
data = outf_single,
elevation = list(outlet = -1) # surface outlet
)Multiple outlets at different levels
Reservoirs commonly have several outlets at different depths. Provide
one entry per outlet in both data and
elevation:
# Reservoir with a surface spillway and a deep penstock
outf_multi <- list(
spillway = data.frame(
Date = seq(as.Date("2020-01-01"), as.Date("2021-12-31"), by = "day"),
HYD_flow = 2000 # only active during high water events
),
penstock = data.frame(
Date = seq(as.Date("2020-01-01"), as.Date("2021-12-31"), by = "day"),
HYD_flow = 8000 # daily regulated release
)
)
# Reservoir with full supply level at 150 m a.s.l. and max depth 25 m
aeme <- add_outflows(
aeme,
data = outf_multi,
elevation = list(
spillway = -1, # surface overflow
penstock = 130 # 20 m below the full supply level
)
)For a worked example of a reservoir with two outlets, see
vignette("reservoir-aeme").
Parameters
Being able to specify the parameters of the model is crucial for the
simulation. Parameters can be stored in a data frame within the
aeme object. The parameters in this data frame are used to
update the model configuration files and/or update the meteorological
data (e.g. scaling wind factor) and/or update the inflow/outflow data
(e.g. scaling inflow factor).
utils::data("aeme_parameters")
aeme_parameters
parameters(aeme) <- aeme_parameters