Skip to content
SB-ChalmersPublic

About

Author and reuse building materials, constructions, archetypes, operating profiles and renovation measures for EPSM.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

EPSM Data

EPSM Data — Three material and assumption panels; the middle panel is the effective selection.

Meet the materials and constructions behind an EPSM building. EPSM Data helps you find, inspect and author reusable materials, layered constructions, archetypes, operating profiles and renovation measures. Explore the catalogue offline, without Core, a database or a simulation engine.

Explore the EPSM platform →

EPSM Data is a Python library and the catalogue of representative Swedish buildings (LoD2 archetypes) for the EPSM platform. It serves researchers and developers who need typical constructions, operating profiles and renovation states for a Swedish building type and construction era. It has no runtime dependencies and works offline. It owns:

  • Construction classes shared with Core: Material → Layer → Component → Element / Window → ConstructionSet → Archetype.
  • The catalogue: four building types, eras SE.01–SE.07, three renovation states and three climate zones (228 assignments of 76 configurations).
  • Operating profiles, system templates, renovation definitions, pinned thermal and carbon sources, and sanity checks against TABULA.

Geometry, buildings and simulation belong to epsm_core and epsm; life-cycle assessment to epsm_lca; stock records to epsm_db.

Install

Requires Python 3.11 or newer. Optional extras: visualization for section drawings and geography for rebuilding climate-zone boundaries.

python -m pip install -e .

Quick start

from epsm_data import Catalogue, climate_zone_for_point

catalogue = Catalogue.load()
archetype = catalogue.for_year("multi_family", 1970, state="existing")
print(archetype.envelope_u_values["EXT_WALL"])  # W/(m² K)
print(catalogue.completeness("mf_se02", state="existing"))
print(catalogue.sanity_report()["summary"])
print(climate_zone_for_point(674571.866, 6580743.008))  # SE.Zone3

Documentation

  • Catalogue: types, eras, states, selection, composition, Core handover
  • Authoring: write, edit and save archetypes; apply them to a building
  • Profiles: operating profiles, ventilation templates, window-to-wall ratios
  • Renovation catalogue: renovation candidates, payloads, products, costs and the shared contract
  • Sources: the pinned source cache, thermal and carbon records
  • Sanity checks: the screens, the report and the epsm-catalogue command
  • Climate zones: offline location-to-zone lookup
  • Validation: the measured-data validation contract

Notebooks: 01 Select an archetype, 02 Operation and systems, 03 Author and edit and 04 Renovation states and sections.

Layout

src/epsm_data/
├── domain/          shared construction classes, Material to Archetype
├── catalogue/       selection, keys, authoring, serialization, Core handover
├── profiles.py      operating profiles (Sveby, measured use, BEN hot water)
├── templates.py     ventilation templates and facade window ratios
├── renovation/      renovation measures and the operations they make
├── sanity/          read-only screens of the catalogue
├── sources/         the pinned source cache and its records
├── datasets/        bundled data: lod2, profiles, sources, sanity, climate_zones
├── climate_zones.py location-to-zone lookup
├── carbon.py        retained-stock carbon scope
├── plotting.py      construction section drawings
└── cli.py           the epsm-catalogue command

evidence/ holds source documents; it is not loaded at run time.

Development

python -m pip install -e '.[dev]'
python -m pytest -q
python -m ruff check src tests examples
epsm-catalogue --sanity --check

Edit the catalogue in src/epsm_data/datasets/lod2/catalogue.json through a pull request. Reuse IDs for identical compositions, keep units, layer order, fractions and source locators, and check every construction that shares a changed definition. After a deliberate physical change, refresh the regression snapshot tests/fixtures/lod2-physics.json with python tests/test_catalogue_physics.py and review both diffs together.

Pull requests run ci.yml (Ruff, tests, wheel build). Before a release, run the manual tests.yml, which also covers both extras. The library adds no logging handler.

License and attribution

EPSM-owned software and documentation use the MIT license. Boverket, EPD and other third-party source data keep their providers' terms and attribution.

Developed at Chalmers University of Technology for the EPSM research platform. Funded by the Swedish Energy Agency, project P2024-04053. Partners: Lindholmen Science Park AB, Sinom AB and Stiftelsen Chalmers Industriteknik.

Lead developer: Sanjay Somanath. Principal investigator: Alexander Hollberg. Contributors: Yinan Yu and Dag Wästberg.

About

Author and reuse building materials, constructions, archetypes, operating profiles and renovation measures for EPSM.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages