solarforecastarbiter.reference_forecasts.persistence.persistence_probabilistic_timeofday(observation, data_start, data_end, forecast_start, forecast_end, interval_length, interval_label, load_data, axis, constant_values)[source]

Make a probabilistic persistence forecast using the observation from data_start to data_end, matched by time of day (e.g. to forecast 9am, only use observations from 9am on days between data_start and data_end). This is a common variant of the Persistence Ensemble (PeEn) method. [1] [2] [3]

  • observation (datamodel.Observation) –
  • data_start (pd.Timestamp) – Observation data start. Forecast is inclusive of this instant if observation.interval_label is beginning or instant.
  • data_end (pd.Timestamp) – Observation data end. Forecast is inclusive of this instant if observation.interval_label is ending or instant.
  • forecast_start (pd.Timestamp) – Forecast start. Forecast is inclusive of this instant if interval_label is beginning or instant.
  • forecast_end (pd.Timestamp) – Forecast end. Forecast is inclusive of this instant if interval_label is ending or instant.
  • interval_length (pd.Timedelta) – Forecast interval length
  • interval_label (str) – instant, beginning, or ending
  • load_data (function) – A function that loads the observation data. Must have the signature load_data(observation, data_start, data_end) and properly account for observation interval label.
  • axis ({'x', 'y'}) – The axis on which the constant values of the CDF is specified. The axis can be either x (constant variable values) or y (constant percentiles).
  • constant_values (array_like) – The variable values or percentiles.

forecasts (list of pd.Series) – The persistence forecasts, returned in the same order as constant_values. If axis is x, the forecast values are percentiles (e.g. 25%). If instead axis is y, the forecasts values have the same units as the observation data (e.g. MW).


ValueError – If there is insufficient data for matching by time of day or the axis parameter is invalid.


Assumes that there is at least 20 days of observation data available based on [1], [2], [3].


[1](1, 2) Allessandrini et al. (2015) “An analog ensemble for short-term probabilistic solar power forecast”, Appl. Energy 157, pp. 95-110. doi: 10.1016/j.apenergy.2015.08.011
[2](1, 2) Yang (2019) “A universal benchmarking method for probabilistic solar irradiance forecasting”, Solar Energy 184, pp. 410-416. doi: 10.1016/j.solener.2019.04.018
[3](1, 2) Doubleday, Van Scyoc Herndandez and Hodge (2020) “Benchmark probabilistic solar forecasts: characteristics and recommendations”, Solar Energy 206, pp. 52-67. doi: 10.1016/j.solener.2020.05.051