| Title: | Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections |
|---|---|
| Description: | These functions apply an analysis of variance to incomplete ensembles of climate projections. It provides estimates of climate change responses of all simulation chains and of all uncertainty variables. It has been applied to different ensembles of projections simulated to study the impact of climate change: for climate indicators in Evin et al. (2019) <doi:10.1175/JCLI-D-18-0606.1>; seasonal precipitation and temperature in Evin, Somot and Hingray (2021) <doi:10.5194/esd-12-1543-2021>; hydrological variables in Evin et al. (2026) <doi:10.5194/hess-30-1023-2026>; photovoltaic energy in Bichet et al. (2019) <doi:10.1088/1748-9326/ab500a>. |
| Authors: | Guillaume Evin [aut, cre] |
| Maintainer: | Guillaume Evin <[email protected]> |
| License: | GPL-3 |
| Version: | 3.2 |
| Built: | 2026-06-03 21:59:10 UTC |
| Source: | https://github.com/guillaumeevin/qualypso |
Partition uncertainty in climate responses using an ANOVA inferred with a Bayesian approach.
Bayesian.ANOVA(phiStar, scen, listOption = NULL, namesEff)Bayesian.ANOVA(phiStar, scen, listOption = NULL, namesEff)
phiStar |
matrix of climate change responses (absolute or relative changes): |
scen |
data.frame |
listOption |
list of options (see |
namesEff |
names of the main effects |
list with the following fields:
GRANDMEAN: List of estimates for the grand mean:
strong: MEAN: vector of length n of posterior means
strong: SD: vector of length n of posterior standard dev.
strong: CI: matrix n x 2 of credible intervals of
probability probCI given in listOption.
strong: QUANT: matrix n x nQ of quantiles related
to the probabilities quantilePosterior given in listOption
RESIDUALVAR: List of estimates for the variance of the residual errors:
strong: MEAN: vector of length n of posterior means
strong: SD: vector of length n of posterior standard dev.
strong: CI: matrix n x 2 of credible intervals of
probability probCI given in listOption.
strong: QUANT: matrix n x nQ of quantiles related
to the probabilities quantilePosterior given in listOption
MAINEFFECT: List of estimates for the main effects. For each main effect (GCM, RCM,..), each element of the list contains a list with:
strong: MEAN: matrix n x nTypeEff of posterior means
strong: SD: matrix n x nTypeEff of posterior standard dev.
strong: CI: array n x 2 x nTypeEff of credible
intervals of probability probCI given in listOption.
strong: QUANT: array n x nQ x nTypeEff of
quantiles related to the probabilities quantilePosterior given in
listOption
CHANGEBYEFFECT: For each main effect, list of estimates for the mean change by main effect, i.e. mean change by scenario (RCP4.5). For each main effect (GCM, RCM,..), each element of the list contains a list with:
strong: MEAN: matrix n x nTypeEff of posterior means
strong: SD: matrix n x nTypeEff of posterior standard dev.
strong: CI: array n x 2 x nTypeEff of credible
intervals of probability probCI given in listOption.
strong: QUANT: array n x nQ x nTypeEff of
quantiles related to the probabilities quantilePosterior given in
listOption
EFFECTVAR: variability related to the main effects (i.e.
variability between the different RCMs, GCMs,..). Matrix n x
nTypeEff
CONTRIB_EACH_EFFECT: Contribution of each individual effect
to its component (percentage), e.g. what is the contribution of GCM1 to the
variability related to GCMs. For each main effect (GCM, RCM,..), each
element of the list contains a matrix n x nTypeEff
listOption: list of options used to obtained these results
(obtained from QUALYPSO.check.option)
listScenarioInput: list of scenario characteristics
(obtained from QUALYPSO.process.scenario)
Guillaume Evin
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections Using Data Augmentation. Journal of Climate. <doi:10.1175/JCLI-D-18-0606.1>.
Partition sources of uncertainty in climate change responses for one lead time or one grid point.
Bayesian.ANOVA.i(phiStar.i, nMCMC, listScenarioInput)Bayesian.ANOVA.i(phiStar.i, nMCMC, listScenarioInput)
phiStar.i |
vector of |
nMCMC |
number of MCMC simulation required |
listScenarioInput |
list containing specifications, provided by |
list with the following fields:
mu: vector of length nMCMC, mean climate change response
sigma2: vector of length nMCMC, variance of the residual terms
effect: list with nTypeEff elements, where each element corresponds to a different type of effect (e.g. alpha, beta, gamma in Eq. 7)
Each element is a matrix nMCMC x nMaineff, and nMaineff is the number of main effects (e.g. number of GCMs, RCMs, etc.)
Guillaume Evin
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections Using Data Augmentation. Journal of Climate. <doi:10.1175/JCLI-D-18-0606.1>.
Check type and dimensions if objects passed as arguments
checkTypeandDimension(Y, scen, X)checkTypeandDimension(Y, scen, X)
Y |
matrix |
scen |
data.frame |
X |
(optional) predictors corresponding to the projections, e.g. time or global temperature.
It can be a vector if the predictor is the same for all scenarios (e.g. |
Guillaume Evin
Fit trends for each simulation chain of an ensemble of nS projections. Each simulation chain is a time series
of nY time steps (e.g. number of years).
fit.climate.response( Y, typeClimateResponse, parClimateResponse, Xmat, Xfut, typeChangeVariable )fit.climate.response( Y, typeClimateResponse, parClimateResponse, Xmat, Xfut, typeChangeVariable )
Y |
matrix of simulation chains: |
typeClimateResponse |
type of climate response fitted to the projections. |
parClimateResponse |
parameter of the model applied for the extraction of the climate response. |
Xmat |
matrix of predictors corresponding to the projections, e.g. time or global temperature. |
Xfut |
values of the predictor over which the ANOVA will be applied. |
typeChangeVariable |
type of change variable: "abs" (absolute, value by default) or "rel" (relative) |
See QUALYPSO for further information on arguments indexReferenceYear and typeChangeVariable.
list with the following fields for each simulation chain:
YStar: nS x nY, change variable
phiStar: nS x nF, climate change responses
etaStar: nS x nY, deviation from the climate change response
due to the internal variability, for Xmat
phi: nS x nF, raw trends obtained using smooth.spline
varInterVariability: nF, internal variability component of the MME
Guillaume Evin
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections Using Data Augmentation. Journal of Climate. J. Climate, 32, 2423–2440. <doi:10.1175/JCLI-D-18-0606.1>.
Provide matrix Q derived from a matrix Q* of Helmert contrasts:
See Eq. A6 in Evin et al., 2019.
get.Qmat(p)get.Qmat(p)
p |
integer |
matrix |
p x p matrix |
Guillaume Evin
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections Using Data Augmentation. Journal of Climate. J. Climate, 32, 2423–2440. <doi:10.1175/JCLI-D-18-0606.1>.
Provide matrix containing Helmert contrasts (see Eq. A7 in Evin et al., 2019).
get.Qstar.mat(p)get.Qstar.mat(p)
p |
integer |
matrix |
p x (p-1) matrix containing Helmert contrasts |
Guillaume Evin
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) <doi:10.1175/JCLI-D-18-0606.1>.
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections Using Data Augmentation. Journal of Climate. J. Climate, 32, 2423–2440. <doi:10.1175/JCLI-D-18-0606.1>.
Partition uncertainty in climate responses using an ANOVA inferred with a Bayesian approach.
lm.ANOVA(phiStar, scen, listOption = NULL, namesEff)lm.ANOVA(phiStar, scen, listOption = NULL, namesEff)
phiStar |
matrix of climate change responses (absolute or relative changes): |
scen |
data.frame |
listOption |
list of options (see |
namesEff |
names of the main effects |
list with the following fields:
GRANDMEAN: List of estimates for the grand mean:
strong: MEAN: vector of length n of means
strong: SD: vector of length n of standard dev.
strong: CI: matrix n x 2 of credible intervals of
probability probCI given in listOption.
RESIDUALVAR: List of estimates for the variance of the residual errors:
strong: MEAN: vector of length n
MAINEFFECT: List of estimates for the main effects. For each main effect (GCM, RCM,..), each element of the list contains a list with:
strong: MEAN: matrix n x nTypeEff
CHANGEBYEFFECT: For each main effect, list of estimates for the mean change by main effect, i.e. mean change by scenario (RCP4.5). For each main effect (GCM, RCM,..), each element of the list contains a list with:
strong: MEAN: matrix n x nTypeEff
EFFECTVAR: variability related to the main effects (i.e.
variability between the different RCMs, GCMs,..). Matrix n x
nTypeEff
CONTRIB_EACH_EFFECT: Contribution of each individual effect
to its component (percentage), e.g. what is the contribution of GCM1 to the
variability related to GCMs. For each main effect (GCM, RCM,..), each
element of the list contains a matrix n x nTypeEff
listOption: list of options used to obtained these results
(obtained from QUALYPSO.check.option)
listScenarioInput: list of scenario characteristics
(obtained from QUALYPSO.process.scenario)
Guillaume Evin
Plot climate change responses.
plotQUALYPSOclimateChangeResponse( QUALYPSOOUT, lim = NULL, xlab = "", ylab = "Climate change response", ... )plotQUALYPSOclimateChangeResponse( QUALYPSOOUT, lim = NULL, xlab = "", ylab = "Climate change response", ... )
QUALYPSOOUT |
output from |
lim |
y-axis limits (default is NULL) |
xlab |
x-axis label |
ylab |
y-axis label |
... |
additional arguments to be passed to |
Guillaume Evin
Plot the climate responses.
plotQUALYPSOclimateResponse( QUALYPSOOUT, iS = NULL, lim = NULL, xlab = "X", ylab = "Y", ... )plotQUALYPSOclimateResponse( QUALYPSOOUT, iS = NULL, lim = NULL, xlab = "X", ylab = "Y", ... )
QUALYPSOOUT |
output from |
iS |
index of the projection (integer). If NULL, one scenario is chosen randomly |
lim |
y-axis limits (default is NULL) |
xlab |
x-axis label |
ylab |
y-axis label |
... |
additional arguments to be passed to |
Guillaume Evin
Plot prediction of ANOVA effects for one main effect. By default, we plot we plot the credible intervals corresponding to a probability 0.95.
plotQUALYPSOeffect( QUALYPSOOUT, nameEff, includeMean = FALSE, lim = NULL, col = 1:20, xlab = "", ylab = "Effect", addLegend = TRUE, ... )plotQUALYPSOeffect( QUALYPSOOUT, nameEff, includeMean = FALSE, lim = NULL, col = 1:20, xlab = "", ylab = "Effect", addLegend = TRUE, ... )
QUALYPSOOUT |
output from |
nameEff |
name of the main effect to be plotted in |
includeMean |
if TRUE, the grand mean is added to the main effect in the plot |
lim |
y-axis limits (default is NULL) |
col |
colors for each effect |
xlab |
x-axis label |
ylab |
y-axis label |
addLegend |
if TRUE, a legend is added |
... |
additional arguments to be passed to |
Guillaume Evin
Plot prediction of grand mean ensemble.
plotQUALYPSOgrandmean( QUALYPSOOUT, lim = NULL, col = "black", xlab = "", ylab = "Grand mean", addLegend = T, ... )plotQUALYPSOgrandmean( QUALYPSOOUT, lim = NULL, col = "black", xlab = "", ylab = "Grand mean", addLegend = T, ... )
QUALYPSOOUT |
output from |
lim |
y-axis limits (default is NULL) |
col |
color for the overall mean and the credible interval |
xlab |
x-axis label |
ylab |
y-axis label |
addLegend |
if TRUE, a legend is added |
... |
additional arguments to be passed to |
Guillaume Evin
Plot eta* as a function of X as well as eta* +/- 1.645*sqrt(INTERNALVAR), where INTERNALVAR is a function of Xfut.
plotQUALYPSOinternalvar( QUALYPSOOUT, lim = NULL, xlab = "X", ylab = expression(paste(eta, "*")), ... )plotQUALYPSOinternalvar( QUALYPSOOUT, lim = NULL, xlab = "X", ylab = expression(paste(eta, "*")), ... )
QUALYPSOOUT |
output from |
lim |
y-axis limits (default is NULL) |
xlab |
x-axis label |
ylab |
y-axis label |
... |
additional arguments to be passed to |
Guillaume Evin
Plot fraction of total variance explained by each source of uncertainty.
plotQUALYPSOTotalVarianceDecomposition( QUALYPSOOUT, vecEff = NULL, col = c("orange", "yellow", "cadetblue1", "blue1", "darkgreen", "darkgoldenrod4", "darkorchid1"), xlab = "", ylab = "% Total Variance", addLegend = TRUE, ... )plotQUALYPSOTotalVarianceDecomposition( QUALYPSOOUT, vecEff = NULL, col = c("orange", "yellow", "cadetblue1", "blue1", "darkgreen", "darkgoldenrod4", "darkorchid1"), xlab = "", ylab = "% Total Variance", addLegend = TRUE, ... )
QUALYPSOOUT |
output from |
vecEff |
vector of indices corresponding to the main effects (NULL by default), so that the order of appearance in the plot can be modified |
col |
colors for each source of uncertainty, the first two colors corresponding to internal variability and residual variability, respectively |
xlab |
x-axis label |
ylab |
y-axis label |
addLegend |
if TRUE, a legend is added |
... |
additional arguments to be passed to |
Guillaume Evin
Partition uncertainty in climate responses using an ANOVA applied to climate change responses. The main
function of the package needs at least two arguments: Y is an ensemble of climate projections, i.e. a matrix
nS x nY where nS projections are provided for nY years or future time steps;
scen is a data.frame which provides nEff characteristics for each projection.
QUALYPSO(Y, scen, X = NULL, Xfut = NULL, listOption = NULL)QUALYPSO(Y, scen, X = NULL, Xfut = NULL, listOption = NULL)
Y |
matrix |
scen |
data.frame |
X |
(optional) predictors corresponding to the projections, e.g. time or global temperature.
It can be a vector if the predictor is the same for all scenarios (e.g. |
Xfut |
(optional) |
listOption |
(optional) list of options
|
List providing the results for each of the n values of Xfut
if Y is a matrix or for each grid point if Y is an array, with the following fields:
CLIMATERESPONSE: list of climate change responses and
corresponding internal variability. Contains phiStar (climate change
responses), etaStar (deviation from the climate change responses as
a result of internal variability), Ystar (change variable from the
projections),and phi (fitted climate responses).
GRANDMEAN: List of estimates for the grand mean:
MEAN: vector of length n of means.
SD: vector of length n of standard dev.
CI: matrix n x 2 of credible intervals of
probability probCI given in listOption
QUANT: matrix n x nQ of quantiles of
probability quantilePosterior given in listOption if
ANOVAmethod=="Bayesian".
MAINEFFECT: List of estimates for the main effects. For each main effect (GCM, RCM,..), each element of the list contains a list with:
MEAN: matrix n x nTypeEff
SD: matrix n x nTypeEff of standard dev.
CI: array n x 2 x nTypeEff of credible
intervals of probability probCI given in listOption
QUANT: array n x nQ x nTypeEff of
quantiles of probability quantilePosterior given in
listOption if ANOVAmethod=="Bayesian".
CHANGEBYEFFECT: For each main effect, list of estimates for the mean change by main effect, i.e. mean change by scenario. For each main effect (GCM, RCM,..), each element of the list contains a list with:
MEAN: matrix n x nTypeEff
SD: matrix n x nTypeEff of standard dev.
if ANOVAmethod=="Bayesian".
CI: array n x 2 x nTypeEff of credible
intervals of probability probCI given in listOption if
ANOVAmethod=="Bayesian".
QUANT: array n x nQ x nTypeEff of
quantiles of probability quantilePosterior given in
listOption if ANOVAmethod=="Bayesian".
EFFECTVAR: Matrix n x nTypeEff giving, for each
time variability related to the main effects (i.e.
variability between the different RCMs, GCMs,..).
CONTRIB_EACH_EFFECT: Contribution of each individual effect
to its component (percentage), e.g. what is the contribution of GCM1 to the
variability related to GCMs. For each main effect (GCM, RCM,..), each
element of the list contains a matrix n x nTypeEff
RESIDUALVAR: List of estimates for the variance of the residual errors:
MEAN: vector of length n.
SD: vector of length n of standard dev.
if ANOVAmethod=="Bayesian".
CI: matrix n x 2 of credible intervals of
probability probCI given in listOption if
ANOVAmethod=="Bayesian".
QUANT: matrix n x nQ of quantiles of
probability quantilePosterior given in listOption if
ANOVAmethod=="Bayesian".
INTERNALVAR: Internal variability
TOTALVAR: total variability, i.e. the sum of internal variability, residual variability and variability related to the main effects
DECOMPVAR: Decomposition of the total variability for each component
RESERR: differences between the climate change responses and the additive anova formula (grand mean + main effects)
Xmat: matrix of predictors
Xfut: future predictor values
namesEff: names of the main effects
Y: matrix of available combinations given as inputs
listOption: list of options used to obtained these results
(output of QUALYPSO.check.option)
listScenarioInput: list of scenario characteristics
(output of QUALYPSO.process.scenario)
Guillaume Evin
Evin, G., B. Hingray, J. Blanchet, N. Eckert, S. Morin, and D. Verfaillie (2020) Partitioning Uncertainty Components of an Incomplete Ensemble of Climate Projections Using Data Augmentation. Journal of Climate. <doi:10.1175/JCLI-D-18-0606.1>.
#____________________________________________________________ # CALLING QUALYPSO #____________________________________________________________ # call main QUALYPSO function: two arguments are mandatory: # - Y: Climate projections for nS scenarios and nY time steps. Y is a matrix nS x nY, we # run QUALYPSO nY times, for each time step. # - scen: matrix or data.frame of available combinations nS x nEff. The number of # characteristics nEff corresponds to the number of main effects that will be included in the # ANOVA model. In the following example, we have nEff=2 main effects corresponding to the GCMs # and RCMs. # Many options can be specified in the argument "listOption". #____________________________________________________________ # Example 1: Synthetic scenarios #____________________________________________________________ # create nS=3 fictive climate scenarios with 2 GCMs and 2 RCMs, for a period of nY=20 years n=20 t=0:n/n # GCM effects (sums to 0 for each t) effGCM1 = t*2 effGCM2 = t*1 effGCM3 = t*-3 # RCM effects (sums to 0 for each t) effRCM1 = t*1 effRCM2 = t*-1 # These climate scenarios are a sum of effects and a random gaussian noise scenGCM1RCM1 = effGCM1 + effRCM1 + rnorm(n=n+1,sd=0.5) scenGCM1RCM2 = effGCM1 + effRCM2 + rnorm(n=n+1,sd=0.5) scenGCM2RCM1 = effGCM2 + effRCM1 + rnorm(n=n+1,sd=0.5) scenGCM2RCM2 = effGCM2 + effRCM2 + rnorm(n=n+1,sd=0.5) scenGCM3RCM1 = effGCM3 + effRCM1 + rnorm(n=n+1,sd=0.5) Y_synth = rbind(scenGCM1RCM1,scenGCM1RCM2,scenGCM2RCM1,scenGCM2RCM2,scenGCM3RCM1) # Here, scen indicates that the first scenario is obtained with the combination of the # GCM "GCM1" and RCM "RCM1", the second scenario is obtained with the combination of # the GCM "GCM1" and RCM "RCM2" and the third scenario is obtained with the combination # of the GCM "GCM2" and RCM "RCM1". scen_synth = data.frame(GCM=c('GCM1','GCM1','GCM2','GCM2','GCM3'), RCM=c('RCM1','RCM2','RCM1','RCM2','RCM1')) # run QUALYPSO QUALYPSO_synth = QUALYPSO(Y=Y_synth, scen=scen_synth, X=2000:2020, listOption = list(typeClimateResponse="poly")) # plot main GCM effects plotQUALYPSOeffect(QUALYPSO_synth,nameEff="GCM",xlab="Years") lines(2000:2020, effGCM1,lty=2,lwd=2,col="black") lines(2000:2020, effGCM2,lty=2,lwd=2,col="red") lines(2000:2020, effGCM3,lty=2,lwd=2,col="green") # plot main RCM effects plotQUALYPSOeffect(QUALYPSO_synth,nameEff="RCM",xlab="Years") lines(2000:2020, effRCM1,lty=2,lwd=2,col="black") lines(2000:2020, effRCM2,lty=2,lwd=2,col="red") # plot fraction of total variance for the differences sources of uncertainty plotQUALYPSOTotalVarianceDecomposition(QUALYPSO_synth,xlab="Years") #____________________________________________________________ # Example 2: climate projections of mean winter (DJF) temperature # with time as the predictor #____________________________________________________________ # list of options listOption = list(typeChangeVariable='abs') # call QUALYPSO QUALYPSO_time = QUALYPSO(Y=Y_DJFTas,scen=scen_DJFTas,X=1971:2099, Xfut=1990:2099,listOption=listOption) # diagnostic of the climate responses plotQUALYPSOclimateResponse(QUALYPSO_time) # diagnostic of the internal variability plotQUALYPSOinternalvar(QUALYPSO_time) # grand mean effect plotQUALYPSOgrandmean(QUALYPSO_time,xlab="Years") # main GCM effects plotQUALYPSOeffect(QUALYPSO_time,nameEff="GCM",xlab="Years") # main RCM effects plotQUALYPSOeffect(QUALYPSO_time,nameEff="RCM",xlab="Years") # variance decomposition plotQUALYPSOTotalVarianceDecomposition(QUALYPSO_time,xlab="Years") #____________________________________________________________ # Example 3: climate projections of mean winter (DJF) temperature # with global temperature as the predictor #____________________________________________________________ # list of options listOption = list(typeChangeVariable='abs') # call QUALYPSO QUALYPSO_wl = QUALYPSO(Y=Y_DJFTas,scen=scen_DJFTas,X=X_DJFTas_WL, Xfut=seq(from=0.5,to=3,by=0.1),listOption=listOption) # diagnostic of the climate responses plotQUALYPSOclimateResponse(QUALYPSO_wl) # diagnostic of the internal variability plotQUALYPSOinternalvar(QUALYPSO_wl) # grand mean effect plotQUALYPSOgrandmean(QUALYPSO_wl,xlab="Global warming (Celsius)") # main GCM effects plotQUALYPSOeffect(QUALYPSO_wl,nameEff="GCM",xlab="Global warming (Celsius)") # main RCM effects plotQUALYPSOeffect(QUALYPSO_wl,nameEff="RCM",xlab="Global warming (Celsius)") # variance decomposition plotQUALYPSOTotalVarianceDecomposition(QUALYPSO_wl,xlab="Global warming (Celsius)")#____________________________________________________________ # CALLING QUALYPSO #____________________________________________________________ # call main QUALYPSO function: two arguments are mandatory: # - Y: Climate projections for nS scenarios and nY time steps. Y is a matrix nS x nY, we # run QUALYPSO nY times, for each time step. # - scen: matrix or data.frame of available combinations nS x nEff. The number of # characteristics nEff corresponds to the number of main effects that will be included in the # ANOVA model. In the following example, we have nEff=2 main effects corresponding to the GCMs # and RCMs. # Many options can be specified in the argument "listOption". #____________________________________________________________ # Example 1: Synthetic scenarios #____________________________________________________________ # create nS=3 fictive climate scenarios with 2 GCMs and 2 RCMs, for a period of nY=20 years n=20 t=0:n/n # GCM effects (sums to 0 for each t) effGCM1 = t*2 effGCM2 = t*1 effGCM3 = t*-3 # RCM effects (sums to 0 for each t) effRCM1 = t*1 effRCM2 = t*-1 # These climate scenarios are a sum of effects and a random gaussian noise scenGCM1RCM1 = effGCM1 + effRCM1 + rnorm(n=n+1,sd=0.5) scenGCM1RCM2 = effGCM1 + effRCM2 + rnorm(n=n+1,sd=0.5) scenGCM2RCM1 = effGCM2 + effRCM1 + rnorm(n=n+1,sd=0.5) scenGCM2RCM2 = effGCM2 + effRCM2 + rnorm(n=n+1,sd=0.5) scenGCM3RCM1 = effGCM3 + effRCM1 + rnorm(n=n+1,sd=0.5) Y_synth = rbind(scenGCM1RCM1,scenGCM1RCM2,scenGCM2RCM1,scenGCM2RCM2,scenGCM3RCM1) # Here, scen indicates that the first scenario is obtained with the combination of the # GCM "GCM1" and RCM "RCM1", the second scenario is obtained with the combination of # the GCM "GCM1" and RCM "RCM2" and the third scenario is obtained with the combination # of the GCM "GCM2" and RCM "RCM1". scen_synth = data.frame(GCM=c('GCM1','GCM1','GCM2','GCM2','GCM3'), RCM=c('RCM1','RCM2','RCM1','RCM2','RCM1')) # run QUALYPSO QUALYPSO_synth = QUALYPSO(Y=Y_synth, scen=scen_synth, X=2000:2020, listOption = list(typeClimateResponse="poly")) # plot main GCM effects plotQUALYPSOeffect(QUALYPSO_synth,nameEff="GCM",xlab="Years") lines(2000:2020, effGCM1,lty=2,lwd=2,col="black") lines(2000:2020, effGCM2,lty=2,lwd=2,col="red") lines(2000:2020, effGCM3,lty=2,lwd=2,col="green") # plot main RCM effects plotQUALYPSOeffect(QUALYPSO_synth,nameEff="RCM",xlab="Years") lines(2000:2020, effRCM1,lty=2,lwd=2,col="black") lines(2000:2020, effRCM2,lty=2,lwd=2,col="red") # plot fraction of total variance for the differences sources of uncertainty plotQUALYPSOTotalVarianceDecomposition(QUALYPSO_synth,xlab="Years") #____________________________________________________________ # Example 2: climate projections of mean winter (DJF) temperature # with time as the predictor #____________________________________________________________ # list of options listOption = list(typeChangeVariable='abs') # call QUALYPSO QUALYPSO_time = QUALYPSO(Y=Y_DJFTas,scen=scen_DJFTas,X=1971:2099, Xfut=1990:2099,listOption=listOption) # diagnostic of the climate responses plotQUALYPSOclimateResponse(QUALYPSO_time) # diagnostic of the internal variability plotQUALYPSOinternalvar(QUALYPSO_time) # grand mean effect plotQUALYPSOgrandmean(QUALYPSO_time,xlab="Years") # main GCM effects plotQUALYPSOeffect(QUALYPSO_time,nameEff="GCM",xlab="Years") # main RCM effects plotQUALYPSOeffect(QUALYPSO_time,nameEff="RCM",xlab="Years") # variance decomposition plotQUALYPSOTotalVarianceDecomposition(QUALYPSO_time,xlab="Years") #____________________________________________________________ # Example 3: climate projections of mean winter (DJF) temperature # with global temperature as the predictor #____________________________________________________________ # list of options listOption = list(typeChangeVariable='abs') # call QUALYPSO QUALYPSO_wl = QUALYPSO(Y=Y_DJFTas,scen=scen_DJFTas,X=X_DJFTas_WL, Xfut=seq(from=0.5,to=3,by=0.1),listOption=listOption) # diagnostic of the climate responses plotQUALYPSOclimateResponse(QUALYPSO_wl) # diagnostic of the internal variability plotQUALYPSOinternalvar(QUALYPSO_wl) # grand mean effect plotQUALYPSOgrandmean(QUALYPSO_wl,xlab="Global warming (Celsius)") # main GCM effects plotQUALYPSOeffect(QUALYPSO_wl,nameEff="GCM",xlab="Global warming (Celsius)") # main RCM effects plotQUALYPSOeffect(QUALYPSO_wl,nameEff="RCM",xlab="Global warming (Celsius)") # variance decomposition plotQUALYPSOTotalVarianceDecomposition(QUALYPSO_wl,xlab="Global warming (Celsius)")
Check if input options provided in QUALYPSO are valid and assigned default values if missing.
QUALYPSO.check.option(listOption)QUALYPSO.check.option(listOption)
listOption |
list of options |
List containing the complete set of options.
Guillaume Evin
Process input scenarios.
QUALYPSO.process.scenario(scen)QUALYPSO.process.scenario(scen)
scen |
data.frame |
list of preprocessed objects (listEff, scen, scenComp, nEff, nTypeEff, nComp, isMissing, nMissing, iMatchScen,
indexEffInCompScen, Qmat)
Guillaume Evin
scen_DJFTas gives the GCM and RCM which have been used for the 20 climate projections (obtained with the RCP8.5)
data(scen_DJFTas)data(scen_DJFTas)
data.frame with 20 rows and two columns: GCM and RCM
Guillaume Evin [email protected]
SWE maxima are provided for 18 projections obtained with 9 different combinations of GCMs and RCMs and two emission scenarios (RCP4.5 and RCP8.5).
data(scen_SWE)data(scen_SWE)
matrix 18 scenarios x 149 years
Guillaume Evin [email protected]
Evin, G., E. Le Roux, E. Kamir, and S. Morin. « Estimating changes in extreme snow load in Europe as a function of global warming levels ». Cold Regions Science and Technology 231 (2025): 104424. https://doi.org/10.1016/j.coldregions.2025.104424.
Annual warming levels at the planetary scales simulated by different CMIP5 GCMs for the period 1971-2099. Warming levels are obtained with respect to the year 1860 (common starting year of the CMIP5 simulations). These warming levels have been obtained with the following steps:
Annual tas averages simulated by different CMIP5 have first been smoothed using a smoothing spline. Let us denote these smoothed values by tas_GCM(y) for a year y.
Large discrepancies can be observed for tas_GCM_smooth(y) even in the past due to large first-order biases in the GCM simulations. In order to obtain a common reference, we also consider observed tas estimates at the global scale. HadCRUT5 (Morice et al., 2021, 10.1029/2019JD032361) provides anomalies with respect to the period 1961-1990. An estimate of absolute average temperature for this period is 14°C (Jones et al., 1999, 10.1029/1999RG900002). Smoothed estimates of absolute tas averages are obtained using a smoothing spline and is denoted by tas_obs(y).
Warming levels are obtained as anomalies with respect to the period 1860 and considering a reference year, here 1990, where the warming levels WL are in agreement: WL(y) = tas_GCM(y)-tas_GCM(1990)+tas_obs(1990)-tas_obs(1860)
data(X_DJFTas_WL)data(X_DJFTas_WL)
matrix 20 scenarios x 129 years
Guillaume Evin [email protected]
Annual warming levels at the planetary scales simulated by different CMIP5 GCMs for the period 1951-2099. Warming levels are obtained with respect to the year 1860 (common starting year of the CMIP5 simulations). See Evin et al. (2025) for further details.
data(X_SWE_WL)data(X_SWE_WL)
matrix 18 scenarios x 149 years
Guillaume Evin [email protected]
Evin, G., E. Le Roux, E. Kamir, and S. Morin. « Estimating changes in extreme snow load in Europe as a function of global warming levels ». Cold Regions Science and Technology 231 (2025): 104424. https://doi.org/10.1016/j.coldregions.2025.104424.
climate projections of mean winter (DJF) temperature over the SREX region CEU simulated by 20 combinations of CMIP5 GCMs and RCMs for the period 1971-2099
data(Y_DJFTas)data(Y_DJFTas)
matrix 20 scenarios x 129 years
Guillaume Evin [email protected]
Seneviratne, S. I. et al. Changes in Climate Extremes and their Impacts on the Natural Physical Environment, in: Managing the Risks of Extreme Events and Disasters to Advance Climate Change Adaptation: Special Report of the Intergovernmental Panel on Climate Change, edited by: Field, C., Barros, V., Stocker, T., and Dahe, Q., Cambridge University Press, Cambridge, 109-230, https://doi.org/10.1017/CBO9781139177245.006, 2012
Annual maxima of snow water equivalent for Loire-Atlantique, France, a NUTS-3 region located at a low mean elevation (0 m) and has a suboceanic climate with quite mild and rainy winters. SWE maxima are provided for 18 projections obtained with 9 different combinations of GCMs and RCMs and two emission scenarios (RCP4.5 and RCP8.5).
data(Y_SWE)data(Y_SWE)
matrix 18 scenarios x 149 years
Guillaume Evin [email protected]
Evin, G., E. Le Roux, E. Kamir, and S. Morin. « Estimating changes in extreme snow load in Europe as a function of global warming levels ». Cold Regions Science and Technology 231 (2025): 104424. https://doi.org/10.1016/j.coldregions.2025.104424.