- Lifted numpy<2.4 dependency constraint and bumped minimum to numpy>=1.25. (:pr:`444`) Aaron Spring
- Fixed a bug introduced in v0.0.27 where numpy v1.x support was broken for some algorithms. (:pr:`431`) Trevor James Smith.
- Removed all numpy.atleast_1d() calls that were causing numerical differences in p-value calculations with numpy v2.x and fixed several doctest expected outputs. (:pr:`440`) Aaron Spring.
- Pinned numpy below v2.4 due to breaking API changes. (:pr:`441`) Trevor James Smith
- Adjusted tests to adapt to new xarray attributes preservation behaviour. (:pr:`441`) Trevor James Smith
- Updated pre-commit configuration. (:pr:`434`)
- Updated and corrected the build configurations in the GitHub workflows so that the correct Python is used when running automated build tests. (:pr:`426`) Trevor James Smith
- Adapted code base for modern numpy and xarray. (:pr:`426`) Trevor James Smith
- Removed :py:func:`xskillscore.core.utils.suppress_warnings` in lieu of :py:func:`warnings.filterwarnings`. (:pr:`426`) Trevor James Smith
- The minimum supported versions for several dependencies have been updated. (:pr:`426`) Trevor James Smith
- xskillscore now uses setuptools-scm to automatically determine the version number. (:pr:`427`) Trevor James Smith
- Updated GitHub Actions and pre-commit hook versions to more modern versions. (:pr:`428`) Trevor James Smith
- Release documentation steps have been updated to to refer to the new setuptools-scm-based approach. (:pr:`428`) Trevor James Smith
- The test suite now refers to the xarray.testing submodule for basic testing helpers. (:pr:`422`) weipeng1999
- Fix build Ray Bell.
- :py:func:`~xskillscore.rank_histogram`
random_for_tied=Truehandles tied ranks correctly by default.random_for_tied=Falseignores this and retains previous behaviour. (:issue:`335`, :pr:`364`) Aaron Spring. - Allow singleton dimension in :py:func:`~xskillscore.resample_iterations_idx` as this is allowed in :py:func:`~xskillscore.resample_iterations` also. (:issue:`375`, :pr:`376`) Aaron Spring.
- Reduce dependencies (:issue:`359`, :pr:`363`) Aaron Spring.
- Implement
typingfor allxs.{calls}. (:issue:`317`, :pr:`366`) Aaron Spring. - Refactor masking
NaNin :py:func:`~xskillscore.rps`. (:pr:`397`) Aaron Spring. - Use to
pyproject.tomland userufffor linting Ray Bell.
- :py:func:`~xskillscore.multipletests` controlling the false discovery rate for multiple hypothesis tests. (:issue:`365`, :pr:`370`) Aaron Spring.
- :py:func:`~xskillscore.crps_ensemble` broadcasts (:issue:`345`, :pr:`346`) Aaron Spring.
- :py:func:`~xskillscore.resampling.resample_iterations_idx` do not break when
dimis not coordinate. (:issue:`303`, :pr:`339`) Aaron Spring. - Allow
floatorintegerforecasts in :py:func:`~xskillscore.brier_score` (:issue:`285`, :pr:`341`) Aaron Spring.
- Allow
floatorintegerforecasts in :py:func:`~xskillscore.brier_score` (:issue:`285`, :pr:`342`) Aaron Spring
- Added mypy to linting (:pr:`320`) Zachary Blackwood.
- Added more info in
quick-start.ipynb(:pr:`316`) Ray Bell. - Created
tabular-data.ipynb(:pr:`330`) Ray Bell.
- Renamed mae_test to halfwidth_ci_test to make this comparative metric generic. Now, it accepts any of the distance metrics functions except for mape. The new function has an additional argument called metric which is a string and name of the target distance metric. (:pr:`319`) Taher Chegini.
- Specify category distribution type with
input_distributionsin :py:func:`~xskillscore.rps` ifcategory_edges==Nonethat forecasts and observations are probability distributionspor cumulative distributionssc. See :py:func:`~xskillscore.rps` docstrings and doctests for examples. (:pr:`300`) Aaron Spring - Added slope of linear fit :py:func:`~xskillscore.linslope`. (:pr:`307`) Ray Bell
- Use
pytest-xdistandmatplotlib-basein environments to speed up CI. (:pr:`283`) Aaron Spring - :py:func:`~xskillscore.rps` does not break from masking NaNs anymore.
:py:func:`~xskillscore.rps` expilicty checks for
bin_dimifcategory_edges==None. (:pr:`287`) Aaron Spring - Add doctest on the docstring examples. (:pr:`302`) Ray Bell
- Removed a call to compute weights in testing. (:pr:`306`) Ray Bell
- Use built in
xarrayclip method. (:pr:`309`) Ray Bell
- Added mean error :py:func:`~xskillscore.me`. (:issue:`202`, :pr:`200`) Andrew Huang
- :py:func:`~xskillscore.brier_score` and :py:func:`~xskillscore.rps` now contain
keyword
fairto account for ensemble-size adjustments, but defaults toFalse. :py:func:`~xskillscore.brier_score` also accepts binary or boolean forecasts when amember_dimdimension is present. (:issue:`162`, :pr:`211`) Aaron Spring - Added MAE significance test :py:func:`~xskillscore.mae_test` from Jolliffe and Ebert https://www.cawcr.gov.au/projects/verification/CIdiff/FAQ-CIdiff.html (:issue:`192`, :pr:`209`) Aaron Spring
- :py:func:`~xskillscore.resampling.resample_iterations` and faster :py:func:`~xskillscore.resampling.resample_iterations_idx` for resampling with and without replacement. (:issue:`215`, :pr:`225`) Aaron Spring
- Added receiver operating characteristic (ROC) :py:func:`~xskillscore.roc`. (:issue:`114`, :issue:`256`, :pr:`236`, :pr:`259`) Aaron Spring
- Added many options for
category_edgesin :py:func:`~xskillscore.rps`, which allows multi-dimensional edges. :py:func:`~xskillscore.rps` now requires dimensionmember_dimin forecasts. (:issue:`275`, :pr:`277`) Aaron Spring
- Aligned output of :py:func:`~xskillscore.sign_test` with
:py:func:`~xskillscore.mae_test`. Now tests from comparative.py return more than
one object including a boolean indicating
signficancebased onalpha. (:pr:`209`) Aaron Spring - Drop support for python 3.6. (:issue:`237`, :pr:`276`) Ray Bell
- :py:func:`~xskillscore.sign_test` now works for
xr.Datasetinputs. (:issue:`198`, :pr:`199`) Aaron Spring - :py:func:`~xskillscore.threshold_brier_score` does not average over thresholds when
dim==None. Now also carriesthresholdas coordinate. (:issue:`255`, :pr:`211`) Aaron Spring - Passing weights no longer triggers eager computation. (:issue:`218`, :pr:`224`). Andrew Huang
- :py:func:`~xskillscore.rps` not restricted to
[0, 1]. (:issue:`266`, :pr:`277`) Aaron Spring
- Added Python 3.7 and Python 3.8 to the CI. Use the latest version of Python 3 for development. (:issue:`21`, :pr:`189`) Aaron Spring
- Lint with the latest black. (:issue:`179`, :pr:`191`) Ray Bell
- Update mape algorithm from scikit-learn v0.24.0 and test against it. (:issue:`160`, :pr:`230`) Ray Bell
- Pin
numbato>=0.52to fix CI (:issue:`233`, :pr:`234`) Ray Bell - Refactor
asvbenchmarks. (:pr:`231`) Aaron Spring - Added tests for nans in correlation metrics (:issue:`246`, :pr:`247`) Ray Bell
- Added tests for weighted metrics against scikit-learn (:pr:`257`) Ray Bell
- Pin
xhistogramto>=0.1.2and adjust code/documentation so that, as in np.histogram, right-most bin is right-edge inclusive where bins are specified (:pr:`269`) Dougie Squire - Reduce warnings. (:issue:`41`, :pr:`268`) Aaron Spring
- Use
raise_if_dask_computesfrom xarray. (:issue:`272`, :pr:`273`) Ray Bell - :py:func:`~xskillscore.threshold_brier_score` now carries threshold values as coordinates. (:pr:`279`) Aaron Spring
- Added the sign test described in DelSole and Tippett 2016: :py:func:`~xskillscore.sign_test`. (:issue:`133`, :pr:`176`) Aaron Spring and Dougie Squire
- Removed an unused variable in
_rmse, resulting in 2x speedup (:pr:`182`). Andrew Huang - Require
xarray=0.16.1(:issue:`183`, :pr:`184`) Aaron Spring
- Fix incompatibility with
xarray=0.16.1inapply_ufunc(:issue:`183`, :pr:`184`) Aaron Spring
- Added contingency table :py:func:`~xskillscore.Contingency` and associated metrics (:pr:`119`, :pr:`153`). Dougie Squire
- Added :py:func:`~xskillscore.rank_histogram` and :py:func:`~xskillscore.discrimination` to probabilistic metrics (:pr:`136`). Dougie Squire
- Added :py:func:`~xskillscore.reliability` to probabilistic metrics (:pr:`164`). Dougie Squire
- Added
dimandweightskwargs for probabilistic metrics. (:pr:`121`) Aaron Spring - Added
keep_attrskwarg for all metrics. (:pr:`122`) Andrew Huang - Added ranked probability score :py:func:`~xskillscore.rps`. (:pr:`163`) Aaron Spring
- Deterministic metrics now automatically broadcast any non-core dimensions. E.g., a single time series can be compared to a gridded product spanning that same time span. (:issue:`165`, :issue:`71`, :issue:`156`, :pr:`166`) Aaron Spring
- Renamed
dimtomember_dimin probabilistic metrics. (:pr:`121`) Aaron Spring - Argument
dimbecomes keyworddim=Nonein all metrics. (:issue:`137`, :pr:`143`) Aaron Spring dim=Nonereduces all dimensions as inxr.mean(dim=None). (:issue:`137`, :pr:`143`) Aaron Spring
- Fixes
weights=Nonetype issue with latest version ofdask. (:issue:`168`, :pr:`171`) Andrew Huang
- Added
sphinxdocumentation with full API and a quick start notebook. (:pr:`127`) Riley X. Brady and Ray Bell.
- Added
utilsmodule to house utilities shared across multiple modules (:pr:`119`). Dougie Squire - Added
conftest.pyto gather allpytest.fixtures. (:issue:`126`, :pr:`159`). Aaron Spring and Ray Bell - Removed
test_np_deterministiccovered bytest_metric_results_accurate. (:pr:`159`) Aaron Spring
- Add community support documents:
HOWTOCONTRIBUTE.rst, issue template and pull request template. Aaron Spring and Ray Bell - Replace
pandaswithcftimein examples and tests. Aaron Spring and Ray Bell - Add coveralls for tests coverage. Aaron Spring and Ray Bell
- Add
black,flake8,isort,doc8andpre-commitfor formatting similar toclimpred. Aaron Spring and Ray Bell
- Avoid mutating inputted arrays when skipna=True. (:pr:`111`) Riley X. Brady.
- Avoid read-only error that appeared due to not copying input arrays when dealing with NaNs. (:pr:`111`) Riley X. Brady.
- Update the
XSkillScoreAccessorwith all metrics. Ray Bell
- Add
r2as an implementation ofsklearn.metrics.r2_score. Ray Bell
- Fixes #79 assignment destination is read-only
error when
skipna=Trueand weights are passed. Andrew Huang
- ~30-50% speedup for deterministic metrics when
weights=None. Aaron Spring
- Add
effective_sample_size,pearson_r_eff_p_value, andspearman_r_eff_p_valuefor computing statistical significance for temporally correlated data with autocorrelation. Riley X. Brady
madno longer works and is replaced bymedian_absolute_error. Riley X. Brady
skipnaforpearson_randspearman_rand their p-values now reports accurate results when there are pairwise nans (i.e., nans that occur in different indices inaandb) Riley X. Brady
- Test that results from grid cells in a gridded product match the same value if their time series were input directly into functions. Riley X. Brady
- Test that metric results from
xskillscoreare the same value as an external package (e.g.numpy,scipy,sklearn). Riley X. Brady - Test that
skipna=Trueworks properly with pairwise nans. Riley X. Brady