--------------------------------
Features
~~~~~~~~
- 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 ``fair`` to account for ensemble-size adjustments, but defaults to ``False``.
:py:func:`~xskillscore.brier_score` also accepts binary or boolean forecasts when a
``member_dim`` dimension 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_edges`` in :py:func:`~xskillscore.rps`, which
allows multi-dimensional edges. :py:func:`~xskillscore.rps` now
requires dimension ``member_dim`` in forecasts. (:issue:`275`, :pr:`277`)
`Aaron Spring`_
Breaking changes
~~~~~~~~~~~~~~~~
- 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 ``signficance`` based on ``alpha``.
(:pr:`209`) `Aaron Spring`_
- Drop support for python 3.6. (:issue:`237`, :pr:`276`) `Ray Bell`_
Bug Fixes
~~~~~~~~~
- :py:func:`~xskillscore.sign_test` now works for ``xr.Dataset`` inputs.
(:issue:`198`, :pr:`199`) `Aaron Spring`_
- :py:func:`~xskillscore.threshold_brier_score` does not average over thresholds when
``dim==None``. Now also carries ``threshold`` as 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`_
Internal Changes
~~~~~~~~~~~~~~~~
- 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 ``numba`` to ``>=0.52`` to fix CI (:issue:`233`, :pr:`234`) `Ray Bell`_
- Refactor ``asv`` benchmarks. (: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 ``xhistogram`` to ``>=0.1.2`` and 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_computes`` from xarray. (:issue:`272`, :pr:`273`) `Ray Bell`_
- :py:func:`~xskillscore.threshold_brier_score` now carries threshold values as
coordinates. (:pr:`279`) `Aaron Spring`_