RHMS (version 1.7)

reservoirRouting: reservoir routing

Description

function for routing flood through a reservoir using classical Muskingum technique

Usage

reservoirRouting(inflow,geometry,initialStorage,simulation)

Arguments

inflow

a vector of in (cms) presenting a runoff event generated by excess rainfall computed by loss methods or an object inherited from any of the following classes :transform ; reachRouting ; reservoirRouting.

geometry

a list of geometric specifications of the reservoir:

  • storageElevationCurve: a data frame: a data frame at which its first collumn includes height (masl) and second collums presents equivalant volume to the height at first collumn (MCM)

  • dischargeElevationCurve: a data frame: a data frame at which its first collumn includes height (masl) and second collums presents equivalant discharge rate to the height at first collumn (cms)

  • storage: the maximum volume of reservoir capacity (MCM)

initialStorage

(optional) the initial storage of reservoir at the first time step of simulation (MCM). default to the capacity.

simulation

a list of simulation time and dates as below:

  • start: the date which simulation starts, must be in 'YYYY-MM-DD' format

  • start: the date which simulation ends, must be in 'YYYY-MM-DD' format

  • by: the interval of each steps in seconds

Value

a data.frame: including inflow time series and routing resaults

References

Chow, V. T., Maidment, D. R., & Mays, L. W. (1988). Applied hydrology.

See Also

reachRouting

Examples

Run this code
# NOT RUN {
inflow<-sin(seq(0,pi,length.out=50))*1000
storageElevationCurve<-data.frame(s=0:49*2,h=100:149)
dischargeElevationCurve<-data.frame(q=0:9*250,h=140:149)
geometry<-list(storageElevationCurve=storageElevationCurve,
               dischargeElevationCurve=dischargeElevationCurve,
               capacity=80)
simulation<-list(start='2000-01-01',end='2000-01-05',by=1800)
reservoir_sim<-reservoirRouting(inflow=inflow,
                                geometry=geometry, 
                                simulation=simulation)
plot(reservoir_sim$operation[,1],typ="o",
     ylab="Discharge rate (cms)",
     xlab="Time step")
lines(reservoir_sim$operation[,3],col=2)
# }

Run the code above in your browser using DataLab