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

Uploaded CPython 3.13Windows x86-64

buildingmodel-1.10.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 MB view details)

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

buildingmodel-1.10.0-cp312-cp312-win_amd64.whl (6.4 MB view details)

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.10.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (6.9 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.10.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.10.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.10.0.tar.gz
Algorithm Hash digest
SHA256 4615d041900b6dc3e8e94ea66a2a20bf95b2e28ea052290d007f90f1c549006e
MD5 b031cda88052930630e8ccf301d62e5b
BLAKE2b-256 368f2608db5872960ff86a6e47a8ba57d6b070d7a7e9d26d08990a0369352130

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.10.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b881851a116cbe44bdc8f78d841e3884015d2734aa38fc8481d1846ad813883a
MD5 0f4631a265f7393993df07190f00d80c
BLAKE2b-256 db21b4393757d0e3ab1e22946bd273755862b50dd0ebff859ac42cf62b225933

See more details on using hashes here.

File details

Details for the file buildingmodel-1.10.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.10.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 efe25fdabe47f5071e635880a4af23b7fb1f192ef7769e0feb09dc06f6c4fcb5
MD5 e215bdb8b659de1a305ceda1b93ff908
BLAKE2b-256 d18cff07804944c1fa977c678a7bde6cff353ae9f2547fbf7f1f0c9577489a37

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.10.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 54111f22ad10b5d0f16a6bd9d0015cae06509b56ae44942214d733b3ba9776cb
MD5 f979c830869b5f67e7d3e1b11785d42f
BLAKE2b-256 6f0ddf437eac997cd0c9f28bf956566486e9189a859e6cd9b10f153677da45b1

See more details on using hashes here.

File details

Details for the file buildingmodel-1.10.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.10.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 34692fa9392019b31366621c0fa37d5f8e189fffba61949b33c56f64d55df43e
MD5 4981e5a63c4eb1bb4cf4f13367d5b566
BLAKE2b-256 f723a681aa5c2d78b1bd7d832d586eccf96be110c75c9f075b79448b7efab158

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.10.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5c982b341a5a8423f7b552e1c1b5bf4fe666e6679a0b277557b6526f5831362d
MD5 e85f30bcf27d7ddbc9d8a31c6e1d0ee0
BLAKE2b-256 2cacfbd754fed7f394cf053c848843062f147628e81f16f5b2cb99603b66031d

See more details on using hashes here.

File details

Details for the file buildingmodel-1.10.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.10.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 43dca19ad0ee4cce459b04120f1c53d19e25ada6ac07f84bdbb836ef018ac149
MD5 d8bdb4a5433f255fbff35daa4694cec6
BLAKE2b-256 f3f52b6b31a24b55a48e3f5775607d5960289dd26bb35016280cb09f2e41e1e3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.10.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f18b501488cccb64ce7001ff1ed3eb85dd437c7d7cab61c008490111949ba16e
MD5 5744dd63ce0a437478426031095b9c75
BLAKE2b-256 d8cb42cc43802cb97464c80ea6e94e4ef30365433352b43730d9f29afb65d87b

See more details on using hashes here.

File details

Details for the file buildingmodel-1.10.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.10.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 bfbec2bfe2ec99645a44b23177906fe85309f4661241541c2ce79896bde4bd42
MD5 515170e9b7c7d6ec4cf0bf066aee1e8c
BLAKE2b-256 f9bef8824488ca2081d7dab40b565b842e3952199631c5af007dcff00f682a7d

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.10.0 This release

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

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