.. _whatsnew_100b3:

1.0.0b3 (December 16, 2019)
---------------------------

This is the third 1.0 beta release.


API Changes
~~~~~~~~~~~
* The :py:class:`~solarforecastarbiter.datamodel.Report` JSON
  representation of ``"object_pairs"`` now expects a list of dicts with
  keys ``"forecast"`` and one of ``"observation"`` or ``"aggregate"``.
  (:pull:`256`)
* Add :py:meth:`~solarforecastarbiter.io.api.APISession.get_values`.
  (:pull:`256`)
* Add the `provider` parameter to :py:mod:`solarforecastarbiter.Datamodel`
  objects that were missing it (:pull:`260`)
* Add :py:mod:`solarforecastarbiter.io.api.APISession.get_user_info`
  to get information about the current API user (:pull:`260`)
* Add metrics calculator functions for processing forecasts and observations
  :py:mod:`solarforecastarbiter.metrics.calculator.calculate_metrics`, and
  :py:mod:`solarforecastarbiter.metrics.calculator.calculate_deterministic_metrics`. (:pull:`224`)
* Add additional metric for probabilistic forecasts
  :py:mod:`solarforecastarbiter.metrics.probabilistic.continuous_ranked_probability_score`. (:issue:`250`) (:pull:`257`)
* Standardize metric input naming and order conventions to `function(obs, fx)`,
  where `obs` = observations and `fx` = forecasts (:issue:`262`) (:pull:`263`)
* Add valuation metric for evaluating forecast errors
  :py:mod:`solarforecastarbiter.metrics.valuation.fixed_error_cost` (:issue:`258`) (:pull:`261`)
* Add additional normalized deterministic metrics
  :py:mod:`solarforecastarbiter.metrics.deterministic.normalized_mean_absolute`, and
  :py:mod:`solarforecastarbiter.metrics.deterministic.normalized_mean_bias`. (:issue:`118`) (:pull:`268`)

Enhancements
~~~~~~~~~~~~
* Add capability to analyze aggregates to reports. (:pull:`256`)
* :py:mod:`solarforecastarbiter.reference_forecasts.main.make_latest_nwp_forecasts`
  now only tries to update forecasts that have the same provider as the user's
  organization (:pull:`260`)
* :py:mod:`solarforecastarbiter.validation.tasks.daily_observation_validation`
  only validates data for observations with the same provider as the user's
  organization (:pull:`260`)
* Merge multiple quality flag filters together before applying in report
  generation. (:pull:`260`)
* Made improvements the figures in reports to include categories:
  total, year, month, date, weekday, and hour. These are mapped to
  Total, Year, Month, Date, Day of the week, and Hour of the day when
  plotting. (:issue:`4`, :pull:`224`, :issue:`273`).
* Added ``datamodel.ALLOWED_CATEGORIES`` dictionary. Categories are
  checked against this dictionary when creating a Report. (:issue:`273`)
* Dictionary of metric results from metrics.calculator now has structure with
  levels of  1) category type 2) metric type 3) pandas.Series of metrics values
  with index of category values (:pull:`224`)
* Added ``datamodel.ALLOWED_DETERMINISTIC_METRICS`` and
  ``datamodel.ALLOWED_PROBABILISTIC_METRICS`` dictionaries for importing
  metrics options outside of core. (:pull:`286`)
* Add link to report to download HTML version (:pull:`289`)


Bug fixes
~~~~~~~~~
* Log MIDC CSV parsing errors, but continue with other sites (:issue:`254`)
* Fix issue of assuming the first report filter is a QualityFlagFilter,
  partially addressing (:issue:`251`) (:pull:`260`)
* Test that pandoc report generation actually generates the HTML body (:pull:`260`)
* Fix metric plot limits for newer metrics. (:issue:`276`)
* Fix bug in which metrics table width was not calculated correctly,
  leading to not all metrics being displayed. (:issue:`284`)
* Fix report table of content spacing (:pull:`289`)

Contributors
~~~~~~~~~~~~

* Will Holmgren (:ghuser:`wholmgren`)
* Leland Boeman (:ghuser:`lboeman`)
* Cliff Hansen (:ghuser:`cwhanse`)
* Tony Lorenzo (:ghuser:`alorenzo175`)
* Justin Sharp (:ghuser:`MrWindAndSolar`)
* Aidan Tuohy
* Adam Wigington (:ghuser:`awig`)
* David Larson (:ghuser:`dplarson`)
