Skip to main content

District-level energy hourly simulation of buildings

Project description

Building_eload

Version: 0.4.0

Python Version Conda Status

District-level building energy simulation at hourly resolution.

This model was first presented in the research article : https://doi.org/10.1016/j.enbuild.2026.117409

Overview

building_eload runs a two-stage pipeline:

  1. Static simulation: annual building-level energy estimates and calibration.
  2. Dynamic simulation: hourly electricity load profiles from static outputs.

Main dependency:

  • buildingmodel (for static building physics simulation)

Installation

git clone https://git.persee.minesparis.psl.eu/planeterr/building_eload.git
cd building_eload
pip install -e .

If needed by your workflow, also install buildingmodel in editable mode.

Data Paths Exposed by the Package

Defined in building_eload/__init__.py:

  • data_path["data"]
  • data_path["bdtopo"]
  • data_path["elmas"]
  • data_path["simulation"]
  • data_path["activity_calendar"]
  • data_path["validation"]
  • data_path["climate"]
  • data_path["representative_districts"]
  • plot_path
  • download_link

Current Core API

Static simulation (building_eload.core.static_simulation)

Main classes:

  • StaticParameters
  • StaticSimulation
  • StaticResults
  • BuildingModelResults
  • StaticProcessor

Primary methods used by users:

  • StaticSimulation.run()
  • StaticSimulation.run_energy_demand()
  • StaticResults.save_results(save_dict: Optional[dict[str, bool]] = None)

Dynamic simulation (building_eload.core.dynamic_simulation)

Main classes:

  • DynamicParameters
  • DynamicSimulation

Primary methods used by users:

  • DynamicSimulation.from_files(district_id, parameters)
  • DynamicSimulation.from_static_results(static_results, parameters)
  • DynamicSimulation.run()
  • DynamicSimulation.save_results()
  • DynamicSimulation.plot_results(...)

Minimal Usage

Tutorials for botyh simulation process are available in : /doc/tutorials

1) Static simulation

import numpy as np
from building_eload.core.static_simulation import StaticParameters, StaticSimulation


district_id = "262320000"
eu = np.arange(0.7, 1.3, 0.05).round(2)
hs = np.arange(16.0, 22.5, 0.5).round(1)
energy_use_parameters = [
    {"actual_heating_set_point": hs[i], "energy_use_factor": eu[i]}
    for i in range(len(hs))
]

params = StaticParameters(
    n_inference=10,
    calibration_year=2023,
    climate_year=None,
    energy_use_parameters=energy_use_parameters,
)

sim = StaticSimulation(district_id=district_id, parameters=params)
results = sim.run()
results.save_results()

2) Dynamic simulation

from building_eload.core.dynamic_simulation import DynamicParameters, DynamicSimulation


district_id = "262320000"
params = DynamicParameters(
    year=2023,
    run_non_residential=True,
    run_again=True,
)

sim = DynamicSimulation.from_files(district_id=district_id, parameters=params)
sim.run()
sim.save_results()

Script Entry Points (Current)

  • Static simulation:
python -m building_eload.scripts.simulation.static.run
  • Parallel static simulation:
python -m building_eload.scripts.simulation.static.run_parallel
  • Dynamic simulation:
python -m building_eload.scripts.simulation.dynamic.run
  • Parallel dynamic simulation:
python -m building_eload.scripts.simulation.dynamic.run_parallel
  • Validation:
python -m building_eload.scripts.validation.run
  • Climate preprocessing:
python -m building_eload.scripts.climate.generate_climates

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

building_eload-0.4.3-py3-none-any.whl (133.8 kB view details)

Uploaded Python 3

File details

Details for the file building_eload-0.4.3-py3-none-any.whl.

File metadata

  • Download URL: building_eload-0.4.3-py3-none-any.whl
  • Upload date:
  • Size: 133.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for building_eload-0.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a0c08b7294a3b00fdfaccc8a40397996ff65a5cb5a11240c84e1f89a81156794
MD5 1ad88b3559e2d09f99d523632feef2a2
BLAKE2b-256 ef38bad139619811318b904e0a17fa13c327b79151ae9b0ea3dc36440546cb39

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page