solarforecastarbiter.reference_forecasts.persistence.persistence_scalar_index

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

Calculate a persistence forecast using the mean value of the observation clear sky index or AC power index from data_start to data_end.

In the example below, we use GHI to be concrete but the concept also applies to AC power. The persistence forecast is:

\[GHI_{t_f} = \overline{ \frac{ GHI_{t_{start}} }{ GHI_{{clear}_{t_{start}}} } \ldots \frac{ GHI_{t_{end}} }{ GHI_{{clear}_{t_{end}}} } }\]

where \(t_f\) is a forecast time, and the overline represents the average of all observations or clear sky values that occur between \(t_{start}\) = data_start and \(t_{end}\) = data_end. All \(GHI_{t}/GHI_{{clear}_t}\) ratios are restricted to the range [0, 2] before the average is computed.

Parameters:
  • 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.
Returns:

forecast (pd.Series) – The persistence forecast. The forecast interval label is the same as the observation interval label.