fdcu | R Documentation |
Computes and plots the Flow Duration Curve (FDC) for the streamflows given by x
and for two uncertainty bounds, with the possibility of plotting an additional FDC representing simulated streamflows for x
, in order to compare them.
fdcu(x, lband, uband, ...)
## Default S3 method:
fdcu(x, lband, uband, sim=NULL, lQ.thr=0.7, hQ.thr=0.2, plot=TRUE, log="y",
main="Flow Duration Curve", xlab="% Time flow equalled or exceeded",
ylab="Q, [m3/s]", ylim, yat=c(0.01, 0.1, 1), xat=c(0.01, 0.025, 0.05),
col=c("black", "red"), pch=c(1, 15), lwd=c(1, 0.8), lty=c(1, 3), cex=0.2,
cex.axis=1.2, cex.lab=1.2, leg.txt= c("Qobs", "Qsim", "95PPU"),
leg.cex=1, leg.pos="auto", verbose= TRUE, thr.shw=TRUE, border=NA,
bands.col="lightcyan", bands.density=NULL, bands.angle=45, new=TRUE, ...)
## S3 method for class 'matrix'
fdcu(x, lband, uband, sim=NULL, lQ.thr=0.7, hQ.thr=0.2, plot=TRUE, log="y",
main="Flow Duration Curve", xlab="% Time flow equalled or exceeded",
ylab="Q, [m3/s]", ylim, yat=c(0.01, 0.1, 1), xat=c(0.01, 0.025, 0.05),
col=matrix(c(rep("black", ncol(x)),
palette("default")[2:(ncol(x)+1)]), byrow=FALSE, ncol=2),
pch=matrix(rep(c(1, 15), ncol(x)), byrow=TRUE, ncol=2),
lwd=matrix(rep(c(1, 0.8), ncol(x)), byrow=TRUE, ncol=2),
lty=matrix(rep(c(1, 3), ncol(x)), byrow=TRUE, ncol=2),
cex=rep(0.1, ncol(x)), cex.axis=1.2, cex.lab=1.2,
leg.txt=c("OBS", colnames(x), "95PPU"), leg.cex=1, leg.pos="auto",
verbose= TRUE, thr.shw=TRUE, border=rep(NA, ncol(x)),
bands.col=rep("lightcyan", ncol(x)), bands.density=rep(NULL, ncol(x)),
bands.angle=rep(45, ncol(x)), new=TRUE, ...)
## S3 method for class 'data.frame'
fdcu(x, lband, uband, sim=NULL, lQ.thr=0.7, hQ.thr=0.2, plot=TRUE, log="y",
main="Flow Duration Curve", xlab="% Time flow equalled or exceeded",
ylab="Q, [m3/s]", ylim, yat=c(0.01, 0.1, 1), xat=c(0.01, 0.025, 0.05),
col=matrix(c(rep("black", ncol(x)),
palette("default")[2:(ncol(x)+1)]), byrow=FALSE, ncol=2),
pch=matrix(rep(c(1, 15), ncol(x)), byrow=TRUE, ncol=2),
lwd=matrix(rep(c(1, 0.8), ncol(x)), byrow=TRUE, ncol=2),
lty=matrix(rep(c(1, 3), ncol(x)), byrow=TRUE, ncol=2),
cex=rep(0.1, ncol(x)), cex.axis=1.2, cex.lab=1.2,
leg.txt=c("OBS", colnames(x), "95PPU"), leg.cex=1, leg.pos="auto",
verbose= TRUE, thr.shw=TRUE, border=rep(NA, ncol(x)),
bands.col=rep("lightcyan", ncol(x)), bands.density=rep(NULL, ncol(x)),
bands.angle=rep(45, ncol(x)), new=TRUE, ...)
x |
numeric, zoo, data.frame or matrix object with the observed streamflows for which the flow duration curve have to be computed. |
lband |
numeric, zoo, data.frame or matrix object with the streamflows representing the the lower uncertainty bound of |
uband |
numeric, zoo, data.frame or matrix object with the streamflows representing the the upper uncertainty bound of |
sim |
OPTIONAL. |
lQ.thr |
numeric, low flows separation threshold. If this value is different from 'NA', a vertical line is drawn in this value, and all the values to the left of it are deemed low flows. |
hQ.thr |
numeric, high flows separation threshold. If this value is different from 'NA', a vertical line is drawn in this value, and all the values to the right of it are deemed high flows |
plot |
logical. Indicates if the flow duration curve should be plotted or not. |
log |
character, indicates which axis has to be plotted with a logarithmic scale. Default value is y. |
main |
See |
xlab |
See |
ylab |
See |
ylim |
See |
yat |
Only used when |
xat |
Only used when |
col |
See |
pch |
See |
lwd |
See |
lty |
See |
cex |
See |
cex.axis |
magnification of axis annotation relative to 'cex'. |
cex.lab |
Magnification to be used for x and y labels relative to the current setting of 'cex'. See '?par'. |
leg.txt |
vector with the names that have to be used for each column of |
leg.cex |
numeric, indicating the character expansion factor for the legend, *relative* to current |
leg.pos |
keyword to be used to position the legend. One of the list ‘"bottomright", "bottom", "bottomleft", "left", "topleft", "top", "topright", "right", "center"’. This places the legend on the inside of the plot frame at the given location. See |
verbose |
logical; if TRUE, progress messages are printed |
thr.shw |
logical, indicating if the streamflow values corresponding to the user-defined thresholds |
border |
See |
bands.col |
See |
bands.density |
See |
bands.angle |
See |
new |
logical, if TRUE, a new plotting window is created. |
... |
further arguments passed to or from other methods (to the plotting functions) |
If you do not want to use logarithmic scale for the streamflow axis, you can do it by passing the log=" "
to the ...
argument.
Mauricio Zambrano-Bigiarini, mzb.devel@gmail
Vogel, R., and N. M. Fennessey (1994), Flow duration curves I: A new interpretation and confidence intervals, ASCE, Journal of Water Resources Planning and Management, 120(4).
Vogel, R., and N. Fennessey (1995), Flow duration curves II: A review of applications in water resources planning, Water Resources Bulletin, 31(6), 1029-1039, doi:10.1111/j.1752-1688.1995.tb03419.x.
Yilmaz, K. K., H. V. Gupta, and T. Wagener (2008), A process-based diagnostic approach to model evaluation: Application to the NWS distributed hydrologic model, Water Resour. Res., 44, W09417, doi:10.1029/2007WR006716.
fdc
## Loading daily streamflows at the station Oca en Ona (Ebro River basin, Spain) ##
data(OcaEnOnaQts)
q <- OcaEnOnaQts
# Creating a fictitious lower uncertainty band
lband <- q - min(q, na.rm=TRUE)
# Giving a fictitious upper uncertainty band
uband <- q + mean(q, na.rm=TRUE)
# Plotting the flow duration curve corresponding to 'q', with two uncertainty bounds
fdcu(q, lband, uband)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.