xskillscore.reliability

xskillscore.reliability(observations, forecasts, dim=None, probability_bin_edges=array([0., 0.2, 0.4, 0.6, 0.8, 1.]), keep_attrs=False)
Returns the data required to construct the reliability diagram for an event;

the relative frequencies of occurrence of an event for a range of forecast probability bins

Parameters:
  • observations (xarray.Dataset or xarray.DataArray) – The observations or set of observations of the event. Data should be boolean or logical (True or 1 for event occurance, False or 0 for non-occurance).

  • forecasts (xarray.Dataset or xarray.DataArray) – The forecast likelihoods of the event. Data should be between 0 and 1.

  • dim (str or list of str, optional) – Dimension(s) over which to compute the histograms Defaults to None meaning compute over all dimensions.

  • probability_bin_edges (array_like, optional) – Probability bin edges used to compute the reliability. Similar to np.histogram, all but the last (righthand-most) bin include the left edge and exclude the right edge. The last bin includes both edges. Defaults to 6 equally spaced edges between 0 and 1

  • keep_attrs (bool, optional) – If True, the attributes (attrs) will be copied from the first input to the new one. If False (default), the new object will be returned without attributes.

Returns:

The relative frequency of occurrence for each probability bin

Return type:

xarray.Dataset or xarray.DataArray

Examples

>>> forecasts = xr.DataArray(
...     np.random.normal(size=(3, 3, 3)),
...     coords=[("x", np.arange(3)), ("y", np.arange(3)), ("member", np.arange(3))],
... )
>>> observations = xr.DataArray(
...     np.random.normal(size=(3, 3)),
...     coords=[("x", np.arange(3)), ("y", np.arange(3))],
... )
>>> xs.reliability(observations > 0.1, (forecasts > 0.1).mean("member"), dim="x")
<xarray.DataArray (y: 3, forecast_probability: 5)> Size: 120B
array([[nan, 0. , nan, 1. , nan],
       [1. , 0.5, nan, nan, nan],
       [nan, 0. , nan, 0. , nan]])
Coordinates:
  * y                     (y) int64 24B 0 1 2
  * forecast_probability  (forecast_probability) float64 40B 0.1 0.3 0.5 0.7 0.9
    samples               (y, forecast_probability) float64 120B 0.0 2.0 ... 0.0

Notes

See http://www.cawcr.gov.au/projects/verification/