Freedom251 › Statistical Analysis Software
eofs

What eofs is
eofs is a free Python package for empirical orthogonal function analysis of spatial-temporal data. It reduces dimensionality by expressing data through a variance-based basis and is designed for large outputs from modern climate models. A solver computes the solution when created, then methods return EOFs, principal-component time series, eigenvalues, variance fractions, reconstructed fields, and other quantities. The standard interface accepts NumPy or Dask arrays; metadata-aware interfaces support Iris and xarray objects and use input metadata when constructing outputs. Missing values are removed during calculations and restored in resulting fields. The implementation is pure Python with NumPy and has no Fortran or C dependencies. NumPy is required, while Dask is optional; Iris or xarray is needed only for its corresponding interface. Installation is documented through conda-forge, pip, or a source archive. Examples cover North Atlantic Oscillation and El Niño analyses. eofs runs on Linux, macOS, and Windows, is licensed under GNU GPLv3, and directs issues to GitHub.
Who it suits
eofs suits Python users analyzing spatial-temporal datasets, including climate-model outputs. It is aimed at workflows using NumPy, Dask, Iris, or xarray interfaces.
What it does well
- Free package for Linux, macOS, and Windows
- Handles large climate-model output datasets
- NumPy and Dask array interfaces
- Iris and xarray metadata interfaces
- No Fortran or C dependencies
What to know first
- NumPy is required
- Dask is optional, not included by requirement
- No statistical tests
- No regression or Bayesian models
Verdict
eofs offers focused EOF analysis with several array and metadata interfaces and outputs useful for dimensionality reduction. It is a specialized package rather than a general statistical modeling toolkit.
Facts from eofs's own pages
- Analysis outputs
- Solver methods return EOFs, principal component time series, eigenvalues, variance fractions, and reconstructed fields, among other quantities. · ajdawson.github.io, 8 Oct 2026
- Bayesian analysis
- No · ajdawson.github.io, 24 Sept 2026
- Citation
- The project asks users of eofs in published research to cite its peer-reviewed paper and optionally a version-specific Zenodo DOI. · ajdawson.github.io, 8 Oct 2026
- Data import formats
- NetCDF via Iris example; NumPy arrays; xarray objects · ajdawson.github.io, 24 Sept 2026
- Data interfaces
- The package provides interfaces for NumPy and Dask arrays, plus metadata-enabled interfaces for Iris and xarray. · ajdawson.github.io, 8 Oct 2026
- Dependencies
- NumPy is required; dask is optional, while Iris and xarray are needed only for their respective metadata interfaces. · ajdawson.github.io, 8 Oct 2026
- Deployment
- desktop · ajdawson.github.io, 24 Sept 2026
- Examples
- The documentation includes standard, Iris, and xarray examples for North Atlantic Oscillation and El Niño analyses. · ajdawson.github.io, 8 Oct 2026
- Free plan
- Yes · ajdawson.github.io, 24 Sept 2026
- Implementation
- The implementation is pure Python using NumPy and has no Fortran or C dependencies. · ajdawson.github.io, 8 Oct 2026
- Installation
- The project documents installation through conda-forge, pip, or a source archive. · ajdawson.github.io, 8 Oct 2026
- Intended use
- The package is presented for analyzing spatial-temporal data, with examples including climate patterns. · ajdawson.github.io, 8 Oct 2026
- Interfaces
- The standard interface accepts NumPy or dask arrays, and metadata interfaces support Iris or xarray data. · ajdawson.github.io, 8 Oct 2026
- Large datasets
- The package is designed to compute efficiently on large output datasets from modern climate models. · ajdawson.github.io, 8 Oct 2026
- License
- The repository describes eofs as licensed under GNU GPLv3. · github.com, 8 Oct 2026
- Metadata
- Metadata from input fields is used to construct metadata for output fields. · ajdawson.github.io, 8 Oct 2026
- Missing values
- Missing values are removed during computations and placed back into output fields. · ajdawson.github.io, 8 Oct 2026
- Platforms
- The package runs on Linux, Windows, and MacOS where Python and NumPy are available. · github.com, 8 Oct 2026
- Purpose
- eofs is a Python package for empirical orthogonal function analysis of spatial-temporal data. · ajdawson.github.io, 8 Oct 2026
- Regression models
- No · ajdawson.github.io, 24 Sept 2026
- Requirements
- NumPy is required; Dask is optional, while the Iris interface requires Iris 1.2 or higher and the xarray interface requires xarray. · ajdawson.github.io, 8 Oct 2026
- Research citation
- The documentation asks users of eofs in published research to cite its peer-reviewed paper. · ajdawson.github.io, 8 Oct 2026
- Scripting support
- Yes · ajdawson.github.io, 24 Sept 2026
- Statistical tests
- No · ajdawson.github.io, 24 Sept 2026
Where eofs stands on Freedom251
- Statistical Analysis Software#54 of 106