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.1.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.1.0-cp313-cp313-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.13Windows x86-64

buildingmodel-1.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

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

buildingmodel-1.1.0-cp312-cp312-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.12Windows x86-64

buildingmodel-1.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

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

buildingmodel-1.1.0-cp311-cp311-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.11Windows x86-64

buildingmodel-1.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

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

buildingmodel-1.1.0-cp310-cp310-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.1.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.1.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.1.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.13

File hashes

Hashes for buildingmodel-1.1.0.tar.gz
Algorithm Hash digest
SHA256 e25cd241dac32170e08702f35c8540bcf610dbe346859449350a0cb9d1f15cde
MD5 c7c0edc70ae1788da8ad1d2a75b84ae5
BLAKE2b-256 48b4bfb1f6569cf364a3f816e12b0df891e237eb9da9ad5223bcfe1741c402a2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.1.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 e2257037f90aa88ed22f092d78e4acd4365e792b013c3edd06242f91d7c8be4f
MD5 ff4ade287f9203841c086acf6717a5a4
BLAKE2b-256 c3f6b8a20af988af1a840e25b2196fc579a9f71e7823c7f63fdde128d1cb34eb

See more details on using hashes here.

File details

Details for the file buildingmodel-1.1.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.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bd22d15367d0bb0b268dc0d7a058bde677db38ca648fcc7be0a4755167d5fff1
MD5 90b0bad97714cb7241e982c2c5d41a38
BLAKE2b-256 9f23cbacd05562fa4c0e30cb55f0c64c88e1e30c2e645a3f3b3eaea4a46d6507

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.1.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 3032adbe24bfa88f123c7fa9e77626f2f84815a3dcd1dbe2265ffc9d9dcd7d24
MD5 b949da5a7252bf7261db2c3445457707
BLAKE2b-256 195528ddca51b8dfa5a6d80e51cf472f742b10f939d50ddfcfc87fc76dd1e145

See more details on using hashes here.

File details

Details for the file buildingmodel-1.1.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.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bad0934c050d8ce0a5e03065dd9c7c88b09fa52327512fe43e882273091d50f9
MD5 863d6568ac2c4dc8c6f49a1a55f24ad7
BLAKE2b-256 02912b7a6f7d48f6f74f7eda923b726b80dc966b7281cd0453a641ca7da167a7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.1.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 db08644de917a74c8813d95be103c98a8aabb878c4fb0a3755ab1ca2acc7dc7a
MD5 b2cd8ab86de8fbde9e9944d789e00397
BLAKE2b-256 38d13aa9f4392c744075b27444df39d2109f2d072748cb4e836680d8505a2617

See more details on using hashes here.

File details

Details for the file buildingmodel-1.1.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.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 70683a21c874d2cabb922e455b19be376b59d1c96353f612c1c0dd0537c25c48
MD5 0715477ac22be0de64c1f9adbbbbeb90
BLAKE2b-256 e14e44c566033694bd61c862f06d6ac6d9ef8bdcb3c2eeed6eccf35db43ad0b4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.1.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f814a004eb0021f1ca2e498ffa0f2de151ee6fbffc3b0348a2990a3f6de166ea
MD5 701e1742ea9641e57499b12ca841784f
BLAKE2b-256 99f6b46ccb744f3bfd704a441516be78f5915749cda5f1105148e7f9600ef828

See more details on using hashes here.

File details

Details for the file buildingmodel-1.1.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.1.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0c0d9d7fd1a2873633a9fe7e2c088aa80a7d7d7e220688fbeff016f9c65da70d
MD5 f3b8044a7cdb14437b48c12992871a12
BLAKE2b-256 2dcdd0e68f820d879f32285c5d5889ce1c87cdff0f658d4794c67c22edef71e4

See more details on using hashes here.

Release history Release notifications | RSS feed

1.10.0

9 files

1.9.0

9 files

1.8.0

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

This release

1.1.0 This release

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