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.9.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.9.0-cp313-cp313-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.13Windows x86-64

buildingmodel-1.9.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.9.0-cp312-cp312-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.12Windows x86-64

buildingmodel-1.9.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.9.0-cp311-cp311-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.11Windows x86-64

buildingmodel-1.9.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.9.0-cp310-cp310-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.9.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 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.9.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.9.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.9.0.tar.gz
Algorithm Hash digest
SHA256 c4bccf48fec4ac5e1f03fd7d034668e1e55673bbec72358411adc0c50328e51f
MD5 8af90a07d93f02f50ee959bace97c11b
BLAKE2b-256 6f4c48be311bb7a051b5f28633c6ef6d0e4527f05dbc4de394ec6cde3527b286

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.9.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2ecd749dc8344cd76981754053a724ede932acb09e28f47f9e81be40a468a737
MD5 da2dc5b5623e987ada2ef9a550ed6f69
BLAKE2b-256 b98bc77d8a60a22d9531138b18ce7cd238a74d59677cfaab3ff04ec175592484

See more details on using hashes here.

File details

Details for the file buildingmodel-1.9.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.9.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cabfbe21d9bf482c1f9d7e22cca9e622e51c98143d549f0f7196160d5cc2fc91
MD5 5386c20691221cd34d2530b60c69a851
BLAKE2b-256 36d16bf610320f687b3605992dde4e91f5f689637f6647f2b9c1d1894365b28b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.9.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 926471474287a01a7213c9b0098b94fbc768cbb71eb5f1c62c0f5d21c7e60742
MD5 a6b65a8b0a1f10e8a92e3d5e260bdc47
BLAKE2b-256 7a080e2760d68597d02a1c881d1d940a1e91c2742c6d9be140c1a3ca80951403

See more details on using hashes here.

File details

Details for the file buildingmodel-1.9.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.9.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bebe27ef38f6f7a8606150d1017f899019b791c1bf26966bcaeedd8573931a49
MD5 761f6e5bd2f2327dd85420963bdcfac4
BLAKE2b-256 31204b8610711f4b51fbb9b0fbb24d30e1c61abe3e8f5e290b8f5ded57c37540

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.9.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 91f75a59fa4485eeed6d112f5fe06d3f3533732ef2206c5a1c2d02e741c89d1d
MD5 5cc9e14a952d273c2b29a6021d8162a3
BLAKE2b-256 db2f9b63bb6bf72c2703d8be3c004844a4e3900376d66edb5cf06eeea450e383

See more details on using hashes here.

File details

Details for the file buildingmodel-1.9.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.9.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fae0ccf2422eaaa459814e0750aeec6d0d02b3630251c99683cd71c26213ca73
MD5 0b61940bfb9b05b96a6e442bd544cc6b
BLAKE2b-256 eb32a3b018896fae907dfbc34377c2c84f61efb81f8ffe36cff8cee9f00bb304

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.9.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b354a5cb02878ee7c194bab7bbd6c6de7f75e36faabcdaa5e8081d4142b3cb21
MD5 78bfbcdb0e46c794efa32f2c6c91d63a
BLAKE2b-256 1b5aa54f8804a456155e51904dae64a5b1309b3d1322b9adf4d503ba2a8dee0f

See more details on using hashes here.

File details

Details for the file buildingmodel-1.9.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.9.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 747d3b3a75e8c4442964c1d3453f7a46cc5552569c42da640935656ac77b28b7
MD5 8e1f9b23268a0e9d60e6546b0f5f4b7d
BLAKE2b-256 dba8c273b653599bc9e563ef87f8abced02fcecac5211f508239318dde9dc9a4

See more details on using hashes here.

Release history Release notifications | RSS feed

1.10.0

9 files

This release

1.9.0 This release

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

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