Title: | Simulation of Supply Reservoir Systems using Standard Operation Policy |
---|---|
Description: | Reservoir Systems Standard Operation Policy. A system for simulation of supply reservoirs. It proposes functionalities for plotting and evaluation of supply reservoirs systems. |
Authors: | Rezgar Arabzadeh, Parisa Aberi, Kaveh Panaghi, Shahab Araghinejad, Majid Montaseri |
Maintainer: | Rezgar Arabzadeh <[email protected]> |
License: | GPL-2 |
Version: | 1.1 |
Built: | 2024-11-16 04:03:41 UTC |
Source: | https://github.com/cran/RSSOP |
RSSOP
Package: | RSSOP |
Type: | Package |
Version: | 1.0 |
Date: | 2015-12-29 |
License: | GPL-2 |
The package provides functions to establish the reservoirs systems elements and build up an operation standard operation policy (SOP) releases. The package include S3 classes for reservoir(s) system operation. Methods such as plot and yield is available for standard objects inherited from class SOP for results illustration and visualization.
Rezgar Arabzadeh <[email protected]>, Parisa Aberi <[email protected]>, Kaveh Panaghi <[email protected]>, Shahab Araghinejad <[email protected], Majid Montaseri <[email protected]>
Maintainer: Rezgar Arabzadehh <[email protected]>
Loucks, Daniel P., et al. Water resources systems planning and management: an introduction to methods, models and applications. Paris: UNESCO, 2005. Araghinejad, S. (2013). Data-Driven Modeling: Using MATLAB, in Water Resources and Environmental Engineering (Vol. 67). Springer Science & Business Media.
Adds an object to the an object inherited from class createArea
addObjectToArea(area, object, type)
addObjectToArea(area, object, type)
area |
an object inherited from creatArea class |
object |
an object to be added to area |
type |
type of the object to added to area: "reservoir", "demand", "hydrometeorology" |
an object inherited from class of creatArea
Rezgar Arabzadeh, Parisa Aberi, Kaveh Panaghi
# Create an area object<-createArea(name ="Zarineh" , location="kurdistan", start =c(1900,1) , end =c(1962,1)) # Create an Agricultural demand site var<-sin(seq(0.2,pi-0.2,length.out=12))*100/sum(sin(seq(0.2,pi-0.2,length.out=12))) dem<-createDemandSite(type="agricultural" , demandName="Agri" , demandCode=1 , annualUseRate=1.3084 , annualVariation=var , area=1000 , cycle=TRUE , numberOfCycles=62 , supplierCode=1 , downstreamCode=0 , priority=1) # Create a Reservoir AV<-data.frame(A=seq(2 ,30 ,length.out=10), V=seq(100,700,length.out=10)) res<-createReservoir(type ="storage", name ="Bukan" , reservoirCode =1 , downstreamReservoirCode=0 , geometry =list(sMin =100 , sMax =700 , volumeArea=AV)) # Creat a meteorological object met<-hydrometeorology(Inflow =rlnorm(744,2,0.2), netEvaporation=runif(744,0,0.2) , reservoirCode =1) # add object to The area object<-addObjectToArea(area =object, object=met , type ="hydrometeorology") object<-addObjectToArea(area =object, object=dem , type ="demand") object<-addObjectToArea(area =object, object=res , type ="reservoir")
# Create an area object<-createArea(name ="Zarineh" , location="kurdistan", start =c(1900,1) , end =c(1962,1)) # Create an Agricultural demand site var<-sin(seq(0.2,pi-0.2,length.out=12))*100/sum(sin(seq(0.2,pi-0.2,length.out=12))) dem<-createDemandSite(type="agricultural" , demandName="Agri" , demandCode=1 , annualUseRate=1.3084 , annualVariation=var , area=1000 , cycle=TRUE , numberOfCycles=62 , supplierCode=1 , downstreamCode=0 , priority=1) # Create a Reservoir AV<-data.frame(A=seq(2 ,30 ,length.out=10), V=seq(100,700,length.out=10)) res<-createReservoir(type ="storage", name ="Bukan" , reservoirCode =1 , downstreamReservoirCode=0 , geometry =list(sMin =100 , sMax =700 , volumeArea=AV)) # Creat a meteorological object met<-hydrometeorology(Inflow =rlnorm(744,2,0.2), netEvaporation=runif(744,0,0.2) , reservoirCode =1) # add object to The area object<-addObjectToArea(area =object, object=met , type ="hydrometeorology") object<-addObjectToArea(area =object, object=dem , type ="demand") object<-addObjectToArea(area =object, object=res , type ="reservoir")
it creates an area to operate reservoirs inside it
createArea(name = "unknown", location = "unknown", start = c(), end = c())
createArea(name = "unknown", location = "unknown", start = c(), end = c())
name |
a string representing the name of the operating area |
location |
a string representing the location of the operating area |
start |
a vector whose first number presents the number of start month of simulation time and second number shows the start year of of simulation time |
end |
a vector whose first number presents the number of end month of simulation time and second number shows the end year of of simulation time |
an object of class of createArea
Rezgar Arabzadeh, Parisa Aberi
A function to create a demand site using demand pattern variation or time series
createDemandSite(type = "agricultural", demandName = "Agri1", demandCode, annualUseRate, annualVariation, area, cycle = FALSE, numberOfCycles = NULL, supplierCode, downstreamCode, priority = 1, start = 1900)
createDemandSite(type = "agricultural", demandName = "Agri1", demandCode, annualUseRate, annualVariation, area, cycle = FALSE, numberOfCycles = NULL, supplierCode, downstreamCode, priority = 1, start = 1900)
type |
domestic, agricultural, and environmental. the hydropower is not available in this version |
demandName |
a string name of the desired demand site |
demandCode |
a uniqe integer number |
annualUseRate |
the amount of water consumption per unit of area during a year |
annualVariation |
a vector, in percent, of demand site variation during a year. the summation of vector's ellemnt should be equal to 100 |
area |
for agricultual type: the area of demand site |
cycle |
logical, cycle the time series? |
numberOfCycles |
if cycle is TRUE, number of cycles |
supplierCode |
the code of reservoir which is going to supply this demand site |
downstreamCode |
the downstream of demand site |
priority |
the priority of supply |
start |
the start year |
an object inherited from class create DemandSite
Rezgar Arabzadeh, Parisa Aberi
this function creates a reservoir object usning geometrical specifications
createReservoir(type = "storage", name = "resrvoir1", reservoirCode = 1, downstreamReservoirCode, geometry = list(sMin=NULL, sMax=NULL, volumeArea=NULL))
createReservoir(type = "storage", name = "resrvoir1", reservoirCode = 1, downstreamReservoirCode, geometry = list(sMin=NULL, sMax=NULL, volumeArea=NULL))
type |
the type of reservoir, "storage" and "hydropower". hydropower is not available in this version |
name |
a string representing the name of reservoir object |
reservoirCode |
an unique integer code |
downstreamReservoirCode |
the code of reservoir downstream |
geometry |
a list, include maximum and minimum volumes of reservoir and a data frame for volume-area rating curve whose first column includes area (square KM) and the second column is Volume (MCM) |
an object inherited from class createReservoir
Rezgar Arabzadeh, Parisa Aberi, Kaveh Panaghi
this function creates an hydrometeorological object include stream flow and evaporation time series
hydrometeorology(Inflow, netEvaporation, cycleEvaporation = FALSE, numberOfCycles = NULL, startDate = c(1900, 1), reservoirCode)
hydrometeorology(Inflow, netEvaporation, cycleEvaporation = FALSE, numberOfCycles = NULL, startDate = c(1900, 1), reservoirCode)
Inflow |
Inflow time series (MCM) |
netEvaporation |
Net evaporation in (m) |
cycleEvaporation |
logicl, the net evaporation should be cycled or not |
numberOfCycles |
an integer nuber: if cycleEvaporation is TRUE, the number of cycles. if is not specified it would be calculated based on the Inflow time serires |
startDate |
a vector of two elemnts whose elements include start year and strart month respectively |
reservoirCode |
the code of reservoir which this hydrometeorological object belongs to that |
an object from class of hydrometeorology
Rezgar Arabzadeh, Parisa Aberi
an object from the class of createArea which includes the specifications of a cascde reservoir system in Kurdistan, ZerineRud basin. "object" includes two inflow time series in the Bukan and Sonata dam sites, there demands sites time series and geometrical specifications of mentioned dams
data("object")
data("object")
Water Resources Management Company, Ministry of Energy, Iran, 2015
a plot function for an object inherited from class SOP
## S3 method for class 'SOP' plot(x , ...)
## S3 method for class 'SOP' plot(x , ...)
x |
an object inherited from class SOP |
... |
other objects that can passed to plot function |
Rezgar Arabzadeh, Parisa Aberi, Kaveh Panaghi
function for reservoir(s) system(s) operation using Standard Operation Policy
SOP(object)
SOP(object)
object |
an object from class of createArea |
an object inherited from class SOP
Parisa Aberi, Rezgar Arabzadeh, Shahab Araghinejad
Yeh, W. W. G. (1985). Reservoir management and operations models: A state of the art review. Water resources research, 21(12), 1797-1818.
# loading an area data (object) ## Not run: res<-SOP(object) ## Not run: plot(res) ## Not run: Yeild(res)
# loading an area data (object) ## Not run: res<-SOP(object) ## Not run: plot(res) ## Not run: Yeild(res)
SOP base function for class SOP
## S3 method for class 'base' SOP(object)
## S3 method for class 'base' SOP(object)
object |
an object inherited from class creatArea |
Rezgar Arabzadeh, Parisa Aberi
SOP default function of class SOP
## Default S3 method: SOP(object)
## Default S3 method: SOP(object)
object |
an object inherited from class createArea |
Rezgar Arabzadeh, Parisa Aberi
a function for evaluation and calculation of reservoir performance indices based on Hashimoto et al. (1982)
Yeild(object, s.const = 0.95)
Yeild(object, s.const = 0.95)
object |
an object inherited from class SOP |
s.const |
satisfactory constant of supplying |
a matrix presenting Reliability, resiliency, and vulnerability criterion for water resource system performance evaluation
Rezgar Arabzdadeh, Parisa Aberi
Hashimoto, T., Stedinger, J. R., & Loucks, D. P. (1982). Reliability, resiliency, and vulnerability criteria for water resource system performance evaluation. Water resources research, 18(1), 14-20.