Dam (Storage Level)
Streamfall.extract_spec! — Methodextract_spec!(node::DamNode, spec::AbstractDict)::NothingExtract dam-specific values.
Streamfall.run_node! — Methodrun_node!(
node::DamNode, climate::Climate, ts::Int;
inflow=nothing, extraction=nothing, exchange=nothing
)::NothingRun a specific node for a specified time step.
Arguments
node: DamNodeclimate: Climate datasetts: Current time stepinflow: Time series of inflows from any upstream node.extraction: Time series of water orders (expects column of_releases)exchange: Time series of groundwater flux
Streamfall.run_node! — Methodrun_node!(
node::DamNode,
ts::Int64,
rain::Float64,
et::Float64,
volume::Float64,
inflow::Float64,
extractions::Float64,
gw_flux::Float64
)Calculate outflow for the dam node for a single time step.
Arguments
node: DamNoderain: rainfall in mmet: evapotranspiration data in mmirrig_ext: irrigation extractionsextractions: extraction data in MLgw_flux: groundwater interaction
Returns
Outflow from dam
Streamfall.update_params! — Methodupdate_params!(node::DamNode, storage_coef::Float64)::NothingMethod to update DamNode specific parameters.
Arguments
node: DamNodestorage_coef: Storage coefficient value
Streamfall.update_volume — Methodupdate_volume(volume, node_inflow, gamma, rain, evap, area, extractions, discharge, max_store)::Float64Update dam volume for timestep.
Arguments
- volume : current water volume in ML
- node_inflow : inflow from previous node in ML
- gamma : groundwater exchange (positive is gain from gw flow, negative is loss to infiltration)
- rain : rainfall input
- evap : evaporation loss
- infiltration : infiltration loss
- area : dam surface area in square kilometers
- extractions : water extraction from dam in ML
- discharge : discharge from dam in ML
- max_store : maximum dam storage in ML
Returns
volume of water stored in dam
Streamfall.DamNode — MethodDamNode(name::String, spec::AbstractDict)Create DamNode from a given specification.