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 :

Metadata

Release files for buildingmodel 1.11.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for buildingmodel 1.11.2
File Size Uploaded
buildingmodel-1.11.2.tar.gz 6.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for buildingmodel 1.11.2
File
buildingmodel-1.11.2-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
buildingmodel-1.11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
buildingmodel-1.11.2-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
buildingmodel-1.11.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details
buildingmodel-1.11.2-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
buildingmodel-1.11.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details
buildingmodel-1.11.2-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
buildingmodel-1.11.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details

Total release size: 59.5 MB

Release files / buildingmodel-1.11.2.tar.gz

Download URL buildingmodel-1.11.2.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
b07e01be4e4895fbd5b87924917ca0a5a2a766d13a9c8cf409cb196e5467fff7
BLAKE2b-256 checksum
How to use checksums
4cad8b0eee012683da94806b420907d202c1d0c7570b72b7b1712dab9d701996
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp313-cp313-win_amd64.whl

Download URL buildingmodel-1.11.2-cp313-cp313-win_amd64.whl
Size 6.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
5ea05002883723800e92ad5a9532a4bd934050bf3cb99f63ec9f00b40d25b032
BLAKE2b-256 checksum
How to use checksums
5ebe014463b67d7ed26c1cec0fe947eeb60b361349b42285ac8abf8ea728ada2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
aaa0e624b94bee81e0d5fd3942e1cb947ae68556b6b3e2d57fd766ea299c024c
BLAKE2b-256 checksum
How to use checksums
1900b2a4a5f3d57ce21e69d30a1e6e2d19375b40ccd088048badd3fb33979187
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp312-cp312-win_amd64.whl

Download URL buildingmodel-1.11.2-cp312-cp312-win_amd64.whl
Size 6.4 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
cd638f49053587e8d8298181a39160399ebde39be2a8ae551343c261c7920738
BLAKE2b-256 checksum
How to use checksums
106d00bfea13e3a8e2ba04969dd37e4b78b5e2b153baf8ae6c32b1990d84d6ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0ea889eb0299fec7812b822203824f22dcef3c3ffb369a85ff2a7e37b7a9a6c6
BLAKE2b-256 checksum
How to use checksums
6703c84bf9de8592943e457d14529dd6802805294e49ba23a391301aa7e01d26
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp311-cp311-win_amd64.whl

Download URL buildingmodel-1.11.2-cp311-cp311-win_amd64.whl
Size 6.4 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
16c7478b886b67ee6a418625fdcee72842d91dfd565722607f7767db34580e97
BLAKE2b-256 checksum
How to use checksums
f1ffc9f2a42c3e7266165dbe98cba07b9e1e3c491ec74e5b228e54baa1ab6a7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
49a20bd5b0482207debb764631683c5315bb8687f4d23b159633be11cb218ce4
BLAKE2b-256 checksum
How to use checksums
39600825c159b8f0f362557c7072fc21e17f23a580f72bd0217c6a0163543711
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp310-cp310-win_amd64.whl

Download URL buildingmodel-1.11.2-cp310-cp310-win_amd64.whl
Size 6.4 MB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
99b6de54425d87656bcaf0e21a7f513e7c68a1f49c6cabd9ee7577320c60a3a5
BLAKE2b-256 checksum
How to use checksums
ec3b6b3ec850e62f622d3768bc6526fde96c1b01ed0efea288418807067e5ac9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release files / buildingmodel-1.11.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL buildingmodel-1.11.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 6.9 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
41a8f1f03e7d043680c8d873a1c124688cf792e8aa4a59b6a9a852849af47ca0
BLAKE2b-256 checksum
How to use checksums
c1f5623955a2b028dba9c5014fb6009366a30fa9533e4cdf9c8e74cd93add756
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.15

Release history Release notifications | RSS feed

This release

1.11.2 This release

9 release files

1.11.1

9 release files

1.11.0

9 release files

1.10.1

9 release files

1.9.0

9 release files

1.8.0

9 release files

1.7.0

9 release files

1.6.0

9 release files

1.5.0

9 release files

1.4.0

9 release files

1.3.0

9 release files

1.2.0

9 release files

1.1.0

9 release files

1.0.7

9 release files

1.0.6

9 release files

1.0.5

9 release files

1.0.4

9 release files

1.0.3

5 release files

1.0.2

5 release files

1.0.1

5 release files

1.0.0

5 release 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