flexmeasures.data.models.forecasting.utils

Functions

flexmeasures.data.models.forecasting.utils.check_data_availability(old_sensor_model, old_time_series_data_model, forecast_start: datetime, forecast_end: datetime, query_window: tuple[datetime, datetime], horizon: timedelta)

Check if enough data is available in the database in the first place, for training window and lagged variables. Otherwise, suggest new forecast period. TODO: we could also check regressor data, if we get regressor specs passed in here.

flexmeasures.data.models.forecasting.utils.create_lags(n_lags: int, sensor: Sensor, horizon: timedelta, resolution: timedelta, use_periodicity: bool) list[timedelta]

List the lags for this asset type, using horizon and resolution information.

flexmeasures.data.models.forecasting.utils.get_query_window(training_start: datetime, forecast_end: datetime, lags: list[timedelta]) tuple[datetime, datetime]

Derive query window from start and end date, as well as lags (if any). This makes sure we have enough data for lagging and forecasting.

flexmeasures.data.models.forecasting.utils.set_training_and_testing_dates(forecast_start: datetime, training_and_testing_period: timedelta | tuple[datetime, datetime]) tuple[datetime, datetime]

If needed (if training_and_testing_period is a timedelta), derive training_start and testing_end from forecasting_start, otherwise simply return training_and_testing_period.

|------forecast_horizon/belief_horizon------| | |-------resolution-------| belief_time event_start event_end

|--resolution--|–resolution–|--resolution--|–resolution–|--resolution--|–resolution–|

|---------forecast_horizon--------| | | | | | belief_time event_start | | | | | |

|---------forecast_horizon--------| | | | | belief_time event_start | | | | |

belief_time event_start | | | |

|--------max_lag-------|——–training_and_testing_period———|---------------forecast_period--------------| query_start training_start | | testing_end/forecast_start | forecast_end

|------min_lag-----| | |---------forecast_horizon--------| | |
| belief_time event_start | | |
| | belief_time event_start | |
| | | belief_time event_start |

|--------------------------------------------------query_window--------------------------------------------------|