exergy-imperative
Screening-grade exergy, emissions, health, and economic analysis from the industrial energy data you actually have. Give it as little as an equipment name and a country; every default it fills in stays visible, sourced, and replaceable with your own measurements.
📖 This project began as The Exergy Imperative — a complete, free guide to exergy analysis and its role in the energy transition. Read it to understand why energy quality matters; use this library to put it to work.
Why this library
Most exergy tools (TESPy,
ExerPy, Aspen Plus) start from a fully
specified plant simulation. Real industrial decisions usually start earlier,
with a utility bill, a telemetry export, or a one-line description of a steam
system. exergy-imperative works at that end of the funnel:
- Sparse input, transparent output. Progressive-fidelity assessments (F0 upward) from a bare technology name to measured site data. Every number carries provenance, a range, and warnings — screening defaults are never passed off as measurements.
- The whole business case, not just thermodynamics. Exergetic efficiency and destruction, AR6 20/100-year climate impact, air-pollutant health screening, and project economics (NPV, IRR, payback, levelized cost, marginal abatement cost) in one result.
- Industrial data plumbing built in. Auditable ingestion from CSV, Excel, Parquet, JSON, and SQL with unit conversion and mapping inference; native Excel input templates and workbook reports; weather normalization from NASA POWER; connectors for World Bank, ERA5-Land, EDGAR, eGRID, and DOE IAC data.
- Agent-native. Versioned JSON recipes with validate-only / dry-run / execute modes, stable error codes, capability discovery, and an optional MCP server so AI assistants can drive full assessments safely.
- Zero required dependencies. The core is pure Python (3.11–3.14); pandas, CoolProp, PDF, and MCP support are opt-in extras.
Install
python -m pip install exergy-imperative
Optional extras, only if you need them:
python -m pip install "exergy-imperative[data]" # Excel / Parquet readers
python -m pip install "exergy-imperative[reports]" # PDF reports
python -m pip install "exergy-imperative[mcp]" # MCP server for agents
python -m pip install "exergy-imperative[all]" # everything
Sixty seconds to a result
import exergy_imperative as xi
case = xi.assess_process("compressed air", energy=2_500, country="DEU")
print(case.summary())
Compressed-air system
Fidelity: F1
Exergetic efficiency: 0.15 dimensionless (screening range 0.08-0.25)
Climate impact: 8.24e+05 kg CO2e (100-year)
Screening energy opportunity: 500 MWh (screening range 125-875)
Warnings and limitations:
- The improvement opportunity uses a broad template screening prior; ...
Add whatever you know — efficiency, temperatures, energy prices, capital cost, refrigerant leakage — and the fidelity, ranges, and economics tighten accordingly. Then export deliverables:
case.export_html("compressed-air.html")
case.export_pdf("compressed-air.pdf") # [reports] extra
case.export_excel_compatible("compressed-air-data")
The same works from the command line, from JSON recipes, and from Excel templates:
exergy report examples/process_report_recipe.json --html output/report.html
exergy capabilities --json # discovery for scripts and agents
exergy validate # run the bundled reference checks
See the quickstart for the full tour.
What's inside
- Twelve industry process templates: steam, furnaces, compressed air, refrigeration, drying, desalination, hydrogen electrolysis, data centers, cement, steel reheat, food processing, district energy.
- Engineering screens for steam systems, heat pumps, furnaces, refrigeration, compressed air, and waste-heat matching.
- Explicit GHG boundaries (combustion, process, fugitive, purchased energy), methane vent/flare/recovery project analysis, and grid intensities for 213 countries (Ember / Our World in Data, 2020–2025).
- Monte Carlo uncertainty propagation, sensitivity ranking, and value of perfect information.
- Dependency-free SVG/HTML reports, optional PDF, and auditable Excel-compatible bundles with complete source payloads.
- Optional real-fluid physical exergy via CoolProp
(
[properties]extra).
When to use it — and when not to
| Your situation | Use |
|---|---|
| Screening a plant, portfolio, or project idea from bills, telemetry, or one-line descriptions | exergy-imperative |
| Building the emissions + health + economics case around an efficiency project | exergy-imperative |
| Letting an AI assistant run auditable energy assessments (MCP / JSON recipes) | exergy-imperative |
| Component-level exergy analysis of a fully specified thermodynamic cycle | TESPy |
| Exergy analysis on top of an existing Aspen Plus or Ebsilon simulation | ExerPy |
| Detailed process simulation, equipment design, or guarantee calculations | Aspen Plus, gPROMS, EBSILON, EES |
This library is deliberately a screening tool: its thermodynamics are closed-form (Carnot factors, Gouy–Stodola, Petela, ideal-mixture separation) plus optional CoolProp real-fluid properties. Results based on bundled profiles are screening estimates with declared ranges — a triage and business-case layer that tells you where a detailed simulation or site audit is worth the money, not a substitute for one.
Data, provenance, and validation
Bundled reference data ships with sources, versions, licenses, and confidence
labels: Ember/OWID electricity intensities, IPCC AR6 warming potentials, IPCC
2006 fuel factors, EPA and EMEP/EEA pollutant screening profiles. No
restricted publisher data (IEA, Energy Institute) is redistributed — local
adapters map your licensed copies with SHA-256 fingerprinting. Run
exergy validate to execute the bundled reference calculations and see every
expected value, tolerance, and citation.
Documentation
| Guide | What it covers |
|---|---|
| Quickstart | Install to first report |
| Python library | Full API tour |
| Engineering models | Equipment screens and their assumptions |
| Environment, health, economics | Impacts and project finance |
| Data & fidelity | Fidelity tiers, units, boundaries |
| Ingestion · Excel & local data | Getting your data in |
| External data integrations | World Bank, ERA5-Land, EDGAR, eGRID, IAC |
| Agent integration | JSON recipes, discovery, MCP server |
| Validation | Reference checks and their scope |
| Architecture | How the modules fit together |
| The Exergy Imperative | The complete guide to exergy and the energy transition |
Status
0.3.0 alpha. The public Python API, CLI commands, recipe contract 1.0,
packaged JSON Schemas, and MCP tools are stable surfaces within a minor
version (see AGENTS.md). Contributions are welcome — especially
reviewed profiles, validation cases against published literature, and dataset
adapters; see CONTRIBUTING.md.
License and citation
Code is Apache-2.0. The guide, explanatory documentation, and bundled profile data are CC BY 4.0; third-party data attributions are listed in NOTICE. Cite via CITATION.cff.
Published by Exergy Lab — a platform for accelerating scientific discovery and technological innovation, purpose-built for energy and deep-tech industries. Free for anyone to use.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file exergy_imperative-0.3.0.tar.gz.
File metadata
- Download URL: exergy_imperative-0.3.0.tar.gz
- Upload date:
- Size: 216.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bf9f8e80a5ea3040ed6ab867e7938c86ce75c5c4eb6195391cfdc185baeeef6
|
|
| MD5 |
2006079b52708412246a50b228d21ff8
|
|
| BLAKE2b-256 |
8e0a2a55c2d31c7260ebab8b62f728d9c4c5dc5d4e245a635fad6e4f51584490
|
Provenance
The following attestation bundles were made for exergy_imperative-0.3.0.tar.gz:
Publisher:
release.yml on cdimurro/the-exergy-imperative
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
exergy_imperative-0.3.0.tar.gz -
Subject digest:
3bf9f8e80a5ea3040ed6ab867e7938c86ce75c5c4eb6195391cfdc185baeeef6 - Sigstore transparency entry: 2500126667
- Sigstore integration time:
-
Permalink:
cdimurro/the-exergy-imperative@f2a76a929859e59db4c031e822eee6ee6f36edc3 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/cdimurro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f2a76a929859e59db4c031e822eee6ee6f36edc3 -
Trigger Event:
release
-
Statement type:
File details
Details for the file exergy_imperative-0.3.0-py3-none-any.whl.
File metadata
- Download URL: exergy_imperative-0.3.0-py3-none-any.whl
- Upload date:
- Size: 192.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f21c99daf86504ae913e2e2b44d8814fd1e2009ccfbf7b6b7bf85f7d4b70507
|
|
| MD5 |
52d6383dce7216c4c73c2776d350a02e
|
|
| BLAKE2b-256 |
2243e121a2519b51880d19bb3929197a29759b5f4a4fc2d65113f9e366f75043
|
Provenance
The following attestation bundles were made for exergy_imperative-0.3.0-py3-none-any.whl:
Publisher:
release.yml on cdimurro/the-exergy-imperative
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
exergy_imperative-0.3.0-py3-none-any.whl -
Subject digest:
0f21c99daf86504ae913e2e2b44d8814fd1e2009ccfbf7b6b7bf85f7d4b70507 - Sigstore transparency entry: 2500126670
- Sigstore integration time:
-
Permalink:
cdimurro/the-exergy-imperative@f2a76a929859e59db4c031e822eee6ee6f36edc3 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/cdimurro
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f2a76a929859e59db4c031e822eee6ee6f36edc3 -
Trigger Event:
release
-
Statement type: