Skip to main content

Brine & Ember Life cycle analysis and Techno-economic analysis Tool for LCA/TEA scenario analysis

Project description

belt

Brine & Ember Life cycle analysis and Techno-economic analysis Tool. Define scenarios as YAML, run viability (profit + carbon), and emit JSON/text via Typer CLI. Uses src-layout packaging and prefers uv.

YAML Structure

One YAML file per scenario. A scenario has multiple transformations; each transformation has processes; processes define materials and energy in/out.

Example

name: vegan dashi to biochar
currency: USD
boundaries: [harvest, dashi, pyrolysis]
energy_sources:
  grid_ca: { carbon_intensity_kg_per_kwh: 0.23 }
  propane: { carbon_intensity_kg_per_kwh: 0.25 }

materials:
  wet_biomass_t:   { name: wet_biomass, measurement: tonnes, value: 0 }
  feedstock_t:     { name: feedstock, measurement: tonnes, value: 0 }
  dashi_liters:    { name: dashi, measurement: liters, value: 0 }
  biochar_t:       { name: biochar, measurement: tonnes, value: 0 }
  emissions_kg:    { name: emissions, measurement: kg, value: 0 }
  carbon_locked_kg:{ name: carbon_locked, measurement: kg, value: 0 }

transformations:
  - id: harvest
    processes:
      - id: cut_collect
        materials_input: { wet_biomass_t: 1.0 }
        energy_input: { amount_kwh: 50, type: grid_ca }
        materials_output: { wet_biomass_t: 1.0 }
        finance: { opex_usd: 500 }

  - id: dashi
    processes:
      - id: boil_extract
        materials_input: { wet_biomass_t: 1.0 }
        energy_input: { amount_kwh: 120, type: propane }
        materials_output: { dashi_liters: 800, feedstock_t: 0.5 }
        finance: { opex_usd: 800, revenue_usd: 2500 }

  - id: pyrolysis
    processes:
      - id: char_burn
        materials_input: { feedstock_t: 0.5 }
        energy_input: { amount_kwh: 60, type: grid_ca }
        materials_output: { biochar_t: 0.1, emissions_kg: 150, carbon_locked_kg: 250 }
        finance: { opex_usd: 300 }

transfers:
  - from: harvest
    to: dashi
    quantities: { wet_biomass_t: 1.0 }
  - from: dashi
    to: pyrolysis
    quantities: { feedstock_t: 0.5 }

Key fields:

  • energy_sources: map energy type → carbon intensity (kg CO2/kWh).
  • materials: user-defined; referenced in materials_input/materials_output and transfers.
  • materials_input/materials_output: quantities by material key.
  • energy_input: { amount_kwh, type }, carbon computed via energy_sources.
  • finance: capex_usd, opex_usd, revenue_usd (default 0).
  • transfers: move materials between transformations; must not exceed produced amounts.
  • boundaries: list of included transformations; all transformations must be listed.

Install & Run (uv preferred)

# install deps in editable mode
uv pip install -e ".[dev]"

# CLI help
uv run python -m belt --help
uv run python -m belt analyze-scenario --help

# Run scenario
uv run python -m belt analyze-scenario path/to/scenario.yaml

Behavior:

  • Prints viability summary to stdout.
  • Writes JSON results to outputs/<scenario>.json by default (or --out path).

Tests

uv run python -m pytest

Packaging / Entry Points

  • Src layout under src/belt/
  • CLI entry: belt = "belt.cli:app"
  • Module entry: python -m belt

Quick Checks

uv build
uv run python -c "from belt import Scenario, assess_viability; print('OK')"
belt --help               # after install
python -m belt --help

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

brine_and_ember_belt-0.1.0.tar.gz (968.7 kB view details)

Uploaded Source

Built Distribution

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

brine_and_ember_belt-0.1.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file brine_and_ember_belt-0.1.0.tar.gz.

File metadata

  • Download URL: brine_and_ember_belt-0.1.0.tar.gz
  • Upload date:
  • Size: 968.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.9

File hashes

Hashes for brine_and_ember_belt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 c86c52a0514d9dc3e74cfece7678caa4580fc92a008ec0ca45bb88f9e002c362
MD5 5892e227b4dcd0761c989c7f5811677a
BLAKE2b-256 cc878591beeb0a6515b217b374834402f6e4c4bd1a285aff5a4180ff3b2c1c76

See more details on using hashes here.

File details

Details for the file brine_and_ember_belt-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for brine_and_ember_belt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ee0255f90e552451dc5d929e002ca3bc7b86decad014786a9b9b00dacf86d190
MD5 0b0b77a0a05a7c5ef40d30d474dbdbd5
BLAKE2b-256 4effda997c651b4d51d68487dc0bd92ba644543c5d63d44e47ca04d0249085c5

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