REOF {s2dv}R Documentation

Area-weighted empirical orthogonal function analysis with varimax rotation using SVD

Description

Perform an area-weighted EOF analysis with varimax rotation using single value decomposition (SVD) based on a covariance matrix or a correlation matrix if parameter 'corr' is set to TRUE. The internal s2dv function .EOF() is used internally.

Usage

REOF(
  ano,
  lat,
  lon,
  ntrunc = 15,
  time_dim = "sdate",
  space_dim = c("lat", "lon"),
  corr = FALSE,
  ncores = NULL
)

Arguments

ano

A numerical array of anomalies with named dimensions to calculate REOF. The dimensions must have at least 'time_dim' and 'space_dim'.

lat

A vector of the latitudes of 'ano'.

lon

A vector of the longitudes of 'ano'.

ntrunc

A positive integer of the number of eofs to be kept for varimax rotation. This function uses this value as 'neof' too, which is the number of eofs to return by .EOF(). The default value is 15. If time length or the product of latitude length and longitude length is less than 'ntrunc', 'ntrunc' is equal to the minimum of the three values.

time_dim

A character string indicating the name of the time dimension of 'ano'. The default value is 'sdate'.

space_dim

A vector of two character strings. The first is the dimension name of latitude of 'ano' and the second is the dimension name of longitude of 'ano'. The default value is c('lat', 'lon').

corr

A logical value indicating whether to base on a correlation (TRUE) or on a covariance matrix (FALSE). The default value is FALSE.

ncores

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

Value

A list containing:

REOFs

An array of REOF patterns normalized to 1 (unitless) with dimensions (number of modes, the rest of the dimensions of 'ano' except 'time_dim'). Multiplying 'REOFs' by 'RPCs' gives the original reconstructed field.

RPCs

An array of principal components with the units of the original field to the power of 2, with dimensions (time_dim, number of modes, the rest of the dimensions of 'ano' except 'space_dim').

var

An array of the percentage ( explained by each mode. The dimensions are (number of modes, the rest of the dimension except 'time_dim' and 'space_dim').

wght

An array of the area weighting with dimensions 'space_dim'. It is calculated by the square root of cosine of 'lat' and used to compute the fraction of variance explained by each REOFs.

See Also

EOF

Examples

# This example computes the REOFs along forecast horizons and plots the one 
# that explains the greatest amount of variability. The example data has low  
# resolution so the result may not be explanatory, but it displays how to 
# use this function.

ano <- Ano_CrossValid(sampleData$mod, sampleData$obs)
ano <- MeanDims(ano$exp, c('dataset', 'member'))
res <- REOF(ano, lat = sampleData$lat, lon = sampleData$lon, ntrunc = 5)
## Not run: 
PlotEquiMap(eof$EOFs[1, , , 1], sampleData$lat, sampleData$lon)

## End(Not run)


[Package s2dv version 2.0.0 Index]