A dash application for generating energy demand profiles using machine learning models.
Project description
DecarbAI Demands
Predicts 8760-hour heating, cooling, electricity, and DHW demand profiles for Swiss buildings using a per-city, per-building-type XGBoost + PCA ensemble, served through an interactive Dash dashboard.
Demo
Install
pip install decarbai-demands
Requires Python 3.11+.
Model download
Model artifacts are not bundled in the package. On the first prediction for a given city
the package downloads {city}.tar (~100 MB) from a public S3 bucket and caches it at
~/.cache/decarbai/models/. Subsequent runs use the local cache.
Run the dashboard
After installing the package, launch the dashboard with the bundled CLI:
decarbai-demands dashboard
Or, from a source checkout:
uv run python -m decarbai_demands.dashboard
Opens an interactive Dash UI at http://127.0.0.1:8050/ for configuring a building and predicting its hourly heating, cooling, electricity, and DHW demand profiles.
Repo structure
src/decarbai_demands/
├── schema.py Pydantic InputData + the 17-feature ordered vector
├── model.py XGBoost + PCA ensemble loader (Model + load_artifacts)
├── pipeline.py run_pipeline: feeds InputData through the per-city models
├── dashboard/ Dash app (subpackage)
│ ├── app.py create_app() + run_dashboard() + __main__
│ ├── layout.py UI tree (header, form sections, panels, modal hookup)
│ ├── callbacks.py Prediction, CSV download, live range validation, modal toggle
│ ├── styles.py Style dicts shared across the UI
│ ├── constants.py Cities, building types, demand types, form defaults
│ └── ranges.py TRAINING_RANGES + the info-modal builder
└── model_cache.py S3 download + local cache at ~/.cache/decarbai/models/
Layout: {country}/{city}/{building_type}/{demand}.zst
Heating and cooling each have their own .zst model file; DHW and electricity share electricity_dhw.zst (first 8760 values = DHW, next 8760 = electricity).
Model training envelope
Predictions are most reliable when inputs lie within the ranges the model was trained on. Outside this envelope, the model extrapolates and confidence drops. The dashboard surfaces the same ranges inline next to each input and in the ⓘ info modal.
Direct inputs
| Feature | Min | Max |
|---|---|---|
| Width [m] | 5.0 | 14.0 |
| Length [m] | 10.0 | 19.0 |
| Floor Height [m] | 2.5 | 3.5 |
| Number of Floors | 1 | 4 |
| Construction Year | 1918 | 2015 |
| North Angle [°] | 0 | 90 |
| WWR (N / E / S / W) | 0.0 | 0.75 |
| U_Ground [W/m²K] | 0.12 | 1.24 |
| U_Wall [W/m²K] | 0.11 | 3.06 |
| U_Roof [W/m²K] | 0.11 | 1.63 |
| U_Window [W/m²K] | 0.78 | 5.67 |
Derived features (computed from geometry)
| Feature | Min | Max |
|---|---|---|
| Footprint [m²] | 50.0 | 266.0 |
| Total Height [m] | 2.5 | 14.0 |
| Volume [m³] | 125.0 | 3724.0 |
| Envelope Area [m²] | 175.0 | 1456.0 |
| Relative Compactness [-] | 0.65 | 1.0 |
| Characteristic Length [m] | 0.71 | 2.56 |
| Average WWR [-] | 0.0 | 0.75 |
Credits
This tool was developed under the Innosuisse DecarbAI project, a UK/CH bilateral research collaboration.
- ML models & methodology — Dr. Hassan Bazazzadeh & Dr. Georgios Mavromatidis (Urban Energy Systems Laboratory, Empa)
- Building stock data & simulation inputs — BuildingAtlas, providing a scientifically grounded, data-rich foundation for Swiss and European building typologies
- ML deployment & dashboard — Youssef Sherif & Sympheny's Team (Sympheny)
- Funding — Innosuisse UK/CH bilateral grant
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
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 decarbai_demands-1.0.4.tar.gz.
File metadata
- Download URL: decarbai_demands-1.0.4.tar.gz
- Upload date:
- Size: 15.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
187037f33e09ff94e5f93301908e312ea8624d2ec8bdbf3a4fd4a4182a24d98d
|
|
| MD5 |
d8cb08ac4e260a89fd00267237c2d763
|
|
| BLAKE2b-256 |
9d09ccb37bbe8b8356c8a7a4f79caf3a7b0d3d8081a804af8bf8ef2342278b19
|
File details
Details for the file decarbai_demands-1.0.4-py3-none-any.whl.
File metadata
- Download URL: decarbai_demands-1.0.4-py3-none-any.whl
- Upload date:
- Size: 19.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.11.21 {"installer":{"name":"uv","version":"0.11.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dab6e1cbee99457736be1a438e21b1624a05a0abb6b7b7e3cfd3aaad1154a921
|
|
| MD5 |
bef4cdce57228f08713cb6a2f212f63f
|
|
| BLAKE2b-256 |
ba0396f43d4192038c57a1c79a958554346e853195784b30ef4531d5ef0942c2
|