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.
Metadata
Release files for energicast 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| energicast-1.0.0.tar.gz | 28.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| energicast-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 59.5 kB
Release files / energicast-1.0.0.tar.gz
| Download URL | energicast-1.0.0.tar.gz |
|---|---|
| Size | 28.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
25b34e4bced24e0149e505f0d8bb9ad5f65c775aa82929fb7f8e948586572381
|
|
BLAKE2b-256 checksum How to use checksums |
bdcaffe93aa55cc13887555c0d80c65de4285c329281208face053d89c62b08a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.9.13
|
Release files / energicast-1.0.0-py3-none-any.whl
| Download URL | energicast-1.0.0-py3-none-any.whl |
|---|---|
| Size | 31.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bc73e73c13301ad2d99bd0ac9fac862c919b5841f14b8a326a0fb94cdac92e51
|
|
BLAKE2b-256 checksum How to use checksums |
4ffc8bca849bbec0d91f220103b5d672960a04ad05ea5dcbf66a8002d6f54e38
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.0 CPython/3.9.13
|