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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.7.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.7.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.7.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.7.0.tar.gz
Algorithm Hash digest
SHA256 c315e4fbdd65ec3349e21ecbf167510c75c6af7abe2cad47136ba16921900236
MD5 60d7d8337f2a03720ef46dcf27833215
BLAKE2b-256 d46ac3c6eef3bdc0eda82003bf6a35349599386d0bfd9045e8b79a8abd3dc5bb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.7.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3233911b867e2eedb936b3d1df5edf0a216244649c3c9392e82f17a35f2f4c60
MD5 98b8b98d7b96f1faf12f853f9a717e6a
BLAKE2b-256 517a083a4e389f7d4c8f9c3944f11ca6e082de41260388eb9ac6f38418aad18d

See more details on using hashes here.

File details

Details for the file buildingmodel-1.7.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.7.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a7339082b54c277278ff5055a55036f1247663692ddf2cfeb2493c51b7631a7c
MD5 5c274a1ed653d64e7d4768a56090e168
BLAKE2b-256 28eb8499f39b10329114e39bffddde06a84ed15372f09efa802a7f5de0bf0f2c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.7.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b3df07b5d58f63046f28af9cb0f25a704a1571dd9740e62c29cfe6addcbd54c9
MD5 381880520d32152db62714d9121825d3
BLAKE2b-256 9bddb9d66d4c2efce2ea6880a82a834a5ce64bfc5712bd612140029fef27a725

See more details on using hashes here.

File details

Details for the file buildingmodel-1.7.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.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 37f9fc3701c87d5cc39b264dae5952c4642a778ab69dbbe167bd786722a629a8
MD5 cf4081ea1f9579d0b73af0f9cf0b43f3
BLAKE2b-256 47240aaa4bc3ee14547f66b8097d4d4fa6a480a2613a63ffdccf9c8bb9abf5b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.7.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 671963f7220b076ce23ff310831ea24babec0d5546c0c6fc85d060fbf8a9ed1e
MD5 9b53a494c7edbbdecd89ad822d0af23c
BLAKE2b-256 8f7f4fbe67e25497929b5310ca2ad3834bb916758dddccbb57ecfa177b06bd3c

See more details on using hashes here.

File details

Details for the file buildingmodel-1.7.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.7.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 756c2e9a9b8ecd7635a91528d618d28a8681a2713465760d7158dcabc1b605f3
MD5 64922775acef2d5beef2b1722510b05a
BLAKE2b-256 b11c9fe1614063c96637d58ed57dfd57d6d6856a52e208e1faaabfb7bdeebdd5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.7.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 168867993a2af4dd8152f7e2da16956bce5e1e137831ebf46bce477261095fd5
MD5 2183b6309481e5163f5f6ea79dadb98b
BLAKE2b-256 c2fe1f0eed0746c5704785ea8a5981fa88bc45c27ab40371d4e3578d0fb72231

See more details on using hashes here.

File details

Details for the file buildingmodel-1.7.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.7.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 265419f4f9ca19b6f31050f660ab8463cd934a47d48bb456be73257400b9a566
MD5 84d7c9fa74c2ced93e8bef6c79f424d9
BLAKE2b-256 c1ca9443ce0742bdd312496eb959b932884921396d75d2f71f16c9f8d60e3ad6

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

This release

1.7.0 This release

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