geocat.comp.eofunc.eofunc_eofs
geocat.comp.eofunc.eofunc_eofs#
- geocat.comp.eofunc.eofunc_eofs(data, neofs=1, time_dim=0, eofscaling=0, weights=None, center=True, ddof=1, vfscaled=False, meta=False)#
Deprecated since version 2022.10.0: The
eofuncmodule is deprecated.eofunc_eofshas been moved to thestatsmodule for future use. Usegeocat.comp.eofunc_eofsorgeocat.comp.stats.eofunc_eofsfor the same functionality.Computes empirical orthogonal functions (EOFs, aka: Principal Component Analysis).
This implementation uses eofs package, which is built upon the following study: Dawson, Andrew, “eofs: A library for EOF analysis of meteorological, oceanographic, and climate data,” Journal of Open Research Software, vol. 4, no. 1, 2016. Further information about this package can be found at: https://ajdawson.github.io/eofs/latest/index
This implementation provides a few conveniences to the user on top of
eofspackage that are described below in the Parameters section.Note
eofunc_eofsperforms the EOF analysis that was previously done via the NCL functioneofunc. However, there are a few changes to the NCL flow such as:Only
np.nanis supported as missing value,EOFs are computed only from covariance matrix and there is no support for computation from correlation matrix,
percentage of non-missing points that must exist at any single point is no longer an input.
- Parameters
data (
xarray.DataArrayornumpy.ndarrayorlist) – Should contain numbers or np.nan for missing value representation. It must be at least a 2-dimensional array. Function assumes the left-most dimension is thetimedimension. If input isxarray.DataArray, the time dimension must be named “time”. If input is anumpy.ndarrayor alist, this function still assumes the left-most dimension to be the number of observations ortimedimension: however the user is allowed to input otherwise using thetime_dimparameter.neofs (
int, optional) – A scalar integer that specifies the number of empirical orthogonal functions (i.e. eigenvalues and eigenvectors) to be returned. This is usually less than or equal to the minimum number of observations or number of variables. Defaults to 1.time_dim (
int, optional) – An integer defining the time dimension. When input data is of typexarray.DataArray, this is ignored It must be between0anddata.ndim - 1or it could be-1indicating the last dimension. Defaults to 0.Note: The
time_dimargument allows to perform the EOF analysis that was previously done via the NCL functioneofunc_n.eofscaling (
int, optional) – (Fromeofspackage): Sets the scaling of the EOFs. The following values are accepted:0 : Un-scaled EOFs (default). 1 : EOFs are divided by the square-root of their eigenvalues. 2 : EOFs are multiplied by the square-root of their eigenvalues.
weights (array_like, optional) – (From
eofspackage): An array of weights whose shape is compatible with those of the input array dataset. The weights can have the same shape as dataset or a shape compatible with an array broadcast (i.e., the shape of the weights can can match the rightmost parts of the shape of the input array dataset). If the input array dataset does not require weighting then the value None may be used. Defaults toNone(no weighting).center (
bool, optional) – (Fromeofspackage): If True, the mean along the first axis of dataset (the time-mean) will be removed prior to analysis. If False, the mean along the first axis will not be removed. Defaults to True (mean is removed).The covariance interpretation relies on the input data being anomaly data with a time-mean of 0. Therefore this option should usually be set to True. Setting this option to True has the useful side effect of propagating missing values along the time dimension, ensuring that a solution can be found even if missing values occur in different locations at different times.
ddof (
int, optional) – (Fromeofspackage): ‘Delta degrees of freedom’. The divisor used to normalize the covariance matrix is N - ddof where N is the number of samples. Defaults to 1.vfscaled (
bool, optional) – (Fromeofspackage): If True, scale the errors by the sum of the eigenvalues. This yields typical errors with the same scale as the values returned by Eof.varianceFraction. If False then no scaling is done. Defaults to False.meta (
bool, optional) – If set to True and the input array is an Xarray, the metadata from the input array will be copied to the output array. Defaults to False.
- Returns
A multi-dimensional array containing EOFs. The returned array will beofthe same size as data with theleftmost dimension removedandan additional dimensionofthe size ``neofs`added.`The return variable will have associated with it the following attributeseigenvalues– A one-dimensional array of sizeneofsthat contains the eigenvalues associated with each EOF.northTest– (Fromeofspackage): Typical errors for eigenvalues.The method of North et al. (1982) is used to compute the typical error for each eigenvalue. It is assumed that the number of times in the input data set is the same as the number of independent realizations. If this assumption is not valid then the result may be inappropriate.
Note: The
northTestattribute allows to perform the error analysis that was previously done via the NCL functioneofunc_north.totalAnomalyVariance– (Fromeofspackage): Total variance associated with the field of anomalies (the sum of the eigenvalues).varianceFraction– (Fromeofspackage): Fractional EOF mode variances.The fraction of the total variance explained by each EOF mode, values between 0 and 1 inclusive.
See also
Related NCL Functions: eofunc, eofunc_Wrap, eofunc_north, eofunc_n, eofunc_n_Wrap