1.0.0b5 (April 27, 2020)

This is the fifth 1.0 beta release.

Highlights include:

  • support for event forecasts and reports
  • using plotly to generate report figures
  • support for normalized metrics in the reports
  • an option to account for uncertainty using a deadband in reports
  • support for forecast skill in reports

See below for the full list of changes.

API Changes


  • Report plots are now created using Plotly. Bokeh figure generation moved to solarforecastarbiter.reports.figures.bokeh_figures for users still interested in bokeh figures.(GH359)
  • Report timeseries plots no longer draw lines over missing data points (GH351).
  • Double clicking a forecast or observation in the legend of report timeseries plots will toggle the display of all other timeseries. (GH253)
  • Clean up any PhantomJS drivers created to render SVGs (GH344) (GH349)
  • Reference data updates can now proceed from the last value in the API to avoid any artificial data gaps (GH369) (GH353)
  • GHI validation now includes checks on if a period is cloud-free and will be flagged with CLEARSKY (GH210) (GH382)
  • All data validation now includes the generation of the NIGHTTIME flag (GH293) (GH382)
  • Metrics automatically determine normalization based on Observation type. AC power observations are normalized by AC capacity; DC power by DC capacity. Normalized metrics set to nan for all other variables. (GH370) (GH379)
  • Metrics 'mae', 'mbe', 'rmse', 'mape', 'nmae', 'nmbe', 'nrmse', 's' may now be calculated using a deadband. The deadband is specified as a percentage of the observations. The error forecast - observation is set to 0 within the deadband. The deadband is controlled using the solarforecastarbiter.datamodel.ForecastObservation and solarforecastarbiter.datamodel.ForecastAggregate uncertainty argument. None implies no deadband and a float sets the deadband. Additionally, for solarforecastarbiter.datamodel.ForecastObservation, the string 'observation_uncertainty' may be supplied to set the deadband equal to solarforecastarbiter.datamodel.Observation.uncertainty. (GH358, GH378)
  • Reports can now report the forecast skill metric (s) when a reference forecast is provided. The metadata table of forecasts and observations now includes reference forecasts. (GH386, GH387)
  • Reports now support evaluating event forecasts. (GH380) (GH361)

Bug fixes

  • Fix using deprecated ‘M’ string for a month offset in solarforecastarbiter.io.reference_observaions.srml.fetch() (GH341) (GH342)
  • Fix CLI report generation when status not set in report metadata (GH345)
  • Fix bug with APISession list functions when only a single value is available. (GH367)
  • Fix type errors in observation validation by ensuring all time series values from solarforecastaribter.io.api functions are coerced to float and converting to float before validation (GH252) (GH384)
  • Enforce metric order consistency. (GH352) (GH396)
  • Eliminate most warnings from test suite. (GH385) (GH395)
  • solarforecastarbiter.metrics.deterministic.forecast_skill() now returns 0 if both forecast and reference forecast errors are 0. (GH395)
  • Clarify report data validation section text and table. (GH413) (GH422)