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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

buildingmodel-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

buildingmodel-1.4.0-cp311-cp311-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.4.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.4.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.4.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.4.0.tar.gz
Algorithm Hash digest
SHA256 197e3855d51bbcca3ed34d2a1a28271724a50eb16112d2da51b37679bf288cea
MD5 18e061186fea791398e3905aae9a1663
BLAKE2b-256 5901b2d3591aacd53f2f3a1f9cc463e0b7a8e273050691d9086592f2356182ea

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 eb51d76e1a6bc567e5304c304a81bb43e2cb4d3fe63855eaf4ba8a189c2227b6
MD5 974f78d980593a0203b7830403a0ee08
BLAKE2b-256 9ad51595e258a6d7ec704f850f71fffa54c085fdf098e9a5662b869a30027b8e

See more details on using hashes here.

File details

Details for the file buildingmodel-1.4.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.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 cb948267ea62060694feecd4407df1e459912b669985f5118e9bfb5b2b03c17d
MD5 1dc48089b184726c4945cd1010fdfa98
BLAKE2b-256 30308e89eb321a7a6f1cb4510a6704bda3b36132e5cfb8aacd6c98b5ff83a3a4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e5773439f1a1f5f85df5b8755f6edce2c2eac5681b4765329fd90e3ad97fd31d
MD5 5acc035caa458cf5a2b63d3b39a1fafd
BLAKE2b-256 87aac2c4c296b882f065a22cebb00eadef07b69c8aa34a65be641fa4603bcf79

See more details on using hashes here.

File details

Details for the file buildingmodel-1.4.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.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 290aaa2f46d0880eebac7a530ae09e2899f1b20e1b6cec33f37a10055cb8f6dd
MD5 343988fb61af97347002c3422b12fd45
BLAKE2b-256 f73e91b47015cc09c3911b32ed3898608b14763f4889898ed760ec1e3a8745d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 8d1d8911b88c91b85e1df42121c8477e699ef731a2d1759901b4afcea87a264c
MD5 38a3049cdbdb1478727b88e915bae2be
BLAKE2b-256 57ff4bbf28a5e4c22d6be696feb466c34accc7c3108e1a814109e465565e23d2

See more details on using hashes here.

File details

Details for the file buildingmodel-1.4.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.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e37c3c885d61d05c60481efa0ee3c174ed03e15f2a11ef11b96a75bf082baec6
MD5 199e6fc79a9c599fdc677b5acf426655
BLAKE2b-256 d12f227cc65b438071408c10781903015aaaf7937621ce4692176afa393e6937

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.4.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5d7e8e7d9eb0960b8e0bf326ece55bdf93a48b8115d767541a4db1de7b35fcc3
MD5 3d2df48ce321b4e4e4cbb80a90ae63c5
BLAKE2b-256 4c348f3c99386d69079561bc16ea61de699fe151ee3fc67618b8375b4d7d4b32

See more details on using hashes here.

File details

Details for the file buildingmodel-1.4.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.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7a00e1b30191cabe71f069745e1211457ab17c2a29bdba2fc6fcd21255852ed1
MD5 4ff22bae16cfd0f7954bc6080ad30a18
BLAKE2b-256 46f1f51af29a034a2c372b311669b47df51c2f6c585d8b456da8b7a62e1fd9a3

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

1.5.0

9 files

This release

1.4.0 This release

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