solarforecastarbiter.utils.generate_continuous_chunks

solarforecastarbiter.utils.generate_continuous_chunks(data, freq)[source]

Generator to split data into continuous chunks with spacing of freq.

Parameters:
  • data (pandas.Series or pandas.DataFrame) – Data to apply func to. Must have a DatetimeIndex.
  • freq (pd.Timedelta) – Expected frequency to split data into continuous chunks
Yields:

continuous_data (same as data) – Each continuous chunk that conforms to freq

Raises:
  • TypeError – If data is not a pandas Series or DataFrame, or does not have a DatetimeIndex
  • ValueError – If freq cannot be converted to a pandas.Timedelta

Examples

The following code would post two forecast series ignoring the missing period in the middle.

>>> series = pd.Series(
...     [1.0, 2.0, 3.0, 7.0, 8.0],
...     index=[
...         pd.Timestamp('2020-07-01T01:00Z'),
...         pd.Timestamp('2020-07-01T02:00Z'),
...         pd.Timestamp('2020-07-01T03:00Z'),
...         pd.Timestamp('2020-07-01T07:00Z'),
...         pd.Timestamp('2020-07-01T08:00Z'),
...     ])
>>> session = api.APISession('token')
>>> for cser in generate_continuous_chunks(series, pd.Timedelta('1h')):
...     session.post_forecast_values('forecast_id', cser)