Learn R Programming

s2dverification (version 2.5.0)

ACC: Computes Anomaly Correlation Coefficient (Spatial Correlation)

Description

Matrix var_exp & var_obs should have dimensions (nexp/nobs, nsdates, nltimes, nlat, nlon) or (nexp/nobs, nsdates, nmember, nltimes, nlat, nlon). ACC computes the Anomaly Correlation Coefficient for the ensemble mean of each jexp in 1:nexp and each jobs in 1:nobs which gives nexp x nobs ACC for each startdate and each leadtime. A domain can be selected by providing the list of longitudes/latitudes (lon/lat) of the grid together with the corner of the domain: lonlatbox = c(lonmin, lonmax, latmin, latmax)

Usage

ACC(var_exp, var_obs, lon = NULL, lat = NULL, lonlatbox = NULL, conf = TRUE, conftype = "parametric")

Arguments

var_exp
Matrix of experimental anomalies with dimensions: c(nexp, nsdates, nltimes, nlat, nlon) or c(nexp, nsdates, nmembers, nltimes, nlat, nlon)
var_obs
Matrix of observational anomalies, same dimensions as var_exp except along the first dimension and the second if it corresponds to the member dimension.
lon
Array of longitudes of the var_exp/var_obs grids, optional.
lat
Array of latitudes of the var_exp/var_obs grids, optional.
lonlatbox
Domain to select : c(lonmin, lonmax, latmin, latmax), optional.
conf
TRUE/FALSE: confidence intervals or significance level provided or not.
conftype
"parametric" provides a confidence interval for the ACC computed by a Fisher transformation and a significance level for the ACC from a one-sided student-T distribution. "bootstrap" provides a confidence interval for the ACC and MACC computed from bootstrapping on the members with 100 drawings with replacement. To guarantee the statistical robustness of the result, make sure that your experiments/oservations/startdates/leadtimes always have the same number of members.

Value

ACC
If conf set as TRUE, Matrix with dimensions: c(nexp, nobs, nsdates, nleadtimes, 4) The fifth dimension of length 4 corresponds to the lower limit of the 95% confidence interval, the ACC, the upper limit of the 95% confidence interval and the 95% significance level. If conf set as FALSE, Anomaly Correlation Coefficient with dimensions: c(nexp, nobs, nsdates, nleadtimes).
MACC
Mean Anomaly Correlation Coefficient with dimensions: c(nexp, nobs, nleadtimes)

Examples

Run this code
# See examples on Load() to understand the first lines in this example
  ## Not run: 
# configfile <- paste0(tempdir(), '/sample.conf')
# ConfigFileCreate(configfile, confirm = FALSE)
# c <- ConfigFileOpen(configfile)
# c <- ConfigEditDefinition(c, 'DEFAULT_VAR_MIN', '-1e19', confirm = FALSE)
# c <- ConfigEditDefinition(c, 'DEFAULT_VAR_MAX', '1e19', confirm = FALSE)
# data_path <- system.file('sample_data', package = 's2dverification')
# exp_data_path <- paste0(data_path, '/model/$EXP_NAME$/')
# obs_data_path <- paste0(data_path, '/$OBS_NAME$/')
# c <- ConfigAddEntry(c, 'experiments', dataset_name = 'experiment', 
#      var_name = 'tos', main_path = exp_data_path,
#      file_path = '$STORE_FREQ$_mean/$VAR_NAME$_3hourly/$VAR_NAME$_$START_DATE$.nc')
# c <- ConfigAddEntry(c, 'observations', dataset_name = 'observation', 
#      var_name = 'tos', main_path = obs_data_path,
#      file_path = '$STORE_FREQ$_mean/$VAR_NAME$/$VAR_NAME$_$YEAR$$MONTH$.nc')
# ConfigFileSave(c, configfile, confirm = FALSE)
# 
# # Now we are ready to use Load().
# startDates <- c('19851101', '19901101', '19951101', '20001101', '20051101')
# sampleData <- Load('tos', c('experiment'), c('observation'), startDates, 
#                    leadtimemin = 1, leadtimemax = 4, output = 'lonlat', 
#                    latmin = 27, latmax = 48, lonmin = -12, lonmax = 40, 
#                    configfile = configfile)
#   ## End(Not run)
  
sampleData$mod <- Season(sampleData$mod, 4, 11, 12, 2)
sampleData$obs <- Season(sampleData$obs, 4, 11, 12, 2)
clim <- Clim(sampleData$mod, sampleData$obs)
ano_exp <- Ano(sampleData$mod, clim$clim_exp)
ano_obs <- Ano(sampleData$obs, clim$clim_obs)
acc <- ACC(Mean1Dim(ano_exp, 2), Mean1Dim(ano_obs, 2))
PlotACC(acc$ACC, startDates)

Run the code above in your browser using DataLab