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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.11Windows x86-64

buildingmodel-1.3.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.3.0-cp310-cp310-win_amd64.whl (6.3 MB view details)

Uploaded CPython 3.10Windows x86-64

buildingmodel-1.3.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.3.0.tar.gz.

File metadata

  • Download URL: buildingmodel-1.3.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.3.0.tar.gz
Algorithm Hash digest
SHA256 9f42d6716d44b734c5451de19ee5cee8b5118eba127deccfa25d6acb1f3ca8ca
MD5 610e2af7b63890efc71d106dc9954d71
BLAKE2b-256 cc006b3f5d29a7b5aabc0e7f3489bf278eb0671b067bc49c8dc093fbccbef452

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 80d81fda6f785d66c6ec3be155b3dbb7573d5c0dd6d6cfb62f32ac22022dba23
MD5 c9a0bfd74ad8ce75f6cc9661c0547080
BLAKE2b-256 f17cb74b079ef4a079447d5a0fae654010573349565155d4090e3b38ab96f1ad

See more details on using hashes here.

File details

Details for the file buildingmodel-1.3.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.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 39b4cd141a480e519d7618d0f4d30db1bb6a980984d0bf0ea03c756996009cd8
MD5 068a29c543087acdc33b338539daf6b3
BLAKE2b-256 6c2245b370eb07b9c37b86cc785bd901b08b97d5f95372897ec907f07df2bb8d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.3.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 23d77a1f50e617289d5911b0bf13412736fd24077b952e98cc0123323f515806
MD5 6395ad5ec7b97153288c98fa019c9b5c
BLAKE2b-256 e7f4aeedf59d6bad599133851641837ab0d50781fb9aa48a7d36793e7b0ea4cd

See more details on using hashes here.

File details

Details for the file buildingmodel-1.3.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.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 88da199822ab34ec1aa2f57c192872a154e5759cab4323f74f3c368faaa496b5
MD5 f469c7ee50bb121bc350a2322133e60c
BLAKE2b-256 aabe41b2b03e2ba4a4e095e6fc795d3e9271e7d738028130a7ac0485a6157b63

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.3.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ef97716dd7391f0385277f00e3f29171fcf5a32ee3082ead8038425678394086
MD5 6266731f7389555865a4718bf8953aeb
BLAKE2b-256 8461eb7d26fc84375b263d980f7b0c3570bd507b6ffac8afee9ba604d3d7c3de

See more details on using hashes here.

File details

Details for the file buildingmodel-1.3.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.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4e0750ac9bc69f158ac87c41cca047af059560c8883f50c1e5940fe17e9c48fb
MD5 1f2b72880ab9819b1076c6f6d33547b1
BLAKE2b-256 0d0f8b9ae6e0e948bde22afb4ac76490916476bfc9c20944920d2430d0697f71

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for buildingmodel-1.3.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 6879286a4c88d742f21e0e23a40b23fc09e71b165d80b9b4b01c2ae7dc5e5cb2
MD5 6a0963683ac2876ecdeeb0f7315c1a66
BLAKE2b-256 e377f9036bd1e7ecbe68e1dcd92d2170e904702864465617c9d47a45fbb9149e

See more details on using hashes here.

File details

Details for the file buildingmodel-1.3.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.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8a0004b94a142fc66c457a4c1029fda627b28ecb66178bc2d52263acfdc4fa06
MD5 7011efc90022e71db2f96aaf995593d3
BLAKE2b-256 a12ccdc1b8ed621b71a654df4b14e341ef9714366cad866be3b5a5c5383c5884

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

This release

1.3.0 This release

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