DaylightFeatureAdder#

class openstef_models.transforms.weather_domain.DaylightFeatureAdder(**data: Any) None[source]

Bases: BaseConfig, TimeSeriesTransform

Transform that adds daylight features to time series data.

Computes features that indicate the amount of daylight based on geographical coordinates (latitude and longitude).

Example

>>> import pandas as pd
>>> from datetime import timedelta
>>> from openstef_core.datasets import TimeSeriesDataset
>>> from openstef_models.transforms.weather_domain import (
...     DaylightFeatureAdder,
... )
>>>
>>> # Create sample dataset with timezone
>>> data = pd.DataFrame({
...     'load': [100, 120, 110]
... }, index=pd.date_range('2025-06-01 12:00:00', periods=3, freq='h', tz='Europe/Amsterdam'))
>>> dataset = TimeSeriesDataset(data, timedelta(hours=1))
>>> transform = DaylightFeatureAdder(coordinate=(52.0, 5.0))
>>> transformed_dataset = transform.transform(dataset)
>>> 'daylight_continuous' in transformed_dataset.data.columns
True
Parameters:

data (Any)

coordinate: Coordinate
transform(data: TimeSeriesDataset) TimeSeriesDataset[source]

Transform the input data.

This method should apply a transformation to the input data and return a new instance.

Parameters:
Returns:

A new instance of the transformed data.

Raises:

NotFittedError – If the transform has not been fitted yet.

Return type:

TimeSeriesDataset

features_added() list[str][source]

List of feature names added by this transform.

Return type:

list[str]

Returns:

A list of strings representing the names of features added to the dataset by this transform. Default is an empty list.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': False, 'extra': 'ignore', 'protected_namespaces': ()}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].