Python package for assessing and visualizing dynamic wood material flows
aiphoria is Python package that facilitates the assessment of wood materials flows, associated carbon stocks, and stock changes, as well as and their visualization over time. aiphoria builds on top of ODYM - Open Dynamic Material Systems Model.
Features:
aiphoria allows you to:
- Solve flows provided both in absolute and relative (%) values, for example semi-finished wood product statistics (absolute values) to end-uses (relative values)
- Conduct dynamic MFA as well as temporary carbon storage assessment
- Visualize material flows through a Sankey diagram and provided timestep.
Use cases:
aiphoria is ideal for:
- Any temporal and spatial situation where material systems want to be assessed
- Product sink/stock effects
Installation
aiphoria is available at Python Package Index (PyPi) and as source distribution in Github
Install from PyPi
pip install aiphoria
Install from GitHub
pip install git+https://github.com/EuropeanForestInstitute/aiphoria.git
How to use
Showcase
aiphoria includes helper function to showcase example scenario with visualizations.
Showcase / example scenario can be run by the following code:
from aiphoria.example import run_example
run_example(remove_existing_output_dir=True)
Network and Sankey visualizations are opened automatically in browser and output is generated
inside user home directory to directory called "aiphoria_example_scenario".
Advanced usage
For the users who are already familiar using aiphoria the package exposes function for running scenarios by using the one-liner:
from aiphoria.runner import run_scenarios
run_scenarios(path_to_settings_file="path/to/scenario/file.xlsx",
path_to_output_dir="~/scenario_result",
remove_existing_output_dir=False)
Using parameter path_to_output_dir overrides the output path defined in scenario file.
This makes easier to change target from Python script itself or when running multiple scenarios in batch.
Parameters:
- path_to_settings_file (string): Path to scenario settings file
- path_to_output_dir (string): Path to directory where results are saved
- remove_existing_output_dir: If True then existing output directory is deleted (defaults to False). If directory already exists then error is raised and execution is stopped
Documentation
Online documentation can be found in GitHub wiki.
Support:
If you have any questions or need help, do not hesitate to contact us:
- Cleo Orfanidou cleo.orfanidou@efi.int
- Janne Järvikylä janne.jarvikyla@efi.int
Special thanks
A huge thank you to the following people who made aiphoria better:
-
Gustavo Ezequiel Martinez (virtual flows, system testing)
- GitHub: GustavoEzMartinez
- Email: gustavoezequiel.martinez@vito.be
-
Arthur Jakobs (packaging, CI/CD)
- GitHub: jakobsarthur
- Email: artos.jakobs@psi.ch
JOSS review
aiphoria was reviewed for the Journal of Open Source Software (review thread).
We warmly thank the reviewers @JakobBD and @paulrougieux, and the editor @ethanwhite, for their careful and constructive feedback. Their comments helped us improve the documentation, dependencies, package structure and code organisation of aiphoria, as well as the paper.
Funding:
aiphoria developers / European Forest Institute receive funding from the European Union’s Horizon Europe Research and Innovation Programme ForestPaths (ID No 101056755), Monifun (ID No 101134991) and eco2adapt (ID No 101059498).
Release files for aiphoria 1.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aiphoria-1.1.0.tar.gz | 2.1 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aiphoria-1.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 4.3 MB
Release files / aiphoria-1.1.0.tar.gz
| Download URL | aiphoria-1.1.0.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3f8e920dc8137b086f395f01caf04155763ffc8f6bbbc974ce2e391068f04342
|
|
BLAKE2b-256 checksum How to use checksums |
49bd43018cdf5ed68a3938648eda00f1eb2b8bc7b75857ab9499eb9af0b51c8a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency logRelease files / aiphoria-1.1.0-py3-none-any.whl
| Download URL | aiphoria-1.1.0-py3-none-any.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7e1e115e1e52bfbaf25c0a15aa66f87d4156b4324e5d7cd3f30c29712f4a5c18
|
|
BLAKE2b-256 checksum How to use checksums |
d428aaca1b74e101a464cf1eecea94e6d1dea497a6a8aa6af65ea93b18959bca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.
Transparency log