RadiationDerivedFeaturesAdder#
- class openstef_models.transforms.weather_domain.radiation_derived_features_adder.RadiationDerivedFeaturesAdder(**data: Any) None[source]
Bases:
BaseConfig,TimeSeriesTransformTransform that adds radiation derived features to time series data.
Computes features that are derived from radiation data (in W/m²) based on geographical coordinates (latitude and longitude) and solar position.
The features added can include:
dni: Direct Normal Irradiance (DNI) in W/m².gti: Global Tilted Irradiance (GTI) in W/m² on a tilted surface.
Note
The input radiation data must be in W/m² units.
Example
>>> import pandas as pd >>> from datetime import timedelta >>> from openstef_core.datasets import TimeSeriesDataset >>> from openstef_models.transforms.weather_domain import ( ... RadiationDerivedFeaturesAdder, ... ) >>> from pydantic_extra_types.coordinate import Coordinate, Latitude, Longitude >>> >>> # Create sample dataset with radiation data in W/m² >>> data = pd.DataFrame({ ... 'radiation': [1000, 2000, 1500] ... }, index=pd.date_range('2025-06-01', periods=3, freq='D', tz='Europe/Amsterdam')) >>> dataset = TimeSeriesDataset(data, sample_interval=timedelta(minutes=15)) >>> >>> # Initialize and apply transform >>> transform = RadiationDerivedFeaturesAdder( ... coordinate=Coordinate(latitude=Latitude(52.0), longitude=Longitude(5.0)), ... included_features=['dni', 'gti'], ... surface_tilt=34.0, ... surface_azimuth=180.0 ... ) >>> transformed_dataset = transform.transform(dataset) >>> transformed_dataset.feature_names ['radiation', 'dni', 'gti'] >>> len(transformed_dataset.data["dni"]) == 3 # Check we have 3 values True >>> len(transformed_dataset.data["gti"]) == 3 # Check we have 3 values True
- Parameters:
data (
Any)
-
coordinate:
Coordinate
-
surface_tilt:
float
-
surface_azimuth:
float
-
radiation_column:
str
- 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:
data (
TimeSeriesDataset) – The input data to be transformed.data
- Returns:
A new instance of the transformed data.
- Raises:
NotFittedError – If the transform has not been fitted yet.
- Return type:
- 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].