Changelog History
xskillscore v0.0.26 (2024-03-10)
Internal Changes
Fix build Ray Bell.
xskillscore v0.0.25 (2024-03-10)
Bug Fixes
rank_histogram()
random_for_tied=True
handles tied ranks correctly by default.random_for_tied=False
ignores this and retains previous behaviour. (GH335, GH364) Aaron Spring.Allow singleton dimension in
resample_iterations_idx()
as this is allowed inresample_iterations()
also. (GH375, GH376) Aaron Spring.
Internal Changes
Reduce dependencies (GH359, GH363) Aaron Spring.
Implement
typing
for allxs.{calls}
. (GH317, GH366) Aaron Spring.Refactor masking
NaN
inrps()
. (GH397) Aaron Spring.Use to
pyproject.toml
and useruff
for linting Ray Bell.
xskillscore v0.0.24 (2021-10-08)
Documentation
xskillscore v0.0.23 (2021-08-09)
Features
multipletests()
controlling the false discovery rate for multiple hypothesis tests. (GH365, GH370) Aaron Spring.
Bug Fixes
crps_ensemble()
broadcasts (GH345, GH346) Aaron Spring.
Internal Changes
resample_iterations_idx()
do not break whendim
is not coordinate. (GH303, GH339) Aaron Spring.Allow
float
orinteger
forecasts inbrier_score()
(GH285, GH341) Aaron Spring.
xskillscore v0.0.22 (2021-06-29)
Internal Changes
xskillscore v0.0.21 (2021-06-13)
Allow
float
orinteger
forecasts inbrier_score()
(GH285, GH342) Aaron Spring
Internal Changes
Added mypy to linting (GH320) Zachary Blackwood.
Documentation
Breaking changes
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. (GH319) Taher Chegini.
xskillscore v0.0.20 (2021-05-08)
Features
Specify category distribution type with
input_distributions
inrps()
ifcategory_edges==None
that forecasts and observations are probability distributionsp
or cumulative distributionssc
. Seerps()
docstrings and doctests for examples. (GH300) Aaron SpringAdded slope of linear fit
linslope()
. (GH307) Ray Bell
Internal Changes
Use
pytest-xdist
andmatplotlib-base
in environments to speed up CI. (GH283) Aaron Springrps()
does not break from masking NaNs anymore.rps()
expilicty checks forbin_dim
ifcategory_edges==None
. (GH287) Aaron SpringRemoved a call to compute weights in testing. (GH306) Ray Bell
xskillscore v0.0.19 (2021-03-12)
Features
Added mean error
me()
. (GH202, GH200) Andrew Huangbrier_score()
andrps()
now contain keywordfair
to account for ensemble-size adjustments, but defaults toFalse
.brier_score()
also accepts binary or boolean forecasts when amember_dim
dimension is present. (GH162, GH211) Aaron SpringAdded MAE significance test
mae_test()
from Jolliffe and Ebert https://www.cawcr.gov.au/projects/verification/CIdiff/FAQ-CIdiff.html (GH192, GH209) Aaron Springresample_iterations()
and fasterresample_iterations_idx()
for resampling with and without replacement. (GH215, GH225) Aaron SpringAdded receiver operating characteristic (ROC)
roc()
. (GH114, GH256, GH236, GH259) Aaron SpringAdded many options for
category_edges
inrps()
, which allows multi-dimensional edges.rps()
now requires dimensionmember_dim
in forecasts. (GH275, GH277) Aaron Spring
Breaking changes
Aligned output of
sign_test()
withmae_test()
. Now tests from comparative.py return more than one object including a boolean indicatingsignficance
based onalpha
. (GH209) Aaron Spring
Bug Fixes
sign_test()
now works forxr.Dataset
inputs. (GH198, GH199) Aaron Springthreshold_brier_score()
does not average over thresholds whendim==None
. Now also carriesthreshold
as coordinate. (GH255, GH211) Aaron SpringPassing weights no longer triggers eager computation. (GH218, GH224). Andrew Huang
rps()
not restricted to[0, 1]
. (GH266, GH277) Aaron Spring
Internal Changes
Added Python 3.7 and Python 3.8 to the CI. Use the latest version of Python 3 for development. (GH21, GH189) Aaron Spring
Update mape algorithm from scikit-learn v0.24.0 and test against it. (GH160, GH230) Ray Bell
Refactor
asv
benchmarks. (GH231) Aaron SpringAdded tests for nans in correlation metrics (GH246, GH247) Ray Bell
Added tests for weighted metrics against scikit-learn (GH257) 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 (GH269) Dougie SquireReduce warnings. (GH41, GH268) Aaron Spring
Use
raise_if_dask_computes
from xarray. (GH272, GH273) Ray Bellthreshold_brier_score()
now carries threshold values as coordinates. (GH279) Aaron Spring
xskillscore v0.0.18 (2020-09-23)
Features
Added the sign test described in DelSole and Tippett 2016:
sign_test()
. (GH133, GH176) Aaron Spring and Dougie Squire
Internal Changes
Removed an unused variable in
_rmse
, resulting in 2x speedup (GH182). Andrew HuangRequire
xarray=0.16.1
(GH183, GH184) Aaron Spring
Bug Fixes
Fix incompatibility with
xarray=0.16.1
inapply_ufunc
(GH183, GH184) Aaron Spring
Documentation
xskillscore v0.0.17 (2020-09-06)
Features
Added contingency table
Contingency()
and associated metrics (GH119, GH153). Dougie SquireAdded
rank_histogram()
anddiscrimination()
to probabilistic metrics (GH136). Dougie SquireAdded
reliability()
to probabilistic metrics (GH164). Dougie SquireAdded
dim
andweights
kwargs for probabilistic metrics. (GH121) Aaron SpringAdded
keep_attrs
kwarg for all metrics. (GH122) Andrew HuangAdded ranked probability score
rps()
. (GH163) Aaron SpringDeterministic 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. (GH165, GH71, GH156, GH166) Aaron Spring
Breaking Changes
Renamed
dim
tomember_dim
in probabilistic metrics. (GH121) Aaron SpringArgument
dim
becomes keyworddim=None
in all metrics. (GH137, GH143) Aaron Springdim=None
reduces all dimensions as inxr.mean(dim=None)
. (GH137, GH143) Aaron Spring
Bug Fixes
Fixes
weights=None
type issue with latest version ofdask
. (GH168, GH171) Andrew Huang
Documentation
Added
sphinx
documentation with full API and a quick start notebook. (GH127) Riley X. Brady and Ray Bell.
Internal Changes
Added
utils
module to house utilities shared across multiple modules (GH119). Dougie SquireAdded
conftest.py
to gather allpytest.fixtures
. (GH126, GH159). Aaron Spring and Ray BellRemoved
test_np_deterministic
covered bytest_metric_results_accurate
. (GH159) Aaron Spring
xskillscore v0.0.16 (2020-07-18)
Internal Changes
Add community support documents:
HOWTOCONTRIBUTE.rst
, issue template and pull request template. Aaron Spring and Ray BellReplace
pandas
withcftime
in examples and tests. Aaron Spring and Ray BellAdd coveralls for tests coverage. Aaron Spring and Ray Bell
Add
black
,flake8
,isort
,doc8
andpre-commit
for formatting similar toclimpred
. Aaron Spring and Ray Bell
Bug Fixes
Avoid mutating inputted arrays when skipna=True. (GH111) Riley X. Brady.
Avoid read-only error that appeared due to not copying input arrays when dealing with NaNs. (GH111) Riley X. Brady.
xskillscore v0.0.15 (2020-03-24)
Features
Update the
XSkillScoreAccessor
with all metrics. Ray Bell
xskillscore v0.0.14 (2020-03-20)
Features
Add
r2
as an implementation ofsklearn.metrics.r2_score
. Ray Bell
xskillscore v0.0.13 (2020-03-17)
Bug Fixes
Fixes https://github.com/xarray-contrib/xskillscore/issues/79 assignment destination is read-only error when
skipna=True
and weights are passed. Andrew Huang
xskillscore v0.0.12 (2020-01-09)
Internal Changes
~30-50% speedup for deterministic metrics when
weights=None
. Aaron Spring
xskillscore v0.0.11 (2020-01-06)
Features
Add
effective_sample_size
,pearson_r_eff_p_value
, andspearman_r_eff_p_value
for computing statistical significance for temporally correlated data with autocorrelation. Riley X. Brady
xskillscore v0.0.10 (2019-12-21)
Deprecations
mad
no longer works and is replaced bymedian_absolute_error
. Riley X. Brady
Bug Fixes
skipna
forpearson_r
andspearman_r
and their p-values now reports accurate results when there are pairwise nans (i.e., nans that occur in different indices ina
andb
) Riley X. Brady
Testing
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
xskillscore
are the same value as an external package (e.g.numpy
,scipy
,sklearn
). Riley X. BradyTest that
skipna=True
works properly with pairwise nans. Riley X. Brady