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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.5.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.5.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.5.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.5.0.tar.gz
Algorithm Hash digest
SHA256 034d85a93892c0a8d1c12389f0fe1cc674fa0367f9a4f913bfcaacb5c87f47cd
MD5 ffe557ae51704b3e79502afcffb72d10
BLAKE2b-256 88efbc401d21fbdc07cfd8e5ebcecbe002d37757b25b428f3aa51aac2a41b19b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.5.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 157b07cf6c9c443f0af65a11efb2c4277e9f9930ecc8b0d11c69421df9084ac4
MD5 d0eda81d7a0f2778efd4f8c07a20a9c2
BLAKE2b-256 390fb9a5a887dc59058e953c87ac88183e948e78c3d7daf6db474edf40a8641c

See more details on using hashes here.

File details

Details for the file buildingmodel-1.5.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.5.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f20dcbd3188f3bc3df037d081d49d63dcfc8213acb222b67abe410c6dfeb2818
MD5 2a008ed5a4377f1bb926e78f745a5c39
BLAKE2b-256 c170c7f4ca625658c314bcf44579f6e3536057c459744fd6edc330ecb9642714

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.5.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 21b566e2a8912c32a933b989297eca45b75a62a696a52d6eacf789e6803904d2
MD5 1a85f9b44546430eae7d6e47f3fdab8d
BLAKE2b-256 efb3c1c66a60b5179ded4ffa6dbaae95b78f397be633e8356970b78a7e120d1a

See more details on using hashes here.

File details

Details for the file buildingmodel-1.5.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.5.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3d64ac1bdc9aa087f4e6e716615305618e1ae1b9c9a5129565bbb3a7275a1582
MD5 2229c9ba70fb60b7cc2607882cb70157
BLAKE2b-256 998cfc8589edeae627e6e670e307c9672c3a8998d47c605a2ecf91ca59b4b2b3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.5.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d685bfa553a0039843826f5dd453c546adc880483498056fa0a9477951df8636
MD5 8592b56380fb800eaf07011ad2352133
BLAKE2b-256 897e0719ab2058399b2446827ab73b46065e1e2f9b48d56ee1df44d7c672435b

See more details on using hashes here.

File details

Details for the file buildingmodel-1.5.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.5.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 03ac3d3479f2917751ad050b70c6264f76513145b6ed7b6293aff9fd79c76ce2
MD5 f0f43208fd4fec9e8246c65fda75456d
BLAKE2b-256 a38a225b2accfa37f6e111ac1c714f38d117737c80cb7b158def93b5b6d5e35e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.5.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 b3158f86b7f4faac9324c21d839e725b68cd010cafb315d1b984a79985e5cfbf
MD5 520a8b8681a26dd6a3ab7c25377480b7
BLAKE2b-256 af5392253e34d168b305ef7c1a92883244677c954032ef0a020ace056f0cfe20

See more details on using hashes here.

File details

Details for the file buildingmodel-1.5.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.5.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f5bd55dc3b841211d81ec2ea87584d656de1da7a827ffc29030a023392db1c94
MD5 83a2a1d8273bfd32f74cb0499f59288e
BLAKE2b-256 215b1ab8cc3f26636f87954ad2ff1d14e2c06c962c68955dd2fcbdf87088df78

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

This release

1.5.0 This release

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