Skip to main content

BuildingModel

Description: BuildingModel is a district-level building energy simulation tool designed to leverage the availability of large scale open datasets on building geometry, census-derived dwelling characteristics and energy performance diagnosis. The methodology proposed combines GIS data processing with statistical inference techniques to obtain a description of each building's envelop geometry (including adjacency), thermal performances (envelop and systems) and occupation. This description is then used as the input of a physical model calculating solar gains, losses through boundaries and ventilation, heating system consumption and occupant-related energy usage.

  • Technology stack: Python 3, Polars, GeoPandas
  • Status: Beta (1.0). The complete toolchain is functional, but validation and fine-tuning of the models are still ongoing.

Screenshot: Example of results that can be obtained from a BuildingModel run with the GeoPandas integration allowing easy interactive plotting in Jupyter Notebooks

Documentation: The complete documentation for buildingmodel (methodology and API) is available at DOCS

Limitations

BuildingModel has been developed and tested only in the French context, for which GIS, census and energy diagnosis data is available. However, the generic character of the methodology should make it suitable for other countries as long as similar datasets can be obtained. In addition, BuildingModel currently deals only with residential buildings, due to limitations on the availability of data for other building usages.

Dependencies

BuildingModel requires Python 3.10 or later (tested on 3.13) and depends mainly on Polars, GeoPandas and pvlib. The canonical dependency list is in pyproject.toml; the reference conda environment is ci/conda_env.yml. Reference datasets (BDTOPO, census, DPE, gas network, climate) are fetched by the companion package buildingdata, installed automatically.

Installation

pip install buildingmodel

Detailed installation instructions available at INSTALL.

Usage

In its most basic form, BuildingModel is used by building a Simulation around a GIS file and calling run_all :

from importlib.resources import files
from pathlib import Path

from buildingmodel.main import Parameters, Simulation

# Sample GIS and EPW data bundled with the package
data = Path(str(files('buildingmodel') / 'data'))

sim = Simulation(
    building_data=data / 'gis' / 'testing' / 'bdtopo_iris_461290000.parquet',
    climate_data=None,   # pick from climate_folder, else fetch ERA5
    parameters=Parameters(climate_folder=data / 'climate'),
)
sim.run_all()

sim.buildings    # one row per building, with needs, consumption and energy label
sim.boundaries   # one row per wall / roof / floor
sim.dwellings    # one row per dwelling

The results are Polars DataFrames (sim.building_geometries holds the footprints as a GeoDataFrame). More advanced uses and result processing are available as jupyter notebook examples in the documentation.

How to test the software

From the root folder of BuildingModel, run :

pytest

Known issues

  • Current occupant-related energy usage models are very crude and subject significant future changes.
  • Energy consumption of heating systems relies on a constant efficiency model, except for electric heat pumps which use a climate-dependent seasonal COP. Other technology-specific models are still to come.
  • Peak consumption estimates are provided by building but cannot be summed directly to obtain the total peak consumption of the district as the peaks may not be all synchronous.
  • Consumption of cooling systems is not modelled

Getting help

If you have questions, concerns, bug reports, etc, please file an issue in this repository's Issue Tracker.

Getting involved

BuildingModel is looking for users to provide feedback and bug reports on the initial set of functionalities as well as developers to contribute to the next versions, with a focus on validation of models, cooling need simulation, adaptation to other countries' datasets and building usages.

Instructions on how to contribute are available at CONTRIBUTING.

Open source licensing info

  1. LICENCE

Credits and references

BuildingModel physical models are directly derived from the work of Antoine Rogeau in Vers une approche intégrée d’aide à la planification énergétique territoriale : application à la rénovation énergétique des bâtiments

Funding :

Main contributors :

Download files

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

Source Distribution

buildingmodel-1.8.0.tar.gz (6.1 MB view details)

Uploaded Source

Built Distributions

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

buildingmodel-1.8.0-cp313-cp313-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.13Windows x86-64

buildingmodel-1.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

buildingmodel-1.8.0-cp312-cp312-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.12Windows x86-64

buildingmodel-1.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

buildingmodel-1.8.0-cp311-cp311-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.11Windows x86-64

buildingmodel-1.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

buildingmodel-1.8.0-cp310-cp310-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file buildingmodel-1.8.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.8.0.tar.gz
  • Upload date:
  • Size: 6.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.14

File hashes

Hashes for buildingmodel-1.8.0.tar.gz
Algorithm Hash digest
SHA256 8faf91443122c5ea3d79df9fdfabe420a5626b50520af457edbb445d06832fb0
MD5 a94a245c1b3c59a4b0b7442e53cff8ab
BLAKE2b-256 b1865175140cc8879f4b79a72e5431015d3adb4c087b33567f8785e9e932a4c1

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 725379016d0ca32cd2854304a628df89a25de0795d793976d6039bfed5ad25f7
MD5 3dec996497451621a8381f6dac625cfc
BLAKE2b-256 4fdd84cd40313ec3b1d6f0b585b64a1be7249fd0c68ddc11d710a923f9bd359c

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 437ef47092f758916cfc17629609ab0aea4cf3fbf280dc72b80e3c649985b515
MD5 618661f10e38cdcbe037545401879425
BLAKE2b-256 acbcddec064e4a60b5b92bf947d4ce889c86502e0dae94239eed426f9a0bb92a

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 c228b54c1753e10851faa87c028b5e3631172ea02fcd10e43b523467f77155cc
MD5 bb173b2188ce81e1f2d50ca9e78b0e23
BLAKE2b-256 447345e3ca5bbdc8ced65ea076a8eb539b8fd12972a6163244df6690d6a849a5

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 27c917463b9a8695308fcd922a45200d50db84ad27f672bc2463c4c041824b1d
MD5 4e2cbae9eed22a596f6a53d86ecee9cc
BLAKE2b-256 00a3d900e14bbfdda582b547e0626b6ed8cb5b6016c0b9a21a876c21871f07d8

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 1f1eba9fe591feb711382cb78f069bda38c2a03cc162562ac93151994ebbb99b
MD5 bbaf6b1040dbef3105176cfd802b66c0
BLAKE2b-256 a11835282aa60fc1c9a67537d2771148f83ac46fb992345e0de2ff91afd41d90

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c86aa6b5050f29a19c18175896d7edbe41014a16b979e3ad69510b9e949cc35
MD5 677f0b7fc03916658055d55ccb9718fe
BLAKE2b-256 f392ef9ad2fac5a68c91e0f457e4e8ef4b4eb7699d55906cbe9690ca36c9dd04

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4cc13e1bdc06b9584a5ed0d3fad7bbe3f16d2ed1bdf1fb26adb8eb127f2e244c
MD5 9479b3d62558022ebc4ce807a9e70850
BLAKE2b-256 9c7eeaf61632baef58e6713e1d4c900f08ec2249bf2d27d51810b186f5d547c2

See more details on using hashes here.

File details

Details for the file buildingmodel-1.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for buildingmodel-1.8.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e4da696823bef85da19d3a8b98c64e7154e91873bf82b89b6dffcde0d360fad
MD5 f98ca4563ecf50b9c9411eee612f98c2
BLAKE2b-256 fd95b1731ea1444869fe38139835a5c9870a4eb92a6978ea8ca3ba6279a3ff1c

See more details on using hashes here.

Release history Release notifications | RSS feed

1.10.0

9 files

1.9.0

9 files

This release

1.8.0 This release

9 files

1.7.0

9 files

1.6.0

9 files

1.5.0

9 files

1.4.0

9 files

1.3.0

9 files

1.2.0

9 files

1.1.0

9 files

1.0.7

9 files

1.0.6

9 files

1.0.5

9 files

1.0.4

9 files

1.0.3

5 files

1.0.2

5 files

1.0.1

5 files

1.0.0

5 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page