commonpower.data_forecasting.data_sources.ArrayDataSource

class ArrayDataSource(values_dict: dict, date_range: List[datetime], frequency: timedelta = datetime.timedelta(seconds=3600), start_date: datetime | None = None)[source]

Bases: DataSource

DataSource which repeatedly returns array values, one for each timestep.

Usage Example: ``` looping_data = ArrayDataSource({

“day_night”: [0.] * 6 + [1.] * 12 + [0.] * 6, “weekends”: [0.] * 24 * 5 + [1.] * 24 * 2, “prime_chaos”: [0, 42, 73, 4, 5, 6, 7], }, date_range=[pd.to_datetime(‘2024-01-01’), pd.to_datetime(‘2024-12-31’)] # 2024 starts with a Monday

)

param values_dict:

Dict containing element names and the respective arrays that should be returned.

type values_dict:

dict

param date_range:

Date range to simulate.

type date_range:

List[datetime]

param frequency:

Frequency of data to simulate. Defaults to timedelta(hours=1).

type frequency:

timedelta, optional

param start_date:

The datetime at which the arrays begin looping. Defaults to date_range[0]

type start_date:

datetime, optional

Methods

get_date_range

Returns the date range data is available for.

get_limits

Returns the limits for each variable in the data source.

get_variables

Returns the list of element names that data is available for.

__call__(from_time: datetime, to_time: datetime) ndarray[source]

Return the data in this date range.

Parameters:
  • from_time (datetime) – Start time of observation.

  • to_time (datetime) – End time of observation.

Returns:

np.ndarray – Data of shape (n_horizon, n_vars).

get_date_range() List[datetime][source]

Returns the date range data is available for.

Returns:

List[datetime] – [start_date, end_date]

get_limits() dict[str, tuple[float, float]][source]

Returns the limits for each variable in the data source.

Returns:

dict[str, tuple[float, float]]

{“element1”: (lower_bound, upper_bound),

”element2”: (lower_bound, upper_bound)}

get_variables() List[str][source]

Returns the list of element names that data is available for.

Returns:

List[str] – List of available elements.