1.0.0b4 (February 7, 2020)

This is the fourth 1.0 beta release. Further changes beyond the pull requests listed here may have been applied in (GH321).

The biggest change is a new data model for Reports so that metrics, processed data, and generated Bokeh javascript and SVG figures are stored in JSON in the API. This removes the requirement for Pandoc and HTML reports can be generated using only Jinja. Other changes include report figure generated from a common data source, better error handling if computing a report fails, and actual data validation results, including the number of missing and dropped values, in the report.

API Changes


  • Automatically verify selected metrics are valid for deterministic forecasts. (GH267) (GH301)
  • Automatically verify selected metrics are valid for probabilistic forecasts. (GH302) (GH306)
  • Add schema for de/serializing timeseries in solarforecastarbiter.io.utils (GH291)
  • Add decorator factory solarforecastarbiter.reports.main.capture_report_failure() to better log report failures to the end user. (GH318)
  • Add missing tests for functionality in solarforecastarbiter.reports.main (GH312) (GH318)
  • Add missing tests for solarforecastarbiter.reports.figures (GH318)
  • Add data validation summary table in the html report (GH299) (GH320)
  • Track data preprocessing results add section and summary table in the html report (GH299) (GH320)
  • Generate error page templates for failed reports. (GH325)
  • Replace the Bokeh tables with HTML tables in reports (GH321)
  • Add solarforecastarbiter.io.utils.load_report_values() convenience function (GH331)
  • Adjust observations and forecasts table and make all processed pairs in a report have a unique name (GH333)
  • Update versions in requirements (GH335)
  • Add an example notebook to create reference reports (GH222) (GH338)

Bug fixes

  • Fix handling of empty observation timeseries in metrics preprocessing. (GH295) (GH296)
  • Fix handling of interval_label == ending in the groupby categories in metrics.calculator. (GH234) (GH297)
  • Document resample_and_align() behavior when the interval_label of the forecast and observation don’t match. (GH300) (GH303)
  • Fix scatter plot limits when some data is NaN (GH282) (GH311)
  • Handle errors on SVG export (GH310) (GH313)
  • Test and handle errors in report creation for empty data (GH217) (GH318)
  • Fix solarforecastarbiter.datamodel.__check_units__() with no arguments (GH318)
  • Fix field seperator conflict with the name when creating figures (GH337) (GH338)
  • Fix dumping TimeOfDayFilter to dict (GH338)
  • Allow the posting of filters in solarforecastarbiter.io.api.APISession.create_report() (GH338)