Learn R Programming

s2dverification (version 2.5.0)

PlotVsLTime: Plots A Score Along The Forecast Time With Its Confidence Interval

Description

Plots The Correlation (Corr()) or the Root Mean Square Error (RMS()) between the forecasted values and their observational counterpart or the slopes of their trends (Trend()) or the InterQuartile Range, Maximum-Mininum, Standard Deviation or Median Absolute Deviation of the Ensemble Members (Spread()), or the ratio between the Ensemble Spread and the RMSE of the Ensemble Mean (RatioSDRMS()) along the forecast time for all the input experiments on the same figure with their confidence intervals.

Usage

PlotVsLTime(var, toptitle = "", ytitle = "", monini = 1, freq = 12, nticks = NULL, limits = NULL, listexp = c("exp1", "exp2", "exp3"), listobs = c("obs1", "obs2", "obs3"), biglab = FALSE, hlines = NULL, leg = TRUE, siglev = FALSE, fileout = "output_plotvsltime.eps", sizetit = 1, show_conf = TRUE)

Arguments

var
Matrix containing any Prediction Score with dimensions: (nexp/nmod, 3/4 ,nltime) or (nexp/nmod, nobs, 3/4 ,nltime)
toptitle
Main title, optional.
ytitle
Title of Y-axis, optional.
monini
Starting month between 1 and 12. Default = 1.
freq
1 = yearly, 12 = monthly, 4 = seasonal, ... Default = 12.
nticks
Number of ticks and labels on the x-axis, optional.
limits
c(lower limit, upper limit): limits of the Y-axis, optional.
listexp
List of experiment names, optional.
listobs
List of observation names, optional.
biglab
TRUE/FALSE for presentation/paper plot. Default = FALSE.
hlines
c(a,b, ..) Add horizontal black lines at Y-positions a,b, ... Default = NULL.
leg
TRUE/FALSE if legend should be added or not to the plot. Default = TRUE.
siglev
TRUE/FALSE if significance level should replace confidence interval. Default = FALSE.
fileout
Name of the output eps file.
sizetit
Multiplicative factor to change title size, optional.
show_conf
TRUE/FALSE to show/not confidence intervals for input variables.

Details

Examples of input: Model and observed output from Load() then Clim() then Ano() then Smoothing(): (nmod, nmemb, nsdate, nltime) and (nobs, nmemb, nsdate, nltime) then averaged over the members Mean1Dim(var_exp/var_obs, posdim = 2): (nmod, nsdate, nltime) and (nobs, nsdate, nltime) then passed through Corr(exp, obs, posloop = 1, poscor = 2) or RMS(exp, obs, posloop = 1, posRMS = 2): (nmod, nobs, 3, nltime) would plot the correlations or RMS between each exp & each obs as a function of the forecast time.

Examples

Run this code
# Load sample data as in Load() example:
example(Load)
clim <- Clim(sampleData$mod, sampleData$obs)
ano_exp <- Ano(sampleData$mod, clim$clim_exp)
ano_obs <- Ano(sampleData$obs, clim$clim_obs)
runmean_months <- 12
dim_to_smooth <- 4  # Smooth along lead-times
smooth_ano_exp <- Smoothing(ano_exp, runmean_months, dim_to_smooth)
smooth_ano_obs <- Smoothing(ano_obs, runmean_months, dim_to_smooth)
dim_to_mean <- 2  # Mean along members
required_complete_row <- 3  # Discard startdates for which there are NA leadtimes
leadtimes_per_startdate <- 60
corr <- Corr(Mean1Dim(smooth_ano_exp, dim_to_mean), 
             Mean1Dim(smooth_ano_obs, dim_to_mean), 
             compROW = required_complete_row, 
             limits = c(ceiling((runmean_months + 1) / 2), 
                        leadtimes_per_startdate - floor(runmean_months / 2)))
PlotVsLTime(corr, toptitle = "correlations", ytitle = "correlation", 
            monini = 11, limits = c(-1, 2), listexp = c('CMIP5 IC3'), 
            listobs = c('ERSST'), biglab = FALSE, hlines = c(-1, 0, 1), 
            fileout = 'tos_cor.eps')

Run the code above in your browser using DataLab