generate.PrecipitationOccurrenceModel {RGENERATEPREC} | R Documentation |
Stochastic Generation of a PrecipitationOccurrenceModel
or PrecipitationOccurrenceMultiSiteModel
model object
Description
It is an implentation of generate
method
Usage
## S3 method for class 'PrecipitationOccurrenceModel'
generate(
x,
newdata = NULL,
previous = NULL,
n = 30,
random = runif(n, min = 0, max = 1),
exogen = NULL,
monthly.factor = NULL,
...
)
## S3 method for class 'CCGammaObjectListPerEachMonth'
generate(x, ...)
## S3 method for class 'PrecipitationOccurrenceMultiSiteModel'
generate(
x,
exogen,
n = 10,
origin = "1961-1-1",
end = "1990-1-1",
previous = NULL,
monthly.factor = NULL,
...
)
## S3 method for class 'PrecipitationAmountModel'
generate(x, ...)
Arguments
x |
model returned by |
newdata |
predictor or exogenous variables. See |
previous |
logical vector containing previously occurred states |
n |
number of generations. See |
random |
vector of random or calculated numbers ranging between 0 and 1 |
exogen |
predictor or exogenous variables |
monthly.factor |
vector of factors indicating the month of the days |
... |
further arguments |
origin , end |
character strings (yyyy-dd-mm) indicating the start and/or end date of the daily weather generation. |
Value
A vector or a data frame reporting generated time series for each station.
References
D.S. Wilks (1998), Multisite Generalization of a Daily Stochastic Precipitation Generation Model, Journal of Hydrology, Volume 210, Issues 1-4, September 1998, Pages 178-191, https://www.sciencedirect.com/science/article/pii/S0022169498001863
Muamaraldin Mhanna and Willy Bauwens (2011) A Stochastic Space-Time Model for the Generation of Daily Rainfall in the Gaza Strip, International Journal of Climatology, Volume 32, Issue 7, pages 1098-1112, doi: 10.1002/joc.2305, https://rmets.onlinelibrary.wiley.com/doi/abs/10.1002/joc.2305
See Also
generate
,predict.glm
,PrecipitationOccurrenceModel
,PrecipitationOccurrenceMultiSiteModel
Examples
library(RGENERATEPREC)
## A function example can be found in the following script file:
scriptfile <- system.file("example.generate.R",package="RGENERATEPREC")
## The corrent file path is given by 'scriptfile' variable:
print(scriptfile)
## To run the example file, launch the file with 'source' command (uncomment the following line)
#source(scriptfile)
## ALTERNATIVELY you can run the following lines:
data(trentino)
year_min <- 1961
year_max <- 1990
origin <- paste(year_min,1,1,sep="-")
end <- paste(year_max,12,31,sep="-")
period <- PRECIPITATION$year>=year_min & PRECIPITATION$year<=year_max
period_temp <- TEMPERATURE_MAX$year>=year_min & TEMPERATURE_MAX$year<=year_max
prec_mes <- PRECIPITATION[period,]
Tx_mes <- TEMPERATURE_MAX[period_temp,]
Tn_mes <- TEMPERATURE_MIN[period_temp,]
accepted <- array(TRUE,length(names(prec_mes)))
names(accepted) <- names(prec_mes)
for (it in names(prec_mes)) {
acc <- TRUE
acc <- (length(which(!is.na(Tx_mes[,it])))==length(Tx_mes[,it]))
acc <- (length(which(!is.na(Tn_mes[,it])))==length(Tn_mes[,it])) & acc
accepted[it] <- (length(which(!is.na(prec_mes[,it])))==length(prec_mes[,it])) & acc
}
valmin <- 1.0
prec_mes <- prec_mes[,accepted]
Tx_mes <- Tx_mes[,accepted]
Tn_mes <- Tn_mes[,accepted]
prec_occurrence_mes <- prec_mes>=valmin
station <- names(prec_mes)[!(names(prec_mes) %in% c("day","month","year"))]
it <- station[2]
vect <- Tx_mes[,it]-Tn_mes[,it]
months <- factor(prec_mes$month)
model <-
PrecipitationOccurrenceModel(x=prec_mes[,it],exogen=vect,
monthly.factor=months,valmin=valmin)
obs <- prec_mes[,it]>=valmin
gen <- generate(model,exogen=vect,monthly.factor=months,n=length(months))
### MultiSite Generation
station <- station[1:2]
exogen <- Tx_mes[,station]-Tn_mes[,station]
months <- factor(prec_mes$month)
model_multisite <-
PrecipitationOccurrenceMultiSiteModel(x=prec_mes[,station],
exogen=exogen,origin=origin,multisite_type="wilks")
## LOGIT-type Model
model_multisite_logit <-
PrecipitationOccurrenceMultiSiteModel(x=prec_mes,exogen=exogen,
origin=origin,multisite_type="logit",station=station)
obs_multisite <- prec_mes[,station]>=valmin
gen_multisite <- generate(model_multisite,exogen=exogen,origin=origin,end=end)
gen_multisite_logit <- generate(model_multisite_logit,exogen=exogen,origin=origin,end=end)