Skip to main content

Aggregate and normalize Environmental Product Declaration (EPD) datasets.

Project description

Generic EPD Aggregator

Build Coverage PyPI Python Documentation License pre-commit Code style: black Flake8


Features

  • Parse ILCD process and flow XMLs
  • Normalize material properties and LCIA modules
  • Aggregate impacts and compute weighted averages
  • Write new ILCD XML datasets

Installation

Install via PyPI:

pip install materia-epd

Requires Python 3.10+.


Documentation

Full documentation is hosted on Read the Docs.

It covers the EPD pipeline, module reference, contributing guidelines, and the changelog.


Usage

Here’s a minimal example:

python -m materia_epd <generic_processes_dir> <epd_processes_dir> -o <output_dir> -v

Note that you need to point to the root processes folders and need to provide a matches folder in the generic data folder to link generic products and EPDs. Add the flag --v or -v for verbosity. Logs files with details will be automatically created in <output_dir>. The <generic_processes_dir> folder should be structured like this:

<generic_process_dir>
├── flows
│   ├── <flow-uuid-1>.xml # Reference flow of EPD-uuid-1
│   ├── <flow-uuid-2>.xml
│   └── ...etc
├── matches
│   ├── <matches-uuid-1>.json # Source EPDs for EPD-uuid-1
│   ├── <matches-uuid-1>.json
│   └── ...etc
├── PDFs
├── processes
│   ├── <EDP-uuid-1.xml> # Ready-to-fill skeleton file specific for EPD-uuid-1
│   ├── <EDP-uuid-2.xml>
│   └── ...etc
└── templates
    ├── GenPro_template.xml # Template with the EPD schema
    └── GenRef_template.xml # Template with the flow schema

The <epd_process_dir> should have a structure like this:

<epd_process_dir>
├── flows # Contains all reference flows of all processes
└── processes # Contains all the potential source EPDs

The .json files are named after corresponding generic products and should be structured as follows:

{
  "type": "<aggregation_type>",  // "average" or "assembled"
  "uuids": [
    "<uuid-1>",
    "<uuid-2>",
    "<uuid-3>",
    "... more UUIDs ..."
  ]
}

where the provided uuids link to the process files of the EPDs that match.


Development / running tests

See DEVELOP.md for local setup, versioning, and PyPI release instructions.

For local development, install the package in editable mode with developer dependencies:

python -m pip install -e ".[dev]"

Then run tests:

pytest

Project details


Download files

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

Source Distribution

materia_epd-0.7.4.tar.gz (239.4 kB view details)

Uploaded Source

Built Distribution

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

materia_epd-0.7.4-py3-none-any.whl (192.7 kB view details)

Uploaded Python 3

File details

Details for the file materia_epd-0.7.4.tar.gz.

File metadata

  • Download URL: materia_epd-0.7.4.tar.gz
  • Upload date:
  • Size: 239.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for materia_epd-0.7.4.tar.gz
Algorithm Hash digest
SHA256 4fe1caf1c1e2b5e76d27e1cb51f7a9e71321b1d6d3192592386d18f8ede85a01
MD5 0ef36aaadb6f6fcdbf3c665540a72b91
BLAKE2b-256 8227aa4b575a09deb9b2f4521798929c22cccf75620f8c1f65fa0aa3cfd58111

See more details on using hashes here.

Provenance

The following attestation bundles were made for materia_epd-0.7.4.tar.gz:

Publisher: publish.yml on pbaustert/materia-epd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file materia_epd-0.7.4-py3-none-any.whl.

File metadata

  • Download URL: materia_epd-0.7.4-py3-none-any.whl
  • Upload date:
  • Size: 192.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for materia_epd-0.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 5ad94f485a6d95bacb1021cde71d9411d10fb025fc3c6c1c4b11a5d14b5f81dd
MD5 8ac875182cc35f9a67cc62d1f3817f06
BLAKE2b-256 4ee1116157131bbf4743440879f0f0f9a4cfd1a9228347aca604f25eb7c7c23b

See more details on using hashes here.

Provenance

The following attestation bundles were made for materia_epd-0.7.4-py3-none-any.whl:

Publisher: publish.yml on pbaustert/materia-epd

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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