Maximum Covariance Analysis in Python¶
The aim of this package is to provide a flexible tool for the climate
science community to perform Maximum Covariance Analysis (MCA) in a
simple and consistent way. Given the huge popularity of
xarray in the climate
science community, the xmca
package supports xarray.DataArray
as
well as numpy.ndarray
as input formats.

Mode 2 of complex rotated Maximum Covariance Analysis showing the shared dynamics of SST and continental precipitation associated to ENSO between 1980 and 2020.
What is MCA?¶
MCA maximises the temporal covariance between two different data fields and is closely related to Principal Component Analysis (PCA) / Empirical Orthogonal Function analysis (EOF analysis). While EOF analysis maximises the variance within a single data field, MCA allows to extract the dominant co-varying patterns between two different data fields. When the two input fields are the same, MCA reduces to standard EOF analysis.
For the mathematical understanding please have a look at e.g. the lecture material from C. Bretherton.