Dam (Storage Level)
Streamfall.extract_spec!
— Methodextract_spec!(node::DamNode, spec::AbstractDict)::Nothing
Extract dam-specific values.
Streamfall.run_node!
— Methodrun_node!(
node::DamNode, climate::Climate, ts::Int;
inflow=nothing, extraction=nothing, exchange=nothing
)::Nothing
Run 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)::Nothing
Method 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)::Float64
Update 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.