Dam (Storage Level)
Streamfall.run_node!
— Methodrun_node!(node::DamNode, climate::Climate, timestep::Int;
- inflow=nothing, extraction=nothing, exchange=nothing)
Run a specific node for a specified time step.
Arguments
node::DamNode
:climate::Climate
:timestep::Int
: current time stepinflow::DataFrame
: Time series of inflows from any upstream node.extraction::DataFrame
: Time series of water orders (expects column of_releases
)exchange::DataFrame
: Time series of groundwater flux
Streamfall.run_node!
— MethodCalculate outflow for the dam node for a single time step.
Parameters
- node : DamNode
- rain : rainfall in mm
- et : evapotranspiration data in mm
- irrig_ext : irrigation extractions
- extractions : extraction data in ML
- gw_flux : groundwater interaction
Returns
- outflow from dam
Streamfall.update_params!
— Methodupdate_params!(node::DamNode, storage_coef::Float64)::Nothing
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::Dict)
Create DamNode from a given specification.