Skip to main content

A dash application for generating energy demand profiles using machine learning models.

Project description

PyPI - Version PyPI - Python Version

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.

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

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

decarbai_demands-1.0.0.tar.gz (14.5 kB view details)

Uploaded Source

Built Distribution

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

decarbai_demands-1.0.0-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file decarbai_demands-1.0.0.tar.gz.

File metadata

  • Download URL: decarbai_demands-1.0.0.tar.gz
  • Upload date:
  • Size: 14.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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

Hashes for decarbai_demands-1.0.0.tar.gz
Algorithm Hash digest
SHA256 074b922c16fb3711dfd31af649b6cb8ba6672dcc15f9fd92187acdd9cfb3580e
MD5 f610303b1bc8998c2017a63777d01b3d
BLAKE2b-256 f5f0f358ca3067f03d673f21efb9ef4fde41cb36d4a66e279c2de78cbb3a863e

See more details on using hashes here.

File details

Details for the file decarbai_demands-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: decarbai_demands-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","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

Hashes for decarbai_demands-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b71263670a3e8f2bb215268c1de84aee28839606249c2087ce127c22c7bb78a5
MD5 b323469f650b6ac0c3da258ed893a01a
BLAKE2b-256 871680c58c95430f789f9270cb394759a499bfeab5baa40ef08504a89f168f79

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