| fitQmapSSPLIN | R Documentation |
fitQmapSSPLIN fits a smoothing spline to the quantile-quantile
plot of observed and modelled time series. doQmapSSPLIN uses
the spline function to adjust the distribution of the modelled data
to match the distribution of the observations.
fitQmapSSPLIN(obs, mod, ...)
## Default S3 method:
fitQmapSSPLIN(obs,mod,wet.day=TRUE,qstep=0.01,
spline.par,...)
## S3 method for class 'matrix'
fitQmapSSPLIN(obs, mod, ...)
## S3 method for class 'data.frame'
fitQmapSSPLIN(obs, mod, ...)
doQmapSSPLIN(x,fobj,...)
## Default S3 method:
doQmapSSPLIN(x,fobj,...)
## S3 method for class 'matrix'
doQmapSSPLIN(x,fobj,...)
## S3 method for class 'data.frame'
doQmapSSPLIN(x,fobj,...)
obs |
|
mod |
|
wet.day |
|
qstep |
|
spline.par |
a named list with parameters passed to |
x |
|
fobj |
output from |
... |
Further arguments passed to methods |
Before further computations the empirical cumulative distribution
functions (CDF) of the observed (obs) and modelled (mod)
are estimated. If !is.null(qstep) than mod and
obs are aggregated to quantiles before model identification as:
quantile(x,probs=seq(0,1,by=qstep). If !is.null(qstep)
than mod and obs are sorted to produce an estimate of
the empirical CDF. In case of different length of mod and
obs than quantile(x,probs=seq(0,1,len=n)] is used, where
n <- min(length(obs),length(mod)). NOTE that large values of
qstep effectively reduce the sample-size and can be used to
speedup computations - but may render estimates less reliable.
wet.day is intended for the use for precipitation data. Wet day
correction attempts to equalise the fraction of days with
precipitation between the observed and the modelled data. If
wet.day=TRUE the empirical probability of nonzero observations
is found (obs>=0) and the corresponding modelled value is
selected as a threshold. All modelled values below this threshold are
set to zero. If wet.day is numeric the same procedure is
performed after setting all obs<wet.day to zero. The
transformations are then only fitted to the portion of the
distributions corresponding to observed wet days.
fitQmapSSPLIN returns an object of class fitQmapSSPLIN
containing following elements:
par |
A list containing objects of class |
wet.day |
|
doQmapSSPLIN returns a numeric vector or matrix
depending on the format of x.
Lukas Gudmundsson
Gudmundsson, L.; Bremnes, J. B.; Haugen, J. E. & Engen-Skaugen, T. Technical Note: Downscaling RCM precipitation to the station scale using statistical transformations - a comparison of methods. Hydrology and Earth System Sciences, 2012, 16, 3383-3390, <doi:10.5194/hess-16-3383-2012>.
fitQmap, smooth.spline
data(obsprecip)
data(modprecip)
qm.a.fit <- fitQmapSSPLIN(obsprecip[,2],modprecip[,2],
qstep=0.01,wet.day=TRUE)
qm.a <- doQmapSSPLIN(modprecip[,2],qm.a.fit)
## example on how to use spline.par
## (this example has little effect)
qm.b.fit <- fitQmapSSPLIN(obsprecip[,2],modprecip[,2],
qstep=0.01,wet.day=TRUE,
spline.par=list(cv=TRUE))
qm.b <- doQmapSSPLIN(modprecip[,2],qm.b.fit)
sqrtquant <- function(x,qstep=0.01){
qq <- quantile(x,prob=seq(0,1,by=qstep))
sqrt(qq)
}
plot(sqrtquant(modprecip[,2]),
sqrtquant(obsprecip[,2]))
lines(sqrtquant(modprecip[,2]),
sqrtquant(qm.a),col="red")
lines(sqrtquant(modprecip[,2]),
sqrtquant(qm.b),col="blue")
legend("topleft",legend=c("cv=FALSE","cv=TRUE"),
lty=1,col=c("red","blue"))
qm2.fit <- fitQmapSSPLIN(obsprecip,modprecip,
qstep=0.1,wet.day=TRUE)
qm2 <- doQmapSSPLIN(modprecip,qm2.fit)
op <- par(mfrow=c(1,3))
for(i in 1:3){
plot(sqrtquant(modprecip[,i]),
sqrtquant(obsprecip[,i]),
main=names(qm2)[i])
lines(sqrtquant(modprecip[,i]),
sqrtquant(qm2[,i]),col="red")
}
par(op)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.