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.2.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.2.0-cp313-cp313-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.13Windows x86-64

buildingmodel-1.2.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.2.0-cp312-cp312-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.12Windows x86-64

buildingmodel-1.2.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.2.0-cp311-cp311-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.11Windows x86-64

buildingmodel-1.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.8 MB view details)

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

buildingmodel-1.2.0-cp310-cp310-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.2.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.2.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.2.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.13

File hashes

Hashes for buildingmodel-1.2.0.tar.gz
Algorithm Hash digest
SHA256 df479f1c5da75bd225770b010c874f0133abb5ce5d5c460f92ffe859564dd640
MD5 2facf663fb8ee0116b0c049be25f9ade
BLAKE2b-256 c521e7446e64b23be0105a81a2475a144207e0255489343306b934c43c1cc95b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 139e50ecb67c978742c09179ab7acc18105d4102f6c27921e764693cac6520ae
MD5 757337b478d8d0aa7f1aa4e981dd371e
BLAKE2b-256 a231e5ca3241cd435e21c92eae34db53ec5cfeec1c363f2058ba583f2d8840ee

See more details on using hashes here.

File details

Details for the file buildingmodel-1.2.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.2.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3af1743bd05a70713019a83edf63b8b1be00b526dfc00430010e762660c3dfec
MD5 4ed7afc1e3577de0aaf737543345e822
BLAKE2b-256 9a902fd605dda390774f7545976f5e7ce1fec4a98cbe54465b522302bce52f4c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b4b579ab65a3124cf704eb11f14e015ec576748e08a6bb2242ef9cd5aca901d4
MD5 52fd36deb2b57ebbc04b89cb2258d93a
BLAKE2b-256 47112a476d4a71cebae3ad2c528163adc7284f1eb38d015c1639fecf747872be

See more details on using hashes here.

File details

Details for the file buildingmodel-1.2.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.2.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d41ecc1d86e4ec44de733ac246a6623e1307fb5a3391b74a0055e0e4a62cf015
MD5 c007dbd93c9a7be93365f50766f6a531
BLAKE2b-256 4ff8f51ff00981fc6f8e7dc590d99b7fda585c728e6f59b835c5bfc6bd976387

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 27ba36104d60929c16a30babf9ccfb30525e5307de467b3054d16d961e55aeb5
MD5 0db86dfe13fa9575fdf30c330e37ae6b
BLAKE2b-256 9aeb4de6638a929289a94061ab1c1dcf8a63b5f2d5367decee4b05a77071e432

See more details on using hashes here.

File details

Details for the file buildingmodel-1.2.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.2.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 efb7057ce39bc7a4c691ee6179319504558143f078ed27cc43a467f07baade23
MD5 bb9ce9286edb90408948cd03f89f1ee5
BLAKE2b-256 1ed982f7270bf1f21c508844ca570c51709e0dc299958d9c29db4f17b6e2527a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 02d58b900dc55dd5e83bac15dcb1ef2233fd4f000b1be954ab84edf2a5d78ee7
MD5 f4820e963ebe144b30947c652174ab87
BLAKE2b-256 644002877f58fd5a5f14086a8318874f14d53e8a06f540289efa3decb864b169

See more details on using hashes here.

File details

Details for the file buildingmodel-1.2.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.2.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 da2d132d4c0b14569c76414eb1011584b7e80d21fcdb7fc0deaea9b625a82143
MD5 fef5b83a71bfc1d464ff70aefd5c5937
BLAKE2b-256 e11abeec1e30182938f0db17ff5d4425060673d6dff19e17ebe054110d569265

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

1.4.0

9 files

1.3.0

9 files

This release

1.2.0 This release

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