Forecasting and optimization for district heating dispatch — EnergyTrading2026 project seminar.
- Forecasting — demand forecasts (hourly, multi-horizon)
- Optimization — hourly MPC dispatch on top of the forecast
Requires Python ≥ 3.11.
git clone git@github.com:EnergyTrading2026/datascience.git
cd datascience
pip install -e .This installs the optimization stack (numpy, pandas, pyarrow,
matplotlib, pyomo, highspy, apscheduler). Notebooks
need pip install -e '.[notebooks]' (adds jupyter, ipykernel).
Forecasting notebooks pull in additional packages (scikit-learn, statsmodels,
tensorflow, pmdarima, xgboost) that you'll need to install separately.
This editable install is the intended setup for local development and tests.
The intended production path for the optimization service is Docker — see
docs/deploy/README.md.
src/ Production code (forecasting + optimization)
notebooks/ Jupyter notebooks for exploration and prototyping
tests/ Automated tests (src/ only — notebooks aren't tested)
docs/ Problem definitions and methodology notes
data/ Data (raw and cleaned)
Optimization context lives in docs/optimization/: problem statement
(optimization_problem.md) and hourly MPC notes (hourly_mpc.md).
optimization-backtest— runs the hourly MPC backtest harness (defined inpyproject.toml, seesrc/optimization/backtest.py).- Dockerized optimization service — see
docs/deploy/README.mdfor the production daemon, first-time setup, synthetic forecast smoke test, and operational commands. scripts/sim_forecaster.py— local smoke-test helper that writes a contract-shaped forecast parquet intodata/forecast/so the Docker daemon can run a full optimization cycle without the real forecasting service.
- Create a feature branch from
main - Make your changes
- Open a pull request
- Get 1 approval
- Merge