Domain-specific AutoML library for energy forecasting with physics–ML hybrids and synthetic gap filling
Project description
EnergiCast
EnergiCast is a domain‑specific Python library for energy forecasting (load, PV, wind, prices) that combines:
- ⚡ Domain‑aware AutoML with hierarchical reconciliation and energy‑weighted cost metrics,
- 🌞 Physics–ML hybrids (pvlib solar/wind features + ML/DL models),
- 🔄 Synthetic gap filling with seasonal and generative imputation constrained by physics,
- 🌦️ Weather scenarios with ensemble perturbations for uncertainty quantification,
- 📊 Benchmarks (OpenSTEF‑like datasets) and standardized backtesting protocols.
✨ Features
- AutoML: tailored search spaces for energy time series (ARIMA, ETS, XGB, TFT roadmap).
- Physics priors: PV/wind features from pvlib and meteorological signals.
- Synthetic imputation: diffusion/GAN roadmap, with ramp‑rate & non‑negativity constraints.
- Hierarchical reconciliation: MinT‑style coherent forecasts (asset → feeder → system).
- Metrics: pinball loss, CRPS, and energy‑weighted MAPE with price‑aware penalties.
- Deployment: simple model export and CLI tools.
🚀 Quickstart
Install in editable mode for development:
git clone https://github.com/TyMill/energicast.git
cd energicast
pip install -e .
Run the end-to-end workflow on the bundled example data:
python -m energicast.cli train --config examples/pv_config.yaml --out runs/demo_model
python -m energicast.cli backtest --config examples/pv_config.yaml --out runs/demo_backtest
python -m energicast.cli export --model-dir runs/demo_model --fmt pickle
python -m energicast.cli report --backtest-dir runs/demo_backtest
📚 Dokumentacja
Dokumentację można zbudować lokalnie przy pomocy MkDocs:
pip install -e .[docs]
mkdocs serve
Po wdrożeniu GitHub Pages będzie dostępne pod adresem
https://TyMill.github.io/energicast/.
📂 Repository Structure
energicast/
├─ pyproject.toml
├─ src/energicast/
│ ├─ data/ # loaders for entsoe, pvlib, weather
│ ├─ impute/ # synthetic gap filling
│ ├─ features/ # calendar + energy features
│ ├─ models/ # ARIMA/ETS, XGB, TFT (roadmap)
│ ├─ hier/ # reconciliation
│ ├─ automl/ # Optuna‑based AutoML
│ ├─ metrics/ # probabilistic + energy metrics
│ ├─ scenarios/ # weather ensembles
│ ├─ bench/ # benchmark datasets
│ ├─ deploy/ # export utils
│ └─ cli.py # Typer‑based CLI
└─ examples/ # demo scripts & notebooks
👨💻 Authors
Created by
- Dr Tymoteusz Miller, University of Szczecin,
- Dr inz. Ewelina Kostecka, Maritime University of Szczecin.
📜 License
This project is licensed under the MIT License – see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file energicast-1.0.0.tar.gz.
File metadata
- Download URL: energicast-1.0.0.tar.gz
- Upload date:
- Size: 28.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
25b34e4bced24e0149e505f0d8bb9ad5f65c775aa82929fb7f8e948586572381
|
|
| MD5 |
dc5ce02860e9864a152ade13e99ad63e
|
|
| BLAKE2b-256 |
bdcaffe93aa55cc13887555c0d80c65de4285c329281208face053d89c62b08a
|
File details
Details for the file energicast-1.0.0-py3-none-any.whl.
File metadata
- Download URL: energicast-1.0.0-py3-none-any.whl
- Upload date:
- Size: 31.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.0 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bc73e73c13301ad2d99bd0ac9fac862c919b5841f14b8a326a0fb94cdac92e51
|
|
| MD5 |
fd64ea0399e9e0edbe5a5a991b85f532
|
|
| BLAKE2b-256 |
4ffc8bca849bbec0d91f220103b5d672960a04ad05ea5dcbf66a8002d6f54e38
|