Consist_Trend {s2dv}R Documentation

Compute trend using only model data for which observations are available

Description

Compute the linear trend for a time series by least square fitting together with the associated error interval for both the observational and model data. The 95% confidence interval and detrended observational and model data are also provided.
The function doesn't do the ensemble mean, so if the input data have the member dimension, ensemble mean needs to be computed beforehand.

Usage

Consist_Trend(
  exp,
  obs,
  dat_dim = "dataset",
  time_dim = "sdate",
  interval = 1,
  ncores = NULL
)

Arguments

exp

A named numeric array of experimental data, with at least two dimensions 'time_dim' and 'dat_dim'.

obs

A named numeric array of observational data, same dimensions as parameter 'exp' except along 'dat_dim'.

dat_dim

A character string indicating the name of the dataset dimensions. If data at some point of 'time_dim' are not complete along 'dat_dim' in both 'exp' and 'obs', this point in all 'dat_dim' will be discarded. The default value is 'dataset'.

time_dim

A character string indicating the name of dimension along which the trend is computed. The default value is 'sdate'.

interval

A positive numeric indicating the unit length between two points along 'time_dim' dimension. The default value is 1.

ncores

An integer indicating the number of cores to use for parallel computation. The default value is NULL.

Value

A list containing:

$trend

A numeric array of the trend coefficients of model and observational data with dimensions c(stats = 2, nexp + nobs, the rest dimensions of 'exp' and 'obs' except time_dim), where 'nexp' is the length of 'dat_dim' in 'exp' and 'nobs' is the length of 'dat_dim' in 'obs. The 'stats' dimension contains the intercept and the slope.

$conf.lower

A numeric array of the lower limit of 95% confidence interval with dimensions same as $trend. The 'stats' dimension contains the lower confidence level of the intercept and the slope.

$conf.upper

A numeric array of the upper limit of 95% confidence interval with dimensions same as $trend. The 'stats' dimension contains the upper confidence level of the intercept and the slope.

$detrended_exp

A numeric array of the detrended model data with the same dimensions as 'exp'.

$detrended_obs

A numeric array of the detrended observational data with the same dimensions as 'obs'.

Examples

#'# 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
smooth_ano_exp <- Smoothing(ano_exp, runmeanlen = runmean_months)
smooth_ano_obs <- Smoothing(ano_obs, runmeanlen = runmean_months)
dim_to_mean <- 'member'  # average along members
years_between_startdates <- 5
trend <- Consist_Trend(MeanDims(smooth_ano_exp, dim_to_mean, na.rm = TRUE), 
                      MeanDims(smooth_ano_obs, dim_to_mean, na.rm = TRUE), 
                      interval = years_between_startdates)
#Bind data for plotting
trend_bind <- abind::abind(trend$conf.lower[2, , ], trend$trend[2, , ], 
                          trend$conf.upper[2, , ], trend$trend[1, , ], along = 0)
trend_bind <- Reorder(trend_bind, c(2, 1, 3))

PlotVsLTime(trend_bind, toptitle = "trend", ytitle = "K/(5 years)", 
           monini = 11, limits = c(-0.8, 0.8), listexp = c('CMIP5 IC3'), 
           listobs = c('ERSST'), biglab = FALSE, hlines = c(0)) 
PlotAno(InsertDim(trend$detrended_exp, 2, 1), InsertDim(trend$detrended_obs, 2, 1), 
       startDates, "Detrended tos anomalies", ytitle = 'K', 
       legends = 'ERSST', biglab = FALSE)



[Package s2dv version 2.0.0 Index]