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.0

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.0
File Size Uploaded
buildingmodel-1.11.0.tar.gz 6.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for buildingmodel 1.11.0
File
buildingmodel-1.11.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
buildingmodel-1.11.0-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.17+ x86-64, Linux glibc 2.28+ x86-64 Details
buildingmodel-1.11.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
buildingmodel-1.11.0-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.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
buildingmodel-1.11.0-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.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
buildingmodel-1.11.0-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.28+ x86-64, Linux glibc 2.17+ x86-64 Details

Total release size: 59.4 MB

Release files / buildingmodel-1.11.0.tar.gz

Download URL buildingmodel-1.11.0.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
d116c0be3b2b2c5e01e82a96ba5e45e85fd130ac2d0b6422b80e18130bebfe58
BLAKE2b-256 checksum
How to use checksums
08f513c6ffc27b6e9889f4e2a4d9c31e536784c5a5daf746c8f75c15ecbf0ea0
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.0-cp313-cp313-win_amd64.whl

Download URL buildingmodel-1.11.0-cp313-cp313-win_amd64.whl
Size 6.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
7b1c09a6a37452cd2dfc59198ec30b17600503f28e6baf99df231171af3cb4a1
BLAKE2b-256 checksum
How to use checksums
65ed7250b5c42e88417cf21e11793f042865c921e8c3e80d8de9eb087cbb5ddc
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.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.0-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
7f2863afef5ac8712dc3acab0301fc0a93e68551aed2c4ac86083f3b07324205
BLAKE2b-256 checksum
How to use checksums
09b36d39721839a7c7c5b22e88ec6ea61b5b8cb4a0b88f1ec3567b6cb876181a
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.0-cp312-cp312-win_amd64.whl

Download URL buildingmodel-1.11.0-cp312-cp312-win_amd64.whl
Size 6.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cb078e0ec668705da9693e9aa30651380cffd5ceb30ed04079112a197e8af3fa
BLAKE2b-256 checksum
How to use checksums
2d5de66ccb6eeaef7363868d43978d5a155b268f33826c2b952133f62d8aa025
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.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.0-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
b647ea310e53bea9f5e1f868b0429e2c49dbfaa793647779d3bfd7a6e56b4448
BLAKE2b-256 checksum
How to use checksums
a9547e080be26e00949d5a116f52a9ca5805ffd687756b249588740a33a5ced3
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.0-cp311-cp311-win_amd64.whl

Download URL buildingmodel-1.11.0-cp311-cp311-win_amd64.whl
Size 6.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
2dcde802a03b42eb6364cfe085b66e3544647c0f151709bacc7e26a61b755bd2
BLAKE2b-256 checksum
How to use checksums
81a4e5f87513ecd26e7d1c9a037c52329c1dfaba4b157dd54f2c7ad6084fc4dc
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.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.0-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
7aac8e16a90d01af16f1311a8c99ba776b18a098419d0a5e9371f88037c11073
BLAKE2b-256 checksum
How to use checksums
c0076a1ed44ac7bd00e7bb780b47c53296a5b9296e57db63e313a1ce5babd50b
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.0-cp310-cp310-win_amd64.whl

Download URL buildingmodel-1.11.0-cp310-cp310-win_amd64.whl
Size 6.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
b6fda0870926b2c372c9f28ee07917e2af6682788424e2cec6ad6d43b04f10ae
BLAKE2b-256 checksum
How to use checksums
2dbc44c872dbf054dee68c52ca2a4d61581cab6bf2392bb03b359324f99aae03
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.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.0-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
1e2eb87f8745b844fb295dcd42a48c64bd7580189019b7d210b81c9b77368284
BLAKE2b-256 checksum
How to use checksums
bec2ac71b05da7f73c036df7a3563cb95a92d3d9e4fbb63771b1b69bc29295ca
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

1.11.1

9 release files

This release

1.11.0 This release

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