Skip to main content

Domain-specific AutoML library for energy forecasting with physics–ML hybrids and synthetic gap filling

Project description

EnergiCast

CI Docs License: MIT Python GitHub release (latest by date)

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

energicast-1.0.0.tar.gz (28.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

energicast-1.0.0-py3-none-any.whl (31.1 kB view details)

Uploaded Python 3

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

Hashes for energicast-1.0.0.tar.gz
Algorithm Hash digest
SHA256 25b34e4bced24e0149e505f0d8bb9ad5f65c775aa82929fb7f8e948586572381
MD5 dc5ce02860e9864a152ade13e99ad63e
BLAKE2b-256 bdcaffe93aa55cc13887555c0d80c65de4285c329281208face053d89c62b08a

See more details on using hashes here.

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

Hashes for energicast-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bc73e73c13301ad2d99bd0ac9fac862c919b5841f14b8a326a0fb94cdac92e51
MD5 fd64ea0399e9e0edbe5a5a991b85f532
BLAKE2b-256 4ffc8bca849bbec0d91f220103b5d672960a04ad05ea5dcbf66a8002d6f54e38

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page