Skip to content

v1.0.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 14 Apr 18:57
· 1 commit to main since this release

v1.0.0 (2024-04-14)

Breaking

BREAKING CHANGE: drop pandas support; add support for dask, complex EOF and flexible inputs (ec70e8a)

  • fix!: rename n_rot to n_modes (5b39cd4)

  • fix!: n_components instead of n_modes (5d282b1)

  • fix!: change parameter dims to dim (70fe651)

  • refactor(pandas)!: drop support for pandas (96196e5)

Build

Include ipykernel in the doc environment which is required
to build documentation on readthedocs (066dc2a)

  • build: add typing-extensions

Adds Self in python3.10 (fb85abe)

  • build: add cca-zoo as dev dependency (47e6909)

  • build: py3.10 requires typing_extension for Self (10faa03)

  • build: Merge branch 'main' into cca (a7df1b8)

  • build: add black as dev dependency

needed for the Github Action to run black successfully (81ccaa8)

  • build: remove cartopy from dev dependencies

cartopy crashes during build with poetry.
Don't know how to force conda for installation so I'll
go without cartopy for now. (c95f658)

  • build: specify cartopy version (ec15384)

  • build: update poetry lock (7edfdc9)

  • build: add cartopy and ipywidgets as dev depends

Additional examples in online documentation require
advanced plotting and interactivity (4d4dcd4)

  • build: revert errorenous upgrade to v2 (ca22aa4)

  • build: drop 3.9 support (4552fa9)

  • build: remove python 3.8 support (2b408e7)

  • build: add dask (fef6509)

  • build: adapt dev versions (9dba9c4)

  • build: add sphinx theme (5b61bcd)

  • build: update to most recent versions (3a06022)

  • build: update environment to Python 3.11 (5947194)

  • build: update poetry.lock to newer versions (1215e57)

  • build: remove numba dependency (0979fcf)

  • build: add numba as dependency (f627d92)

  • build: change conf (a73ef85)

  • build: docs do not compile properly, try changing version in conf.py (0a73edb)

  • build: remove defaults from anaconda channels when building readthedocs (0dbcf81)

  • build: repair missing tqdm dependency (46fd5f2)

  • build: add tqdm as dependency (0de85e5)

  • build: loose numpy version constrain (375d675)

  • build: migrate to poetry (f7def8a)

Chore

  • chore(release): v2.3.2 (5c554a6)

  • chore(release): v2.3.1 (a3cb204)

  • chore(release): v2.3.0 (1f54401)

  • chore(release): v2.2.6 (66b31fb)

  • chore(release): v2.2.5 (b5d04cc)

  • chore(release): v2.2.4 (bde4456)

  • chore(release): v2.2.3 (b149477)

  • chore(release): v2.2.2 (a58d0ad)

  • chore(release): update PSR version (0f5524f)

  • chore(release): Updated semantic-release
    configuration (320dbcb)

  • chore: release v2.2.0 (xarray-contrib#128) (ef40a8a)

  • chore: Merge branch 'main' into develop (607d25b)

  • chore: merge branch 'main' into develop (f9ef729)

  • chore: fix config of all-contributor bot (1eedf4f)

  • chore: bring all-contributors bot back to life

Implement solution suggested in all-contributors/app#485 (8929ed5)

last release did not trigger PSR action to publish to PyPI.
Therefore version number lags behid the release number.
To resolve PSR error bump version by hand. (8ba42d3)

  • chore(release): 1.0.5 (xarray-contrib#70) (1dc9ce6)

  • chore: internal design (xarray-contrib#69) (b39bdaf)

  • chore: Merge branch 'hotfix-mca-scores' into develop (f380aed)

  • chore: correct package version (9070851)

  • chore: merge branch 'main' into develop (e0e8d93)

  • chore: merge main into develop (9f50392)

  • chore: merge branch 'main' of nicrie/xeofs (efb5ab9)

  • chore: Merge branch 'main' into develop (bc4e87d)

  • chore: Merge develop of nicrie/xeofs into develop (f31e56e)

  • chore: Merge branch 'main' into develop (d1896d6)

  • chore: merge 'main' of github.com:nicrie/xeofs (cfc164b)

  • chore: Merge branch 'main' into develop (14839d4)

  • chore: Merge branch 'main' of github.com:nicrie/xeofs into main (00eb862)

  • chore: Merge branch 'main' into develop (e1c3534)

  • chore: add netcdf4 as dev-dependency (4c4897c)

  • chore: Merge branch 'main' into develop (f51e4d2)

  • chore: upload package to pypi (989a278)

  • chore: Merge branch 'main' into develop (9cdef9b)

Ci

  • ci: add password input for PyPI token (600b43e)

  • ci: specify Python Semantic Release version v8.0.0 (c7c79e4)

  • ci: add workflow dispatch to Github Action (26f8345)

  • ci: install dev dependencies (be8bffd)

  • ci(black): specify version and target directory

Black linted all files in repo including examples. Main folder xeofs
is sufficient though. (7919090)

  • ci: update Github Action workflows

New structure separates workflows into
separate workflows: ci, PR linting, black formatting and creating
release. The latter is only triggered
after a PR has been merged. All others are triggered when
a PR on main/develop is opened, edited or synchronized. (25211eb)

  • ci: lock PSR to 7.x (b5b94e3)

  • ci: update python-semantic-release to v8 (0887579)

  • ci: remove redundant file (4699a56)

  • ci: do not run on PR (9829517)

  • ci: Update semantic_release.yml (7f1b2b4)

  • ci: python 3.10 bug (0dd2a18)

  • ci: test also against python 3.9, 3.10 and 3.11 (29d0ae0)

  • ci: add action for semantic pull request (2af2456)

  • ci: update to Node 16 (7373b8a)

  • ci: migrate python-semantic-release to github workflows (c27de9a)

  • ci: semantic-release is triggered for PR on main (e9077a2)

  • ci: fix incorrect call of coverage (d9ee80e)

  • ci: use pre-commit hooks to ensure conventional commits (1c04785)

  • ci: migrate to poetry (a5db259)

Documentation

Co-authored-by: Niclas Rieger <[email protected]> (35b9ef7)

EOF class now computes 2 modes by default,
not 10 as before. Specify the number of modes to be
computed in the example to avoid issues (b58d985)

  • docs: provide top-level type hints (6be8923)

  • docs: more instructive quickstart (xarray-contrib#75) (58c2f09)

  • docs: correct typo in README (3b88d5e)

  • docs: add quickstart example and point to methods (f741199)

  • docs: update location of Action workflow for badge (650a8c8)

  • docs: update location of Action workflow for badge (878c5f5)

  • docs: update badges (51113e4)

  • docs: add Black badge to README (759b011)

  • docs: remove interactivity

In html, interactivity is not straightforward.
For simplicity remove all interactive features in the documentation. (6e99b8e)

  • docs: add mamba to RTD config (33d040b)

  • docs: use mamba to create doc env

Documentation build fails due to excessive memory usage.
Potential solution could be using mamba
instead of conda, the former is less memory intensive. (610facf)

  • docs: add a Project description to conf.py (0a5cfe3)

  • docs: improve documentation

Restructure documentation, add model section and some more background (ea32e7e)

  • docs: extend and streamline doc strings of methods

More information added to classes and methods,
including references, notes and examples. (a70b9d0)

  • docs(bootstrapper): update to new design pattern (d61525b)

  • docs: update changelog (ace7ac9)

  • docs: add ipython to env to use syntax highlight (6b2d16b)

  • docs: minor improvements (xarray-contrib#50) (00ac5b3)

  • docs: citation in bibtex format (f33f2d5)

  • docs: updates examples (f31024b)

  • docs: citation (4054e15)

  • docs: set color styling (59213dc)

  • docs: add pydata-sphinx-theme as doc dependency (xarray-contrib#49) (976d390)

  • docs: add pydata-sphinx-theme as doc dependency (15c5a3e)

  • docs: improve documentation (xarray-contrib#48) (378aae8)

  • docs: move to pydata sphinx theme (9e92920)

  • docs: add comparison to other packages (7985585)

  • docs: fix broken badge (9d9b5d8)

  • docs: add dev-dependeny for readthedocs (xarray-contrib#46) (e1e6379)

  • docs: add sphinx related packages to env (6e07d3b)

  • docs: improve documentation (b7c6680)

  • docs: add more docstrings (84ebb5a)

  • docs: add docstrings (0fe6e24)

  • docs: bibtex not showing up on Github ;) (0c2a663)

  • docs: add bibtex (1428ebf)

  • docs: fix some minor errors (d5d3f73)

  • docs: update README (2d28995)

  • docs: change examples (1c69645)

  • docs: adding example for ROCK PCA (8c6da93)

  • docs: update ROCK PCA to documentation (3a7394d)

  • docs: update README (9e3210d)

  • docs: add example and update docs (8bed38a)

  • docs: some minor corrections in docstrings (75eed31)

  • docs: more text (0f9c32e)

  • docs: fix docs (19bb84e)

  • docs: minor restructuring (dbdc885)

  • docs: remove some old examples (625dd08)

  • docs: minor changes in text and example arrangements (b7f1628)

  • docs: update documentation and docstrings (b8fffdc)

  • docs: add MCA example (4fb881e)

  • docs: reorganize examples (68d9db0)

  • docs: add figure to bootstrapping example (69894a0)

  • docs: add docstrings to bootstrapping methods (9c8145c)

  • docs: add simple example for bootstrapping (ba62057)

  • docs: add install instructions for conda (ef293e5)

  • docs: add zenodo badge (4f338ef)

  • docs: update README (fdc76ee)

  • docs: add example for multivariate EOF analysis (59a1f1b)

  • docs: add example (07b3bb8)

  • docs: add example for multivariate EOF analysis (7ae2ae8)

  • docs: add zenodo badge (7792953)

  • docs: update README (5693fe9)

  • docs: fix typo (d5505c6)

  • docs: update README (982d7e3)

  • docs: update README (c52763b)

  • docs: update README (2d00a71)

  • docs: update README (8c8cb29)

  • docs: update README (58f539b)

  • docs: add project_onto_eofs to autosummary (af7d1f2)

  • docs: update docs (28e248b)

  • docs: add eofs as correlations (64c60c1)

  • docs: update README (29f1b4d)

  • docs: remove older version of sphinx-gallery (938f294)

  • docs: too many "install" ;) (ea66ba6)

  • docs: forgot to specifiy master branch (2c827ba)

  • docs: install current master branch of sphinx-gallery (8426033)

  • docs: update links to examples (44a4353)

  • docs: add matplotlib to environment to generate example (2346fcb)

  • docs: update examples (5795ffa)

  • docs: add example for rotated EOF analysis (efc364a)

  • docs: add example for weigted EOF analysis (9dedab2)

  • docs: some minor changes in examples (9611eea)

  • docs: add EOF s-mode and t-mode gallery example (5f371b7)

  • docs: add download badge (9a96fd1)

  • docs: solve readthedoc version issue by installing xeofs first (7afdd78)

  • docs: try to solve the readthedocs issue with importlib (b4cdd9e)

  • docs: try to solve readthedoc version number (981bcdd)

  • docs: update docstrings (e02b6ec)

  • docs: update docs (7b19b5b)

  • docs: add installation instructions (43e2563)

  • docs: remove conflicting package versions (49636ae)

  • docs: repair docs due to importlib being installed twice (0e21ebd)

  • docs: place badges on same line (e2d4dc3)

  • docs: add installation instruction (9512d34)

  • docs: add batches and link to documentation (a7dd2d0)

  • docs: update dependencies (05ceb68)

Feature

Co-authored-by: Niclas Rieger <[email protected]> (69df4d9)

  • feat: provide standard kwarg for random_state

resolves xarray-contrib#90 (cf8b641)

  • feat: add Extended EOF Analysis (2db736c)

  • feat: parameter normalized scores

Returned scores were always (L2) normalized which can lead to confusion
when compared to the scores of other packages
like sklearn or eofs.
Now users can decide whether to return normalized or "raw" scores. (f0dcb34)

  • feat: add GWPCA support (58c2dbe)

  • feat: add CCA support (79e82cc)

  • feat: choose name of sample and feature dim (4d521f8)

  • feat: add Optimal Persistence Analysis (OPA) (2482110)

  • feat: add Canonical Correlation Analysis (782e624)

  • feat(MCA): provide optional PCA preprocessing

This can greatly increase computation speed (100f40d)

  • feat: choose the SVD solver

Following the PCA implementation of scikit-learn,
the use can now choose whether full SVD decomposition or randomzied SVD
is to be used. Defaults to 'auto' which uses full SVD for small datasets
and randomized SVD for large datasets. (50c2386)

  • feat: complex MCA amplitude and phase (55ce3b1)

  • feat: add meta data to model output (083a8e0)

  • feat: skeleton of Bootstrapper class (4934b31)

  • feat: Rotation supports dask input (78360cf)

  • feat: add complex MCA (13f8bbc)

  • feat: RotatorFactory to access rotator classes (90b2db6)

  • feat: EOF class transform, inverse_trans and corr (fb71ffe)

  • feat: add support for complex EOF (6bff6af)

  • feat: add support for ROCK-PCA (202844d)

  • feat: Merge branch 'develop' into rock-pca (6a5bda8)

  • feat: add ROCK PCA (0ba0660)

  • feat: Add Rotator class for MCA (0e9e8f9)

  • feat: add Rotator class for MCA (6adf45f)

  • feat: add MCA (34a82d1)

  • feat: add MCA support for xarray (e816e36)

  • feat: add MCA support for pandas (834d7dd)

  • feat: add MCA support for numpy (8ded4df)

  • feat: add MCA base class (58612e4)

  • feat: add bootstrap methods (d5f6797)

  • feat: bootstrapper for xarray (f807ea6)

  • feat: bootstrapper for pandas (a32b1d3)

  • feat: bootstrapper for numpy class (c5923b3)

  • feat: bootstrapper base class (f4ee31a)

  • feat: add support for multivariate EOF analysis (53961d9)

  • feat: Merge branch 'main' into develop (6d2d646)

  • feat: add support for multivariate EOF analysis (fa9503a)

  • feat: add base and xarray class for multivariate EOF analysis (5ba07f0)

  • feat: project new data onto EOFs and rotated EOFs (d8b0e57)

  • feat: project unseen data onto rotated EOFs (63b2d3a)

  • feat: project unseen data onto EOFs (341546b)

  • feat: project unseen data onto EOFs (64e38b1)

  • feat: allow to reconstruct original data with arbitrary mode combination (be095d7)

  • feat: reconstruct input data after rotation (0c9479e)

  • feat: reconstruct input data for EOF analysis (7ed306a)

  • feat: allow different scalings of EOFs an PCs (ea39f02)

  • feat: add scaling for PCs and EOFs (c2c6fe1)

  • feat: add eofs as correlation (85960ab)

  • feat: eofs as correlation for rotated EOF analysis (cb8c472)

  • feat: eofs as correlation for EOF analysis (e53d449)

  • feat: add Varimax and Promax rotation (b42ba16)

  • feat: add Rotator interface for numpy, pandas, xarray (050b883)

  • feat: add varimax and promax algorithms (f1e928f)

  • feat: add Rotator base class (d024d81)

  • feat: Add support for weighted EOF analysis including coslat weighting (654b437)

  • feat: add weight support to EOF classes (8821108)

  • feat: add weight transformer (52b98e6)

  • feat: add support for multidimensional axes

EOF analysis can now be performed along more than one axis/dimension (S-mode, T-mode EOF analysis) (7c31c58)

Fix

Co-authored-by: Sam Levang <[email protected]> (c3e4780)

Previously, an accidental release marked v2.0.0 was published to pypi.
Though it was stashed, the tag persisted, obstructing our official
v2.0.0.
We're addressing this by incrementing to v2.0.1, enabling the correct
release to be published on both pypi and conda without conflict. (d014c87)

  • fix: reindexing transformed scores

Resolved an issue where the coordinates of transformed scores were
incorrectly reindexed using the fitted data's reference frame. The indexing now correctly
utilizes the coordinates from the
tansformed data itself, ensuring accurate
alignment with the original dataset (closes xarray-contrib#98). (a8e458e)

  • fix: parameter to show dask progress bar

By default, dask progress bar is turned of but can be activated by setting verbose=True
in EOF and Complex EOF models (3482fa4)

  • fix(Bootstrapper): correct scaling of PCs (ed59dd9)

  • fix(CCA): add checks for edge cases (76c0b1b)

  • fix: streamline model attribute types

Boolean or None values cannot be serialized by xarray which required
manual conversion of attributes before to_netcdf can be used. Now model
attributes are streamlined internally by converting any boolean or None
values to strings (resolves xarray-contrib#89 ) (98c5cef)

  • fix(GWPCA): raise error in scores

scores aren't (yet) supported by GWPCA (43e9274)

  • fix(Bootstrapper): avoid pertubating sample coords (ffd11fc)

  • fix: score coordinates in T-mode EOF analysis (731eec2)

  • fix: PCA preprocessing before Hilbert transform

In Complex MCA, PCA preprocessing must happen before Hilbert transform
(fix xarray-contrib#85) (2bbcb69)

  • fix(ListStacker): use DA Stacker to unstack scores

Use the inverse_transform_scores
of the individual DataArrayStacker
to unstack the scores within the
ListDataArrayStacker. This will help catching special cases where the
sample dimension is of length one. (c6479cf)

  • fix: MCA covariance (fraction) (3e4558d)

  • fix: remove **kwargs from BaseModel classes (555d0db)

  • fix: inverse_transform enforces real output (5e97160)

  • fix: add missing conj for PCA inverse transform (e9d6fe1)

  • fix: transform of rotator classes (3368ed0)

  • fix: weigh modes with norm before reconstructing (13f42e0)

  • fix: correct MCA scores and SCF (xarray-contrib#66) (f6ecc49)

  • fix: consistent (squared) covariance for MCA (8e43d15)

  • fix: use conjugate for squared total variance (597ba77)

  • fix: issue with dot product in rotation (ab28cca)

  • fix: dummy patch to fix package versioning (xarray-contrib#53) (89d128d)

  • fix(method): remove bias in Hilbert transform after padding (xarray-contrib#52) (f65f54b)

  • fix(method): remove bias in Hilbert transform after padding (8e199ef)

  • fix: correct bias in Hilbert trans when padding (xarray-contrib#51) (ef37dd3)

  • fix: correct bias in Hilbert trans when padding (c0183df)

  • fix: build and ci (xarray-contrib#45) (7d1a88b)

  • fix: add dependency statsmodels (87e7e1d)

  • fix: add dask as dependency (xarray-contrib#42) (2bb2b6b)

  • fix: add components and pattern method to MCA (849059b)

  • fix: Merge 'release-v1.0.0' into bootstrapper (e6ea275)

  • fix: stacker in T-mode (2f9be99)

  • fix: supress warning when unstacking coords (2f01695)

  • fix: number of modes to be rotated defaults 10 (b13c833)

  • fix: phase of complex methods returns np.ndarray (dfb050d)

  • fix: complex decomposition not used (2086546)

  • fix: added missing import (207af0a)

  • fix: remove unecessary dimensions in scores (63e2204)

  • fix: reindex data to ensure deterministic output (60c382b)

  • fix: ListStacker correctly unstacks (e363357)

  • fix: define names of output arrays (c826aa8)

  • fix: FutureWarning in coslat check (xarray-contrib#37) (285fe0f)

  • fix: allow newer xarray version (49723c0)

  • fix: add stabilizer for communalities during rotation (462f2fe)

  • fix: numpy and pandas classes did not consider axis parameter (8b75271)

  • fix: set informative names of Dataframes and DataArrays (b5b5286)

  • fix: fix incorrect dof for rotated PC scaling (addeb82)

  • fix: PC projections was missing -1 correction for degrees of freedom (a243a26)

  • fix: back_transform automatically add feature coords (0fef30d)

  • fix: incorrect number of mode index for DataArray caller (4e610ac)

  • fix: always center data X (4a58dfc)

  • fix: coslat error was too restrictive (faece55)

  • fix: add error messages when calling invalid coslat weighting (6104e69)

  • fix: allow multidimensional axis for decomposition (e09a420)

  • fix: pandas and xarray eofs back_transform was called twice (4fa2bfb)

  • fix: typo in CI (b34ccc5)

  • fix: allow standardized EOF analysis (6e80f78)

  • fix: wrong pytest version (774b2d6)

  • fix: add development dependencies (e1cc1f6)

  • fix: add flake8 dependency (483cf42)

  • fix: add version (739ae74)

Performance

  • perf(Decomposer): compute by default

For Dask setting compute=True in svd_compressed avoids that we run out of
memory + increases speed. (1f3b214)

  • perf(Dask): avoid double computation (f24cb09)

  • perf(dask): compute SVD result immediately

New parameter allows to choose whether dask models
will be computed immediately after decomposition or not.
Before, all dask objects were delayed until the end
resulting in redundant dask computations. (807b7e8)

  • perf: use xarray built-in method for variance (23af4d8)

  • perf: always compute scaling arrays prior to analy (5b810ce)

Refactor

  • refactor: set computed attrs via deserialize (xarray-contrib#117) (1878406)

  • refactor(GenericListTransformer): remove inherit (2307169)

  • refactor(BaseModel): move input check to utils (183779a)

  • refactor(Preprocessor): enforce input as list (ebadaa2)

  • refactor: simplify model data structure

Instead of individual classes that store different model results
use a single DataContainer class that structures results
in a dictionary (resolve xarray-contrib#88). (09415a3)

  • refactor: create hilbert_transform.py

Move Hilbert transform related methods into own file
(resolve refactor: complex utilties xarray-contrib#54) (166e957)

  • refactor(BaseModel): create algorithm methods

Move actual implementation of method into algorithm methods,
while fit, transform, inverse_transform take care of
pre and post-processing (12cfc97)

  • refactor: generalize preprocessing in MCA (fe9bd46)

  • refactor: reflect refactoring in Factory (0ce02f0)

  • refactor: adapt Preprocessor to refactoring (4a43ce9)

  • refactor: streamline Scaler (a62fc5a)

  • refactor: Sanitizer removes NaNs (7b5068b)

  • refactor: Stacker focuses on stacking

Other actions like converting multiindices or removing NaNs
is present in separate classes (9f39f8f)

  • refactor: add Sanitizer & tests (508d742)

  • refactor: add MultiIndexConvert & tests (52935a0)

  • refactor: add MultIndexConverter to preprocessor (39ee3fb)

  • refactor: generalize hilbert transform over dims

Dimensions were hard coded but we want Hilbert transform to
be performed over any general 2D Arrays (983e0ad)

  • refactor: remove dim checks

Checks were hard coded to ensure dimensions of e.g. sample-feature.
However, we want to allow more general data, with sample and feature
names provided by the user. (79b43cf)

  • refactor: add class for MultiIndex convertion (0033359)

  • refactor(decomposer): coercing signs is optional (bb8a0da)

  • refactor: extra class for renaming (multi)indeces

Helper class to keep track of dimension names. When dimension names of
MultiIndex needs to be changes to avoid name conflicts,
the class provides easy forth-and-back transformations
between new and old dimension names. (80a4c95)

  • refactor(decomposer): remove CrossDecomposer

The core functionality is now provided by Decomposer.
Any further computations have to be done in the method class (52ac245)

  • refactor(decomposer): generalize SVD decomposer

Before, Decomposer either decomposed data arrays with dimensions of either
sample,feature or feature1,feature2, depending on the use case.
Now, decomposition of any 2D DataArray is possible if dimensions are
given. Decomposer also provides now an argument to specify the solver
following the PCA implementation of scikit-learn.
For small data sets, full SVD decomposition is performed
instead of randomized SVD. (8161e6f)

  • refactor(stacker): allow sample feature DataArray

Specifically, test cases for sample-feature DataArray, that test edge cases
when trying to stack/unstack a DataArray
consisting only of sample-feature dimensions (25c2bed)

  • refactor(decomposer): provide kwargs

before only specific parameter were allowed.
Now one can set any parameter available in the given solver. (a75c805)

  • refactor: init DataContainer in models (fdd0e78)

  • refactor: use values of modes sorting index (3925ed6)

  • refactor: align Bootstrapper with design pattern (f3e2a10)

  • refactor: add DataContainer to model structure (fc73ccf)

  • refactor: merge Stacker & Scaler into Preprocessor (8c27b84)

  • refactor: add Scaler and Stacker factories (5cf719f)

  • refactor: Merge 'main' of github.com:nicrie/xeofs (93fb010)

  • refactor: bootstrapper (5525ed1)

  • refactor: version into separate file (d51d167)

  • refactor: bootstrapper (7074942)

  • refactor: Merg 'release-v1.0.0' into bootstrapper (97f57ff)

  • refactor: Stacker.fit to fit_transform (e949c57)

  • refactor: move standard, complex model in one file (83f0aad)

  • refactor: reorganize repo (d109a2c)

  • refactor: clean up (0d868c6)

  • refactor: clean and move tests (68392e3)

  • refactor: add CrossDecomposer (43c9ca4)

  • refactor: add method in tools for computing corr (4866357)

  • refactor: components as correlations to testing (be1aed6)

  • refactor: add Rotator class (58e66d2)

  • refactor: Merge branch 'stacker' into release-v (aea74c7)

  • refactor: EOF model uses xarray only (369f40b)

  • refactor: add Decomposer class (cb76350)

  • refactor: add basic Stacker class (8d170be)

  • refactor: add Scaler class (8428471)

  • refactor: add Scaler class (a202fa5)

  • refactor: Merge branch 'main' of github.com:nicrie/xeofs into develop (73e2473)

  • refactor: tests for new transformer definition (cf330ff)

  • refactor: consistent transformer and multi_transformer definition (9445769)

  • refactor: remove class MultivariateEOF (4fa1ff8)

  • refactor: consistent class names in tests (40416fa)

  • refactor: consistent class names (5d59fad)

  • refactor: dataframe and dataarray transformer return index and coords (1c6252a)

  • refactor: helper fuction for mode selection (318e8ea)

Style

  • style(decomposer): use structural pattern matching (6f8a9cf)

  • style: update typings (324c06b)

  • style: add and streamline type hints (b51f36a)

  • style(tests): streamline test names (3a1fb91)

  • style(tests): apply Black coding format

use Black default settings (717f5fe)

  • style: integrate Black into repo

pre-hooks and GitHub Actions will use Black. (dd4cd7f)

  • style: apply Black formatting to repo (029f6e9)

  • style: apply rotation matrix in a consistent way (2f5286d)

  • style: remove unnecessary imports (29954c0)

  • style: streamline arguments (4af426c)

  • style: ignore some type hints (0e3cff2)

  • style: ignore some type hints (dfeb5a0)

  • style: ignore some type hints (d03553a)

  • style: ignore .vscode files (2877f1d)

  • style: correct an indent that prevented xeofs being published to pypi (1ee531c)

  • style: refer to issue why nodefaults is necessary (2aed6f3)

  • style: remove some comments (4eae075)

  • style: remove comments (835951b)

  • style: rename mode_idx to idx_mode (ac89e3b)

  • style: rename mode_idx to idx_mode (d0508b1)

  • style: change error message (ad13409)

  • style: correct invalid typing (3745308)

  • style: update typings of EOF techniques (668a375)

Test

  • test: set random_seed for deterministic output (9f0058a)

  • test: remove cca-zoo test

Conflict between poetry and torch version that cannot be resolved.
Therefore remove cca-zoo dependency and associated tests. (6ed06f0)

  • test: isolated NaNs are invalid test cases (d4b5a77)

  • test(EOF): fix random seed (4080143)

  • test: add more flexible data generation classes

Support generation of test cases (resolve xarray-contrib#55) (15f0194)

  • test: provide method to create synthetic data

Added three methods for creating synthetic DataArray,
Dataset and list of DataArrays. These methods will slowly replace
mock data currently used. (a737127)

  • test(DatasetStacker): remove failing tests

Unstacking Dataset inadvertently braodcasts dimensions.
Not sure why this happens but reported this unexpected
behaviour at xarray (https://github.com/pydata/xarray/discussions/8063).
No regression, since this issue already exists in current xeofs version,
but the additional test brought this behavour to light.
To be tackled in the future. (3a2411e)

  • test(MCA): check dimensions of components/scores (a214801)

  • test(EOF): check dimensions of components/scores (093cee8)

  • test: test cases for transform, inverse_transform (bee9b1f)

  • test: add basic test for preprocessor (aa840b0)

  • test: fix incorrect MCA output (9a22140)

  • test: add more test cases (5921eb4)

  • test: add tests for MCA and Rotator (bc6d1c6)

  • test: add test cases for ComplexEOF (7b6b29b)

  • test: add EOF test cases (ba95eb5)

  • test: add simple test cases for MCA Rotator (900d76e)

  • test: add MCA test wrapper (eb2a280)

  • test: simple tests for Bootstrapper to compile without error (ca3141a)

  • test: multivariate EOF analysis (b0d0b33)

  • test: projection onto EOFs (49dc6d8)

  • test: add tests for reconstruct_X (1029f0c)

  • test: add scaling to wrapper tests (7cad9fe)

  • test: eof as correlation (d84454c)

  • test: add test for Rotator classes (bb783e7)

  • test: verify against normalized PCs (48f054f)

  • test: add simple test for coslat weighting (793148b)

  • test: add tests for weights (318b225)

  • test: add array fixtures with arbitrary shapes (7021ef6)

  • test: update tests for _array_transformer (47fe5d2)

  • test: add tests for xarray wrapper (d5f20cb)

  • test: add tests for pandas wrapper (7a8786d)

  • test: add more test cases for numpy wrapper (d9ca6ae)

  • test: add EOF numpy interface (b5ff975)

Unknown

  • Merge branch 'main' into contrib-rocks (e8ba057)

  • Fix link to perf scripts (38ba677)

  • Update link to contributing guide (11c1208)

  • 2.2.1

Automatically generated by python-semantic-release (aba57e0)

  • 2.2.0

Automatically generated by python-semantic-release (901982d)

  • Merge branch 'main' into develop (af25e8c)

  • 2.1.2

Automatically generated by python-semantic-release (d80a839)

  • 2.1.1

Automatically generated by python-semantic-release (65e9f79)

  • 2.1.0

Automatically generated by python-semantic-release (a3505c9)

  • 2.0.3

Automatically generated by python-semantic-release (e48b3fd)

  • 2.0.2

Automatically generated by python-semantic-release (1f38a5b)

  • 2.0.1

Automatically generated by python-semantic-release (8cf91ea)

  • 2.0.0

Automatically generated by python-semantic-release (ecb92b1)

  • 1.2.2

Automatically generated by python-semantic-release (5aaf7be)

  • 1.2.1

Automatically generated by python-semantic-release (893f2ea)

  • Update issue templates (0f46dd6)

  • Update issue templates (79b1629)

  • 1.2.0

Automatically generated by python-semantic-release (0f31950)

  • 1.1.0

Automatically generated by python-semantic-release (7a09efe)

ci: update Github Action workflows (7e679bc)

  • 1.0.5

Automatically generated by python-semantic-release (6d26bb3)

  • 1.0.4

Automatically generated by python-semantic-release (118ad68)

  • 1.0.3

Automatically generated by python-semantic-release (75158c6)

  • 1.0.2 | dummy commit to correct package version (e3457c0)

  • 2.0.0

Automatically generated by python-semantic-release (e33f1c9)

  • 1.0.1 | dummy commit to force semantic release (08133ef)

  • 2.0.0

Automatically generated by python-semantic-release (464d71e)

  • 1.0.1

Automatically generated by python-semantic-release (99f2d28)

  • Merge branch 'main' into develop (4e33e86)

  • 1.0.0

Automatically generated by python-semantic-release (0533a8e)

  • Create semantic_release.yml (0fbfde6)

  • Revert "fix!: n_components instead of n_modes"

This reverts commit 5d282b1. (430a022)

  • 0.7.2

Automatically generated by python-semantic-release (d7c67a5)

  • 0.7.1

Automatically generated by python-semantic-release (c85f116)

fix: allow newer xarray version (1e1694f)

Revert "allow newer xarray versions" (4d7a230)

allow newer xarray versions (56a6700)

eofs has xarray interface (3d689e8)

  • eofs.xarray

https://ajdawson.github.io/eofs/latest/api/eofs.xarray.html (116de61)

  • 0.7.0

Automatically generated by python-semantic-release (924a97b)

Develop (4ddb5db)

Develop (b79b1cd)

  • 0.6.0

Automatically generated by python-semantic-release (b03704c)

Develop (e9d02a1)

Add conda install instructions (4c0ed49)

  • 0.5.0

Automatically generated by python-semantic-release (501b330)

Release 0.5.0 (a830a54)

  • 0.4.0

Automatically generated by python-semantic-release (934677b)

Develop (6a645c9)

docs: update README (d3bcac2)

  • 0.3.0

Automatically generated by python-semantic-release (fa9c69d)

Develop (0128e40)

docs: add EOF s-mode and t-mode gallery example (a446135)

  • Merge branch 'main' into develop (7049abd)

  • 0.2.0

Automatically generated by python-semantic-release (0c7fc62)

Develop (c742987)

Develop (c910109)

  • 0.1.2

Automatically generated by python-semantic-release (2e40714)

Develop (6e61f1b)

  • 0.1.1

Automatically generated by python-semantic-release (87931f5)

  • Merge branch 'main' into develop
    chore: merge main into develop (1c79ce1)

  • Merge pull request xarray-contrib#2 from nicrie/develop

Develop (fa79596)

  • add tests for _Array_Transformer and pandas xarray wrapper (8d97acf)

  • add pandas and xarray support for standard EOF (290b87a)

  • update README and docs (160bd46)

  • add dependencies for readthedocs (fe96401)

  • add readthedocs (cc2209d)

  • try again and again (36870ea)

  • try again (a775cbd)

  • fix bug in codecov (6d3548b)

  • update codecov v2 (50c10eb)

  • structure for test, docs, coverage (d30ee79)

  • add MIT license (5d960ae)

  • change output dimensions of EOFs (0aca5e4)

  • add standard EOF for numpy (41348d2)

  • first commit (bc79e3b)