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
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 :
- Antoine Rogeau
- Robin Girard -- gitHub LinkedIn google Scholar
- Seddik Yassine Abdelouadoud
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
197e3855d51bbcca3ed34d2a1a28271724a50eb16112d2da51b37679bf288cea
|
|
| MD5 |
18e061186fea791398e3905aae9a1663
|
|
| BLAKE2b-256 |
5901b2d3591aacd53f2f3a1f9cc463e0b7a8e273050691d9086592f2356182ea
|
File details
Details for the file buildingmodel-1.4.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: buildingmodel-1.4.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 6.4 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb51d76e1a6bc567e5304c304a81bb43e2cb4d3fe63855eaf4ba8a189c2227b6
|
|
| MD5 |
974f78d980593a0203b7830403a0ee08
|
|
| BLAKE2b-256 |
9ad51595e258a6d7ec704f850f71fffa54c085fdf098e9a5662b869a30027b8e
|
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
- Download URL: buildingmodel-1.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 6.8 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb948267ea62060694feecd4407df1e459912b669985f5118e9bfb5b2b03c17d
|
|
| MD5 |
1dc48089b184726c4945cd1010fdfa98
|
|
| BLAKE2b-256 |
30308e89eb321a7a6f1cb4510a6704bda3b36132e5cfb8aacd6c98b5ff83a3a4
|
File details
Details for the file buildingmodel-1.4.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: buildingmodel-1.4.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 6.4 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e5773439f1a1f5f85df5b8755f6edce2c2eac5681b4765329fd90e3ad97fd31d
|
|
| MD5 |
5acc035caa458cf5a2b63d3b39a1fafd
|
|
| BLAKE2b-256 |
87aac2c4c296b882f065a22cebb00eadef07b69c8aa34a65be641fa4603bcf79
|
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
- Download URL: buildingmodel-1.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 6.8 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
290aaa2f46d0880eebac7a530ae09e2899f1b20e1b6cec33f37a10055cb8f6dd
|
|
| MD5 |
343988fb61af97347002c3422b12fd45
|
|
| BLAKE2b-256 |
f73e91b47015cc09c3911b32ed3898608b14763f4889898ed760ec1e3a8745d8
|
File details
Details for the file buildingmodel-1.4.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: buildingmodel-1.4.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 6.4 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d1d8911b88c91b85e1df42121c8477e699ef731a2d1759901b4afcea87a264c
|
|
| MD5 |
38a3049cdbdb1478727b88e915bae2be
|
|
| BLAKE2b-256 |
57ff4bbf28a5e4c22d6be696feb466c34accc7c3108e1a814109e465565e23d2
|
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
- Download URL: buildingmodel-1.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 6.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e37c3c885d61d05c60481efa0ee3c174ed03e15f2a11ef11b96a75bf082baec6
|
|
| MD5 |
199e6fc79a9c599fdc677b5acf426655
|
|
| BLAKE2b-256 |
d12f227cc65b438071408c10781903015aaaf7937621ce4692176afa393e6937
|
File details
Details for the file buildingmodel-1.4.0-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: buildingmodel-1.4.0-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 6.4 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d7e8e7d9eb0960b8e0bf326ece55bdf93a48b8115d767541a4db1de7b35fcc3
|
|
| MD5 |
3d2df48ce321b4e4e4cbb80a90ae63c5
|
|
| BLAKE2b-256 |
4c348f3c99386d69079561bc16ea61de699fe151ee3fc67618b8375b4d7d4b32
|
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
- Download URL: buildingmodel-1.4.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 6.8 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a00e1b30191cabe71f069745e1211457ab17c2a29bdba2fc6fcd21255852ed1
|
|
| MD5 |
4ff22bae16cfd0f7954bc6080ad30a18
|
|
| BLAKE2b-256 |
46f1f51af29a034a2c372b311669b47df51c2f6c585d8b456da8b7a62e1fd9a3
|