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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.6.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.6.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.6.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.6.0.tar.gz
Algorithm Hash digest
SHA256 184034400189ac70da80a773aaf4d703e7c185a9ed77cd00b39007b14e58ed6b
MD5 695d40ed32580307a9f24dca119ba0c7
BLAKE2b-256 e876d31c7f3ff7cc98f5e16b1d9df8227559061fc3c0372780f01fe745ee5da9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.6.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 067537f9aabd1a756ed8f419020ea21c19e82cd48f165501fc37d9b4f6ce33d3
MD5 d35512127d05c5eb85e9e2b8208e711e
BLAKE2b-256 3e8493190614e0371be20403759139903451db3a531e9de643fff89cfb4293db

See more details on using hashes here.

File details

Details for the file buildingmodel-1.6.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.6.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fd2f52f700119f9f2e60b656c5b87b91bc0e4e5c71b98553a252bd3e6f0b4afb
MD5 be7a32e84f1036c06b6bddf9c0aee6fa
BLAKE2b-256 c316f45e2a8d349310087bd140a195b9d5baf3c875fda4c77f1cc112961b3bbe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.6.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 14532f72669ea8c6a1d00e2cfb19f3b6103f3811680851d4c26bf57294a22b36
MD5 73d0a64c79e26e9c7e88d96cc5babb77
BLAKE2b-256 f8fbd9375191f443cd1fb0749ba16342239cdb2f3420e9694b3aeec9dc9d3a21

See more details on using hashes here.

File details

Details for the file buildingmodel-1.6.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.6.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 79980070c395eb7e16657a797059b6428cfcc520a28fb12b81721d37014bd63b
MD5 aa67f085e3f04f8d5fd2a5b4cbc229bf
BLAKE2b-256 e10e57d01e5164080b9cf99dec32887c51554e24de20cedb847abdd3cc515429

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.6.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 693c92ba38163174b883f05f5f70f2ee065c428f8bfb92b941c1dacf8a251471
MD5 e684db842115a45020e0c625911ec98c
BLAKE2b-256 ea6bc8c26104c294e3841c88200631a4fa7544f515935f383eb82c91bed4c51f

See more details on using hashes here.

File details

Details for the file buildingmodel-1.6.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.6.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f8c517c5f987aae5b757206ffd095174aac3ac45d15bd16ee5c6c23d611f2930
MD5 8cc0e6b0f8f5da8aca1a33f8d0500b8e
BLAKE2b-256 99a62869a752f4eac093f5fa813dae4a8df88db80b38e54bae553b6205a175d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.6.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 438c5358f4c8960521891c548253db3c6747c207befd5f541d541c25487cea2c
MD5 088d311ac3c53ebea8579648169edca0
BLAKE2b-256 ba27531ca45f306e4b28ae708c021116793faca15129bc86bff87e7552de818c

See more details on using hashes here.

File details

Details for the file buildingmodel-1.6.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.6.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 69b941864bbccbe1a18338e9e560ad0250d062b0bfd934bfc2343fbda3c610c7
MD5 1df34099687299e589b177949c896dbb
BLAKE2b-256 5986625b469fbcec65ac70b8163047506f36c87c32a0242951753aca2731ac01

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

This release

1.6.0 This release

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