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 :

Metadata

Release files for buildingmodel 1.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buildingmodel 1.11.1
File Size Uploaded
buildingmodel-1.11.1.tar.gz 6.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for buildingmodel 1.11.1
File
buildingmodel-1.11.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
buildingmodel-1.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
buildingmodel-1.11.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
buildingmodel-1.11.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
buildingmodel-1.11.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
buildingmodel-1.11.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
buildingmodel-1.11.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
buildingmodel-1.11.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 59.4 MB

Release files / buildingmodel-1.11.1.tar.gz

Download URL buildingmodel-1.11.1.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
d5a6dce18679a5064b499c1f9319effab23cee96bf96cc91cd03776e5e38c70a
BLAKE2b-256 checksum
How to use checksums
35c57e531fbe385db9ab7e57deae9e0d53a5f544b18158df77439f880f2c817f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp313-cp313-win_amd64.whl

Download URL buildingmodel-1.11.1-cp313-cp313-win_amd64.whl
Size 6.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
8a241bf0c9ae1bc1b197c472813845429a6e93e7d194c26631bcc5ea52199295
BLAKE2b-256 checksum
How to use checksums
d015d48032aebc3a73b8ff2b697cecc0ac99e8eeaa71300e9ef7d762bbb6b659
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ed24d652235b0cbac09f14cda7e7bb22f65696f54330bbb9c1b83573964fd28e
BLAKE2b-256 checksum
How to use checksums
fedc28f8ce72e407a54e343ea6c953ab9651d49677341fbd5c17edad7f165e0a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp312-cp312-win_amd64.whl

Download URL buildingmodel-1.11.1-cp312-cp312-win_amd64.whl
Size 6.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
6d859cdbc86967c0f1b59ff418ecd0b06e164edda6f190c0670e8fbe67add202
BLAKE2b-256 checksum
How to use checksums
e4b1fbac624be29f048d8422174d3cbf393a0fcb56e485b4b2331104c8f08976
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5cec0d72a66232ddeb9e4f529c488962ae0e9cf5e344f356b9c643678bed8f13
BLAKE2b-256 checksum
How to use checksums
080df6e66a078d6914bbfe3180a29d03cf8ce319b8b510ce096811e7fc847c64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp311-cp311-win_amd64.whl

Download URL buildingmodel-1.11.1-cp311-cp311-win_amd64.whl
Size 6.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
c9052cc6aa09123e0846f3cf80db43ba2a75a5c25434499ff1dcb8f66e407ab7
BLAKE2b-256 checksum
How to use checksums
a96afde0d88235923dbc2d80badc037c85ad56c7f7747866a52f5bc6fac452af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
beef12a11487fa2d98bee80be1bb1eca3f22584f4af0b4bab70405ecd78dfc34
BLAKE2b-256 checksum
How to use checksums
d687b5132cad06152d5f76f03379f8df6aa18306ea6d743987c5faa5ca4ceb5c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp310-cp310-win_amd64.whl

Download URL buildingmodel-1.11.1-cp310-cp310-win_amd64.whl
Size 6.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e5cd5c6fad3c17168e8c85f78fd3e1c9288072d5e7a9c54c6dac08892577930c
BLAKE2b-256 checksum
How to use checksums
ff97c624bdaabf70f262d16628edc6f2b6f563c9bc45ee0dad1d933b7408052b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release files / buildingmodel-1.11.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.1-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ae0856d7e8af3a6169a72c57d634a532d8b838ff6d52f97249e007070c7f7814
BLAKE2b-256 checksum
How to use checksums
b1008f44b93021b1a8578e3b5ad8b7708c86f27900cb3f06f338b11a7602393f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.14

Release history Release notifications | RSS feed

This release

1.11.1 This release

9 release files

1.11.0

9 release files

1.10.1

9 release files

1.9.0

9 release files

1.8.0

9 release files

1.7.0

9 release files

1.6.0

9 release files

1.5.0

9 release files

1.4.0

9 release files

1.3.0

9 release files

1.2.0

9 release files

1.1.0

9 release files

1.0.7

9 release files

1.0.6

9 release files

1.0.5

9 release files

1.0.4

9 release files

1.0.3

5 release files

1.0.2

5 release files

1.0.1

5 release files

1.0.0

5 release 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