diff --git a/.zenodo.json b/.zenodo.json
new file mode 100644
index 0000000..94953a5
--- /dev/null
+++ b/.zenodo.json
@@ -0,0 +1,514 @@
+{
+ "access": {
+ "embargo": {
+ "active": false,
+ "reason": null
+ },
+ "files": "public",
+ "record": "public",
+ "status": "open"
+ },
+ "created": "2025-12-03T17:06:07.427226+00:00",
+ "custom_fields": {
+ "code:codeRepository": "https://github.com/TI-Forest-Sector-Modelling/TiMBA",
+ "code:developmentStatus": {
+ "id": "active",
+ "title": {
+ "en": "Active"
+ }
+ },
+ "code:programmingLanguage": [
+ {
+ "id": "python",
+ "title": {
+ "en": "Python"
+ }
+ }
+ ],
+ "imprint:imprint": {
+ "place": "Braunschweig, Germany",
+ "title": "TiMBA - Timber market Model for policy-Based Analysis: Validation of a Partial Equilibrium Model (DOI: 10.3220/253-2026-29)"
+ },
+ "journal:journal": {
+ "issn": "2475-9066",
+ "issue": "115",
+ "pages": "1-5",
+ "title": "TiMBA (Timber market Model for policy-Based Analysis)",
+ "volume": "10"
+ }
+ },
+ "deletion_status": {
+ "is_deleted": false,
+ "status": "P"
+ },
+ "files": {
+ "count": 1,
+ "enabled": true,
+ "entries": {
+ "TI-Forest-Sector-Modelling/TiMBA-v1.3.0.zip": {
+ "access": {
+ "hidden": false
+ },
+ "checksum": "md5:0d3e8a0259e2be2e734125bba5713ec8",
+ "ext": "zip",
+ "id": "2cffde54-b8c4-4627-bdd2-778909c99ee4",
+ "key": "TI-Forest-Sector-Modelling/TiMBA-v1.3.0.zip",
+ "links": {
+ "container": "https://zenodo.org/api/records/17806030/files/TI-Forest-Sector-Modelling/TiMBA-v1.3.0.zip/container",
+ "content": "https://zenodo.org/api/records/17806030/files/TI-Forest-Sector-Modelling/TiMBA-v1.3.0.zip/content",
+ "self": "https://zenodo.org/api/records/17806030/files/TI-Forest-Sector-Modelling/TiMBA-v1.3.0.zip"
+ },
+ "metadata": null,
+ "mimetype": "application/zip",
+ "size": 5805385,
+ "storage_class": "L"
+ }
+ },
+ "order": [],
+ "total_bytes": 5805385
+ },
+ "id": "17806030",
+ "is_draft": false,
+ "is_published": true,
+ "links": {
+ "access": "https://zenodo.org/api/records/17806030/access",
+ "access_grants": "https://zenodo.org/api/records/17806030/access/grants",
+ "access_links": "https://zenodo.org/api/records/17806030/access/links",
+ "access_request": "https://zenodo.org/api/records/17806030/access/request",
+ "access_users": "https://zenodo.org/api/records/17806030/access/users",
+ "archive": "https://zenodo.org/api/records/17806030/files-archive",
+ "archive_media": "https://zenodo.org/api/records/17806030/media-files-archive",
+ "communities": "https://zenodo.org/api/records/17806030/communities",
+ "communities-suggestions": "https://zenodo.org/api/records/17806030/communities-suggestions",
+ "doi": "https://doi.org/10.5281/zenodo.17806030",
+ "draft": "https://zenodo.org/api/records/17806030/draft",
+ "file_modification": "https://zenodo.org/api/records/17806030/file-modification",
+ "files": "https://zenodo.org/api/records/17806030/files",
+ "latest": "https://zenodo.org/api/records/17806030/versions/latest",
+ "latest_html": "https://zenodo.org/records/17806030/latest",
+ "media_files": "https://zenodo.org/api/records/17806030/media-files",
+ "parent": "https://zenodo.org/api/records/13842384",
+ "parent_doi": "https://doi.org/10.5281/zenodo.13842384",
+ "parent_doi_html": "https://zenodo.org/doi/10.5281/zenodo.13842384",
+ "parent_html": "https://zenodo.org/records/13842384",
+ "preview_html": "https://zenodo.org/records/17806030?preview=1",
+ "quota_increase": "https://zenodo.org/api/records/17806030/quota-increase",
+ "request_deletion": "https://zenodo.org/api/records/17806030/request-deletion",
+ "requests": "https://zenodo.org/api/records/17806030/requests",
+ "reserve_doi": "https://zenodo.org/api/records/17806030/draft/pids/doi",
+ "self": "https://zenodo.org/api/records/17806030",
+ "self_doi": "https://doi.org/10.5281/zenodo.17806030",
+ "self_doi_html": "https://zenodo.org/doi/10.5281/zenodo.17806030",
+ "self_html": "https://zenodo.org/records/17806030",
+ "self_iiif_manifest": "https://zenodo.org/api/iiif/record:17806030/manifest",
+ "self_iiif_sequence": "https://zenodo.org/api/iiif/record:17806030/sequence/default",
+ "versions": "https://zenodo.org/api/records/17806030/versions"
+ },
+ "media_files": {
+ "count": 0,
+ "enabled": false,
+ "entries": {},
+ "order": [],
+ "total_bytes": 0
+ },
+ "metadata": {
+ "additional_descriptions": [
+ {
+ "description": "TiMBA was developed and written by an authors' collective in which the authors have contributed over years their individual strengths and knowledge to make the model work. The authors' collective is named Th\u00fcnen Institute Forest Sector Modelling (TI-FSM). The individual authors are listed as Co-authors in alphabetical order.",
+ "type": {
+ "id": "notes",
+ "title": {
+ "de": "Anmerkungen",
+ "en": "Notes"
+ }
+ }
+ }
+ ],
+ "copyright": "Copyright (C) 2025 Thuenen Institute, TI-FSM, Christian Morland, Franziska Schier, Julia Tandetzki, Tomke Honkomp",
+ "creators": [
+ {
+ "person_or_org": {
+ "family_name": "TI-FSM",
+ "name": "TI-FSM",
+ "type": "personal"
+ }
+ },
+ {
+ "affiliations": [
+ {
+ "name": "Th\u00fcnen Institue of Forestry"
+ }
+ ],
+ "person_or_org": {
+ "family_name": "Morland",
+ "given_name": "Christian",
+ "identifiers": [
+ {
+ "identifier": "0000-0001-6600-570X",
+ "scheme": "orcid"
+ }
+ ],
+ "name": "Morland, Christian",
+ "type": "personal"
+ }
+ },
+ {
+ "affiliations": [
+ {
+ "name": "Th\u00fcnen Institue of Forestry"
+ }
+ ],
+ "person_or_org": {
+ "family_name": "Schier",
+ "given_name": "Franziska",
+ "identifiers": [
+ {
+ "identifier": "0000-0002-3378-1371",
+ "scheme": "orcid"
+ }
+ ],
+ "name": "Schier, Franziska",
+ "type": "personal"
+ }
+ },
+ {
+ "affiliations": [
+ {
+ "name": "Th\u00fcnen Institue of Forestry"
+ }
+ ],
+ "person_or_org": {
+ "family_name": "Tandetzki",
+ "given_name": "Julia",
+ "identifiers": [
+ {
+ "identifier": "0000-0002-0630-9434",
+ "scheme": "orcid"
+ }
+ ],
+ "name": "Tandetzki, Julia",
+ "type": "personal"
+ }
+ },
+ {
+ "affiliations": [
+ {
+ "name": "Th\u00fcnen Institue of Forestry"
+ }
+ ],
+ "person_or_org": {
+ "family_name": "Honkomp",
+ "given_name": "Tomke",
+ "identifiers": [
+ {
+ "identifier": "0000-0002-6719-0190",
+ "scheme": "orcid"
+ }
+ ],
+ "name": "Honkomp, Tomke",
+ "type": "personal"
+ }
+ }
+ ],
+ "dates": [
+ {
+ "date": "2024-09-26",
+ "description": "Release first version",
+ "type": {
+ "id": "available",
+ "title": {
+ "de": "Verf\u00fcgbar",
+ "en": "Available"
+ }
+ }
+ }
+ ],
+ "description": "TiMBA is a partial economic equilibrium model for the\n global forest products market. The model endogenously\n simulates production, consumption and trade of wood and\n wood-based products in 180 countries. TiMBA recursively\n computes the market equilibrium for each country and\n product in a given period by maximizing the social surplus\n in the global forest sector. In the equilibrium processes,\n product supply, demand and price are balanced for each\n simulation period.",
+ "identifiers": [
+ {
+ "identifier": "https://archive.softwareheritage.org/swh:1:dir:1828c8cf6b8df60176209f7d2f2d8e6f49e68950",
+ "scheme": "url"
+ }
+ ],
+ "languages": [
+ {
+ "id": "eng",
+ "title": {
+ "en": "English"
+ }
+ }
+ ],
+ "publication_date": "2025-12-03",
+ "publisher": "Zenodo",
+ "references": [
+ {
+ "reference": "Buongiorno, J., Zhu, S., Zhang, D., Turner, J., & Tomberlin, D. (2003). The global forest products model: Structure, estimation, and applications. Academic Press. ISBN: 978- 0121413620"
+ },
+ {
+ "reference": "Buongiorno, J. (2015). Global modelling to predict timber production and prices: The GFPM approach. Forestry, 88(3), 291\u2013303. https://doi.org/10.1093/forestry/cpu047"
+ },
+ {
+ "reference": "Diamond, S., & Boyd, S. (2016). CVXPY: A Python-embedded modeling language for convex optimization. Journal of Machine Learning Research, 17 (83), 1\u20135."
+ },
+ {
+ "reference": "Stellato, B., Banjac, G., Goulart, P., Bemporad, A., & Boyd, S. (2020). OSQP: An operator splitting solver for quadratic programs. Mathematical Programming Computation, 12(4), 637\u2013672. https://doi.org/10.1007/s12532-020-00179-2"
+ },
+ {
+ "reference": "Samuelson, P. A. (1952). Spatial price equilibrium and linear programming. The American Economic Review, 42(3), 283\u2013303. http://www.jstor.org/stable/1810381"
+ }
+ ],
+ "related_identifiers": [
+ {
+ "identifier": "https://github.com/TI-Forest-Sector-Modelling/TiMBA/tree/v1.3.0",
+ "relation_type": {
+ "id": "issupplementto",
+ "title": {
+ "de": "Erg\u00e4nzt",
+ "en": "Is supplement to"
+ }
+ },
+ "resource_type": {
+ "id": "software",
+ "title": {
+ "de": "Software",
+ "en": "Software"
+ }
+ },
+ "scheme": "url"
+ },
+ {
+ "identifier": "10.21105/joss.08034",
+ "relation_type": {
+ "id": "ispublishedin",
+ "title": {
+ "de": "Ist ver\u00f6ffentlicht in",
+ "en": "Is published in"
+ }
+ },
+ "resource_type": {
+ "id": "publication-article",
+ "title": {
+ "de": "Zeitschriftenartikel",
+ "en": "Journal article"
+ }
+ },
+ "scheme": "doi"
+ },
+ {
+ "identifier": "10.5281/zenodo.20925292",
+ "relation_type": {
+ "id": "issupplementedby",
+ "title": {
+ "de": "Wird erg\u00e4nzt durch",
+ "en": "Is supplemented by"
+ }
+ },
+ "resource_type": {
+ "id": "software",
+ "title": {
+ "de": "Software",
+ "en": "Software"
+ }
+ },
+ "scheme": "doi"
+ },
+ {
+ "identifier": "10.5281/zenodo.17814169",
+ "relation_type": {
+ "id": "issupplementedby",
+ "title": {
+ "de": "Wird erg\u00e4nzt durch",
+ "en": "Is supplemented by"
+ }
+ },
+ "resource_type": {
+ "id": "software",
+ "title": {
+ "de": "Software",
+ "en": "Software"
+ }
+ },
+ "scheme": "doi"
+ },
+ {
+ "identifier": "10.5281/zenodo.19466845",
+ "relation_type": {
+ "id": "requires",
+ "title": {
+ "de": "Setzt voraus",
+ "en": "Requires"
+ }
+ },
+ "resource_type": {
+ "id": "dataset",
+ "title": {
+ "de": "Datensatz",
+ "en": "Dataset"
+ }
+ },
+ "scheme": "doi"
+ },
+ {
+ "identifier": "10.5281/zenodo.19466845",
+ "relation_type": {
+ "id": "haspart",
+ "title": {
+ "de": "Umfasst folgenden Teil",
+ "en": "Has part"
+ }
+ },
+ "resource_type": {
+ "id": "dataset",
+ "title": {
+ "de": "Datensatz",
+ "en": "Dataset"
+ }
+ },
+ "scheme": "doi"
+ }
+ ],
+ "resource_type": {
+ "id": "software",
+ "title": {
+ "de": "Software",
+ "en": "Software"
+ }
+ },
+ "rights": [
+ {
+ "description": {
+ "en": ""
+ },
+ "id": "agpl-3.0-or-later",
+ "props": {
+ "scheme": "spdx",
+ "url": "https://www.gnu.org/licenses/agpl.txt"
+ },
+ "title": {
+ "en": "GNU Affero General Public License v3.0 or later"
+ }
+ }
+ ],
+ "subjects": [
+ {
+ "subject": "research"
+ },
+ {
+ "subject": "Forest sector model"
+ },
+ {
+ "subject": "partial equilibrium model"
+ },
+ {
+ "subject": "optimization"
+ },
+ {
+ "subject": "wood markets"
+ }
+ ],
+ "title": "TiMBA (Timber market Model for policy-Based Analysis)",
+ "version": "v1.3.0"
+ },
+ "parent": {
+ "access": {
+ "owned_by": {
+ "user": "1194720"
+ },
+ "settings": {
+ "accept_conditions_text": null,
+ "allow_guest_requests": false,
+ "allow_user_requests": false,
+ "secret_link_expiration": 0
+ }
+ },
+ "communities": {
+ "default": "09c92e32-50ba-4d88-8c60-9a74a198078d",
+ "entries": [
+ {
+ "access": {
+ "member_policy": "open",
+ "members_visibility": "public",
+ "record_submission_policy": "open",
+ "review_policy": "open",
+ "visibility": "public"
+ },
+ "children": {
+ "allow": false
+ },
+ "created": "2024-03-26T14:59:31.275326+00:00",
+ "custom_fields": {},
+ "deletion_status": {
+ "is_deleted": false,
+ "status": "P"
+ },
+ "id": "09c92e32-50ba-4d88-8c60-9a74a198078d",
+ "links": {},
+ "metadata": {
+ "curation_policy": "
The Zenodo community of the Thünen-Institut contains exclusively content with contributions of the Thünen-Institut. All other submissions will be rejected.
",
+ "organizations": [
+ {
+ "id": "00mr84n67"
+ }
+ ],
+ "title": "Johann Heinrich von Th\u00fcnen-Institut",
+ "type": {
+ "id": "organization"
+ },
+ "website": "https://www.thuenen.de/de/"
+ },
+ "revision_id": 7,
+ "slug": "thuenen",
+ "updated": "2024-03-26T15:18:00.842375+00:00"
+ }
+ ],
+ "ids": [
+ "09c92e32-50ba-4d88-8c60-9a74a198078d"
+ ]
+ },
+ "id": "13842384",
+ "pids": {
+ "doi": {
+ "client": "datacite",
+ "identifier": "10.5281/zenodo.13842384",
+ "provider": "datacite"
+ }
+ }
+ },
+ "pids": {
+ "doi": {
+ "client": "datacite",
+ "identifier": "10.5281/zenodo.17806030",
+ "provider": "datacite"
+ },
+ "oai": {
+ "identifier": "oai:zenodo.org:17806030",
+ "provider": "oai"
+ }
+ },
+ "revision_id": 8,
+ "stats": {
+ "all_versions": {
+ "data_volume": 1962166898.0,
+ "downloads": 225,
+ "unique_downloads": 216,
+ "unique_views": 1850,
+ "views": 2018
+ },
+ "this_version": {
+ "data_volume": 249631555.0,
+ "downloads": 43,
+ "unique_downloads": 42,
+ "unique_views": 202,
+ "views": 216
+ }
+ },
+ "status": "published",
+ "swh": {
+ "swhid": "swh:1:dir:e6e6240c08c0b70af91ed91083b3e37fce702214;origin=https://doi.org/10.5281/zenodo.13842384;visit=swh:1:snp:2f6aed0842a62a28ae45836d1833807ac77f2a2d;anchor=swh:1:rel:82b8d27a24ca85e5c57a89bcae5b69d8f9bc047f;path=TI-Forest-Sector-Modelling-TiMBA-b659274"
+ },
+ "updated": "2026-07-08T09:23:34.471797+00:00",
+ "versions": {
+ "index": 7,
+ "is_latest": false
+ }
+}
\ No newline at end of file
diff --git a/README.md b/README.md
index e6f50b9..05220e7 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
[](https://doi.org/10.21105/joss.08034)
[](https://github.com/TI-Forest-Sector-Modelling/TiMBA/blob/main/COPYING)
------------------
+-----------------
**TiMBA** is a partial economic equilibrium model for the global forest products market. The model endogenously simulates
production, consumption, and trade of wood and wood-based products in 180 countries. TiMBA recursively computes the market
@@ -25,25 +25,32 @@ In the equilibrium processes, product supply, demand and price are balanced for
- [TiMBA - Timber market Model for policy-Based Analysis](#timba---timber-market-model-for-policy-based-analysis)
- [1. Cite TiMBA](#1-cite-timba)
- [2. Installation](#2-installation)
- - [2.1. PyPI package](#21-pypi-package)
- - [2.2. GitHub repository](#22-github-repository)
+ - [2.1 Requirements](#21-requirements)
+ - [2.2 Install uv](#22-install-uv)
+ - [2.3 Install the TiMBA command line programs](#23-install-the-timba-command-line-programs)
+ - [2.4 Install TiMBA from PyPi](#24-install-timba-from-pypi)
+ - [2.5 Install TiMBA from GitHub](#25-install-timba-from-github)
+ - [3. Testing TiMBA](#3-testing-timba)
- [3. Use TiMBA](#3-use-timba)
- - [4. Model extensions](#4-model-extensions)
+ - [4. Supplementary modules](#4-supplementary-modules)
- [5. Project structure](#5-project-structure)
- [6. Model settings](#6-model-settings)
- [6.1. Settings as parameters](#61-settings-as-parameters)
- [6.2. Advanced settings](#62-advanced-settings)
- [7. TiMBA extended model description](#7-timba-extended-model-description)
- - [8. Extensions for TiMBA](#8-extensions-for-timba)
+ - [8. Supplementary modules for TiMBA](#8-supplementary-modules-for-timba)
- [9. Roadmap and project status](#9-roadmap-and-project-status)
- - [10. Contributing to the project](#10-contributing-to-the-project)
- - [11. Authors](#11-authors)
- - [12. Contribution statement](#12-contribution-statement)
- - [13. License and copyright note](#13-license-and-copyright-note)
- - [14. Acknowledgements](#14-acknowledgements)
- - [15. References](#15-references)
-
-
+ - [10. FAIR research software](#10-fair-research-software)
+ - [10.1 Findable](#101-findable)
+ - [10.2 Accessible](#102-accessible)
+ - [10.3 Interoperable](#103-interoperable)
+ - [10.4 Reusable](#104-reusable)
+ - [11. Contributing to the project](#11-contributing-to-the-project)
+ - [12. Authors](#12-authors)
+ - [13. Contribution statement](#13-contribution-statement)
+ - [14. License and copyright note](#14-license-and-copyright-note)
+ - [15. Acknowledgements](#15-acknowledgements)
+ - [16. References](#16-references)
-----------------
## 1. Cite TiMBA
@@ -51,38 +58,102 @@ In the equilibrium processes, product supply, demand and price are balanced for
We are happy that you use TiMBA for your research. When publishing your work in articles, working paper, presentations
or elsewhere, please cite the model as
-[TI-FSM, Morland, C., Schier, F., Tandetzki, J., Honkomp, T. (2025). TiMBA (Timber market Model for policy-Based Analysis). Journal of Open Source Software, 10(115), 8034, https://doi.org/10.21105/joss.08034](https://joss.theoj.org/papers/10.21105/joss.08034#)
+TI-FSM, Morland, C., Schier, F., Tandetzki, J., Honkomp, T. (2025). TiMBA (Timber market Model for policy-Based Analysis). Journal of Open Source Software, 10(115), 8034, [https://doi.org/10.21105/joss.08034](https://doi.org/10.21105/joss.08034)
+[Download BibTeX](./citation.bib)
The authors' collective is named Thünen Institute Forest Sector Modelling (TI-FSM). The individual authors are listed as
co-authors in alphabetical order.
## 2. Installation
-The package is developed and tested with Python 3.9 on Windows. TiMBA is compatible with Python versions between 3.9–3.11
-with Windows and Ubuntu OS. The functionality with Python versions and different OS is continuously tested using GitHub
-Actions.
+The package is developed and tested with Python 3.9 on Windows 11. TiMBA is
+compatible with Python versions between 3.9 - 3.11. The functionality with
+supported Python versions is continuously tested using GitHub CI with [operating
+system images](https://github.com/actions/runner-images#available-images)
+`windows-latest` and `ubuntu-latest`.
-Before proceeding, please ensure that Python is installed on your system.
-It can be downloaded and installed from [Python.org](https://www.python.org/downloads/release/python-3119/).
+### 2.1 Requirements
-***Known Issues***:
-TiMBA currently has compatibility issues on macOS and with Python 3.12 and 3.13. Users may experience unexpected behavior during the optimization
-process on macOS, as well as package installation problems when using Python 3.12 and 3.13.
-We recommend using Python 3.9–3.11 on Windows or Ubuntu OS for best results until full support of Python 3.12 and 3.13 and macOS is implemented.
+- Operating system: Linux or Windows on a x64 architecture. We test Windows 11
+ and Ubuntu 24.04, but other Windows and Linux versions are likely to work too.
+- The Python package manager [uv](https://docs.astral.sh/uv/). We recommend to
+ use `uv`, because it provides a user-friendly, quick, platform-independent
+ and reliable way to install, use and develop TiMBA.
+
+That said, TiMBA can be also installed classically by creating a virtual
+environment using [`venv`](https://docs.python.org/3.14/library/venv.html) and
+installing with [`pip`](https://pip.pypa.io/en/stable/). To make the virtual
+environment use the right Python version (if your system Python doesn't happen
+to be version 3.9 - 3.11), you need to install a supported Python the the
+operating system level and create the virtual environment with that version,
+e.g. `python3.11 -m venv .venv`.
+***Known Issues***:
+TiMBA currently does not work with Python 3.12 or higher. We observe numerical discrepancies
+(>5% compared to results generated on Windows or Linux) when running TiMBA on macOS which
+could traced back to the solver OSQP in CVXPY. The results with MacOS have not been validated.
+We are investigating the issue.
-The package can be installed from **PyPI** or directly from **GitHub**:
+### 2.2 Install uv
-### 2.1. PyPI package
+#### 2.2.1 Linux
```bash
-pip install pytimba
-````
+curl -LsSf https://astral.sh/uv/install.sh | sh
+```
+#### 2.2.2 Windows
+```powershell
+powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
+```
+
+### 2.3 Install the TiMBA command line programs
+
+If you want to use TiMBA as executable program, install it globally like so:
+
+``` bash
+uv tool install -p 3.11 pytimba
+```
+You will then have access to the CLI command `timba` with the subcommands `carbon`, `dashboard`, `load` ans `run`. Get an overview with `timba --help`. Detailed usage instructions are available with the argument `--help` for each of the subcommands. See section [Model settings](#model-settings) for further details.
+
+#### 2.3.1 Troubleshooting: `uv` command not found
+
+If you encounter the following error message:
+
+```
+'uv' is not recognized as an internal or external command,
+operable program or batch file.
+```
+
+`uv` may be installed successfully, but the installation directory is not available in your `PATH`.
+
+Check the installation output for the line:
+
+```
+installing to
+```
+
+Add this path to your environment variable `PATH`, e.g. on Windows like so:
-Once installed, `timba` can be imported with standard settings:
+```cmd
+set PATH=%PATH%;
+```
+
+For a permanent solution, add `` to your user `PATH` environment variable in Windows.
+
+
+### 2.4 Install TiMBA from PyPi
+
+If you want to use TiMBA as part of your own program, you can install it from PyPi like so:
+
+``` bash
+uv init -p 3.11 my_timba_program # Create a project skeleton with Python 3.11
+cd my_timba_program # Change into the project directory
+uv add pytimba # Install TiMBA into the project's virtual environment.
+```
+Use TiMBA in Python modules, for example
```python
-from timba.main import run_timba
+from TiMBA.main import run_timba
run_timba()
```
@@ -90,16 +161,16 @@ run_timba()
To change the folder for input and output data, the user can use the `folderpath` option (note: the path must be a `Path` object from `pathlib`):
```python
-from timba.main import run_timba
+from TiMBA.main import run_timba
from pathlib import Path
run_timba(folderpath=Path(r"your_path"))
```
-To modify specific parameters, the user can import `parameter_setter` from `TiMBA.main` and set new values:
+To modify specific parameters, you can import `parameter_setter` from `TiMBA.main` and set new values:
```python
-from timba.main import run_timba, parameter_setter
+from TiMBA.main import run_timba, parameter_setter
parameters = parameter_setter()
parameters.max_period = 2
@@ -107,19 +178,41 @@ parameters.max_period = 2
run_timba(Parameters=parameters)
```
-### 2.2. GitHub repository
+### 2.5 Install TiMBA from GitHub
+
+To install TiMBA in editable mode, so that you can modify the TiMBA source code, install it directly from GitHub:
+
+1. Clone the repository and move into the project folder:
+ ```bash
+ git clone https://github.com/TI-Forest-Sector-Modelling/TiMBA.git timba
+ cd timba
+ ```
+2. Create the virtual environment and install all dependencies into it:
+ ```bash
+ uv sync
+ ```
+3. Verify the installation and run a first period:
+ ```bash
+ uv run timba run --help
+ uv run timba run -MP=1
+ ```
+#### 2.5.1 Install from GitHub without 'uv`
+
+If you want to develop without using `uv`, you can install TiMBA with `venv` and `pip`, for example for Windows like so:
+
+The prerequisite is that a supported version (3.9 -3.11) is among your
+system-wide installed Python interpreters and that you have [Python Launcher for
+Windows](https://github.com/oleksis/pylauncher/blob/master/docs/launcher.rst)
+installed.
+
+1. Clone the repository and move into the project folder:
+ ```bash
+ git clone https://github.com/TI-Forest-Sector-Modelling/TiMBA.git timba
+ cd timba
+```
+
+2. Create a virtual environment
-1. Clone the repository
-Begin by cloning the repository to your local machine using the following command:
- >git clone https://github.com/TI-Forest-Sector-Modelling/TiMBA.git
- >
-2. Switch to the TiMBA directory
-Navigate into the TiMBA project folder on your local machine.
- >cd TiMBA
- >
-3. Create a virtual environment
-It is recommended to set up a virtual environment for TiMBA to manage dependencies. The package is tested for
- Python versions up to 3.11. With a newer Python version, we can not guarantee the full functionality of the package.
Select the correct Python interpreter.
Show installed versions:
>py -0
@@ -130,39 +223,30 @@ It is recommended to set up a virtual environment for TiMBA to manage dependenci
- If you are using only a single version of Python on your computer:
>python -m venv venv
>
-4. Activate the virtual environment
+3. Activate the virtual environment
Enable the virtual environment to isolate TiMBA dependencies.
>venv\Scripts\activate
- Or for Linux:
- >source venv/bin/activate
-
-5. Install TiMBA in the editable mode
+4. Install TiMBA in the editable mode
>pip install -e .
If the following error occurs: "ERROR: File "setup.py" or "setup.cfg" not found."
you might need to update the pip version you use with:
>python.exe -m pip install --upgrade pip
+### 3. Testing TiMBA
-***Double check installation and test suite***:
-Double check if installation was successful by running following command from terminal:
- >timba --help
-
-The help provides you information about the basic model commands.
-
-The TiMBA model comes with a test suite to ensure its functionality.
-Run the test suite to check the functionality of the package and validate the produced results with those provided by the
-TI-FSM using the coverage report:
-
- > coverage run
-
-To reduce the test suite running time, only the first period will be computed and compared. The test suite results will not be saved.
-The computed results and provided validation results are compared with a relative tolerance of 5%.
-
-The coverage report of the TiMBA model can be accessed using:
- > coverage report
+The TiMBA model comes with a test suite to ensure its functionality. Run the
+test suite to check the functionality of the package and validate the produced
+results with those provided by the TI-FSM using the coverage report:
+ ```bash
+ uv run python -W ignore::DeprecationWarning -m coverage run --rcfile=.coveragerc -m unittest discover -s test -p "test*.py"
+ uv run coverage report
+ ```
+
+To reduce the test suite running time, only the first period will be computed
+and compared. The test suite results will not be saved.
## 3. Use TiMBA
@@ -199,7 +283,7 @@ The available CLI commands are:
| `carbon` | Calculate forest carbon stocks in forests and harvested wood products. |
| `dashboard` | Launch an interactive dashboard for analysing simulation results. |
-By default, TiMBA uses the current working directory for input and output files. A different project directory can be specified using the `-FP` (folder path) option:
+By default, TiMBA uses the current working directory also for output files. A different project directory can be specified using the `-FP` (folder path) option:
```bash
timba run -FP your_path
@@ -207,12 +291,6 @@ timba run -FP your_path
This allows users to organise multiple projects or customise model runs with alternative input datasets (see [Model settings](#model-settings) for further details).
-To verify that the installation is working correctly, execute a simulation for the first model period only:
-
-```bash
-timba run -MP 1
-```
-
## 4. Supplementary modules
The TiMBA ecosystem has a modular design. Each module extends the base functionality of TiMBA in a specific way.
@@ -267,41 +345,39 @@ After simulation, TiMBA creates an `output` directory inside the `data` folder.
```text
data
└── output
- ├── TiMBA.log
- ├── DataContainer_.pkl
- ├── results_.csv
- ├── worldprices_.csv
- ├── forest_.csv
- ├── manufacture_.csv
- └── results_aggregated_.csv
+ └── data
+ ├── DataContainer_.pkl
+ ├── results_.csv
+ ├── worldprices_.csv
+ ├── forest_.csv
+ ├── manufacture_.csv
+ └── results_aggregated_.csv
+ └── logs
+ ├── TiMBA.log
+ └── _info.yml
```
The output files contain:
-| File | Description |
-|--------------------------------------|---------------------------------------------------------------|
-| `TiMBA.log` | Log file containing information about the simulation process. |
-| `DataContainer_.pkl` | Complete serialized simulation results for programmatic use. |
-| `results_.csv` | Main simulation results in csv format. |
-| `worldprices_.csv` | World price results in csv format. |
-| `forest_.csv` | Forest resources-related results in csv format. |
-| `manufacture_.csv` | Manufacturing sector-related results in csv format. |
-| `results_aggregated_.csv` | Results aggregated at the continental level in csv format. |
+| File | Description |
+|------------------------------------------------|----------------------------------------------------------------------------|
+| `TiMBA.log` | Log file containing information about the simulation process. |
+| `_info.yml` | Records all model input parameters for reproducibility and transparency. |
+| `DataContainer_.pkl` | Contains the complete serialized simulation output for efficient reuse. |
+| `results_.csv` | Main simulation results in csv format. |
+| `worldprices_.csv` | World price results in csv format. |
+| `forest_.csv` | Forest resources-related results in csv format. |
+| `manufacture_.csv` | Manufacturing sector-related results in csv format. |
+| `results_aggregated_.csv` | Results aggregated at the continental level in csv format. |
To ensure reproducibility, TiMBA never overwrites existing simulation results.
-Each model run creates a new set of output files using timestamp-based filenames, for example:
-
-```text
-results_D20260708T14-32-18.csv
-```
-
-This guarantees that previous simulation results remain available for comparison and documentation.
-
## 6. Model settings
Multiple settings are integrated for the ***timba run*** command to allow users to interact with the model and adapt the modelling parameters to their research interests.
-The following chapter provides a brief overview of the model settings. A detailed description of the settings is provided in the model documentation (TI-FSM 2025).
+The following chapter provides a brief overview of the model settings. A detailed description of the settings is provided in the model documentation ([TI-FSM 2025](https://literatur.thuenen.de/digbib_extern/dn069603.pdf)).
+
+This guarantees that previous simulation results remain available for comparison and documentation.
Basic model settings include:
@@ -338,9 +414,9 @@ Check if CLI command is registered and available on your computer by executing:
- >timba run --help
Default settings can be changed in the following way: (Note that the change of default settings as described below is for demonstration purposes only, and the results have not been validated.):
+
- > timba run -MP=5 -MB="RCG_specific" -CP="True"
-
For this example, TiMBA will simulate 5 periods using calculated prices as product prices and shadow prices as world market prices.
### 6.2. Advanced settings
@@ -408,17 +484,126 @@ Several projects are currently extending different components of TiMBA:
Frequently check [TiMBA repository](https://github.com/TI-Forest-Sector-Modelling/TiMBA) for new releases.
-## 10. Contributing to the project
-We welcome contributions, additions, and suggestion to further develop or improve the code and the model. To check, discuss and include them into this project, we would like you to share your ideas with us so that we can agree on the requirements needed for accepting your contribution.
+## 10. FAIR research software
+
+We attempt to adhere as much as possible to the FAIR Principles for research
+software (e.g. see Barker et al. 2022 and Chue Hong et al. 2022) and reach high
+standards of scientific quality and openness. If you find that TiMBA or its documentation could be improved, we would greatly appreciate your feedback.
+Please submit it as an [Issue](https://github.com/TI-Forest-Sector-Modelling/TiMBA/issues/new/choose)
+in the GitHub repository or via email to [wf-timba@thuenen.de](mailto:wf-timba@thuenen.de).
+
+In the following we detail our efforts and considerations.
+
+### 10.1 Findable
+
+- Zenodo provides a DOI with extensive metadata according to the DataCite schema.
+ - Separate DOIs for each release and one representing all releases.
+- A set of SWHID (Software Hash IDentifiers) is created by the [Software
+ Heritage archive](https://archive.softwareheritage.org/) for each release and
+ refereneces the code in a very granular fashion.
+- An accompanying [software paper](https://doi.org/10.21105/joss.08034) makes
+ sure the software is also referenced in search indices that focus on journal articles.
+- We provide rich metadata also as linked data in the form of the file `codemeta.json` in the
+ [CodeMeta](https://codemeta.github.io/) standard.
+- We provide machine-actionable citation information in the [Citation File Format
+ (CFF)](https://citation-file-format.github.io/).
+
+### 10.2 Accessible
+
+- The source code can be accessed in the form of a *git remote* from GitHub, via
+ *http* from Zenodo, but also by Python package managers through the [Python
+ Package Index](https://pypi.org/), both as source distribution and as a
+ *Wheel*.
+
+- Metadata is preserved to a very high degree of safety in a redundant fashion.
+ The DataCite type metadata not only preserved by DataCite but also by Zenodo
+ and in the form of a file `zenodo.json` on GitHub and in the SoftwareHeritage
+ datacenters. These three repositories also hold the file `codemeta.json`.
+
+- We recognize that GitHub, a commercial platform owned by Microsoft, is subject
+to business and strategic considerations that may raise concerns regarding data
+governance, security, adherence to scientific community standards, and long-term
+sustainability. Nevertheless, GitHub's seamless integration with Zenodo provides
+substantial benefits, including automated archiving and DOI assignment, which would
+be difficult to achieve with our current resources. We hope that a comparable integration
+will be developed in the future for better suited Forges such as [Forgejo](https://forgejo.org/) or
+ self-hosted [GitLab](gitlab.com).
+
+### 10.3 Interoperable
+
+#### 10.3.1 Software interoperability
+
+- TiMBA installs both as executable script (`timba_run`) as well as as a Python
+ module (`TiMBA`). The script copies its output also to STDOUT and allows to
+ chain TiMBA with other command line tools in a classical UNIX fashion.
+ Importing the module allows users to integrate TiMBA into their own Python
+ programs.
+
+- We also maintain extensions to TiMBA ([Carbon
+ Module](https://github.com/TI-Forest-Sector-Modelling/C-Module) and [TiMBA
+ Charts](https://github.com/TI-Forest-Sector-Modelling/TiMBA_Charts)) in the
+ form of Python packages that can be used by importing them. These packages
+ also adhere to FAIR principles, are version-controlled in GitHub and can be
+ referenced with DOIs registered by Zenodo.
+
+#### 10.3.2 Data interoperability
+
+- TiMBA relies on a set of required input data. The canonical versions of these
+ data (a non-trivial scientific output) are also kept [version controlled in
+ GitHub](https://github.com/TI-Forest-Sector-Modelling/TiMBA_Additional_Information)
+ and releases are [published to
+ Zenodo](https://doi.org/10.5281/zenodo.14928910).
+
+- The main input data file is Office Open XML ("Microsoft Excel") format. We are
+ aware that this format is not a good choice from a purely technical point of
+ view and has severe shortcomings with regard to robustness, stability over
+ time, machine readability, interoperability, platform independence and
+ accessibility. However, this is the optimal format to make the input
+ understandable and modifyable by our main target group, who understands
+ Microsoft Excel very well but might struggle with less common formats and
+ conventions. This is a cultural and educational problem we can't solve in this
+ context. We are familiar with and track projects such as [Frictionnless
+ Data](https://frictionlessdata.io/) with its [Data Package
+ standard](https://datapackage.org/). We hope to eventually be able to combine
+ user-friendliness with robust data standards to represent our input data.
+
+- TiMBA output is written to universally readable CSV-files, while a serialized PKL file
+ preserves the complete simulation state for efficient reuse in Python.
+ We plan to describe these files with standardized metadata in the future.
+
+### 10.4 Reusable
+
+- TiMBA has dependencies and sub-dependencies which are extensively recorded in
+ the `uv.lock` file to ensure reproducibility.
+- We continually strife to keep and improve software quality. We utilize
+ automated CI processes (testing for different platforms, linting) in the form
+ of GitHub workflows.
+- We have licensed the software under the [GNU Affero General Public
+ License](https://www.gnu.org/licenses/agpl-3.0.txt). On the one hand side this
+ license is most compatible with the potential need to In-license further
+ dependencies. On the other hand, as a *Copyleft* license, it is very well
+ suited to support Open Science, reproducibility and transparency (von Waldow,
+ 2024).
+- The scientific background and in particular prior software on which this work
+ improves, is extensively documented and referenced in this README file.
+- Python as a programming language, adherence to an improved
+ ([`ruff`](https://docs.astral.sh/ruff/)-defaults) PEP8 style guide,
+ user-friendly formatting of input data, and instructions about how to
+ contribute increase the chances that this software is being reused in our
+ research community.
+
+
+## 11. Contributing to the project
+We welcome contributions, additions and suggestion to further develop or improve the code and the model. To check, discuss and include them into this project, we would like you to share your ideas with us so that we can agree on the requirements needed for accepting your contribution.
+
You can contact us directly via GitHub by creating issues, or by writing an Email to:
[wf-timba@thuenen.de](mailto:wf-timba@thuenen.de)
-So far, this README serves as a comprehensive introduction and guidance on how to get started. ´The model documentation (TI-FSM 2025) and model validation (TI-FSM 2026) enables a deeper dive.
+So far, this README serves as a comprehensive introduction and guidance on how to get started. ´The model documentation ([TI-FSM 2025](https://literatur.thuenen.de/digbib_extern/dn069603.pdf)) and model validation ([TI-FSM 2026](https://literatur.thuenen.de/digbib_extern/dn070984.pdf)) enables a deeper dive.
-
-## 11. Authors
+## 12. Authors
TiMBA was developed and written by an authors' collective named Thünen Institute Forest Sector Modelling (TI-FSM).
The individual authors are listed in alphabetical order
@@ -427,7 +612,7 @@ The individual authors are listed in alphabetical order
- [Julia Tandetzki](https://www.thuenen.de/de/fachinstitute/waldwirtschaft/personal/wissenschaftliches-personal/julia-tandetzki-msc) [(ORCID 0000-0002-0630-9434)](https://orcid.org/0000-0002-0630-9434), and
- [Tomke Honkomp](https://www.thuenen.de/de/fachinstitute/waldwirtschaft/personal/wissenschaftliches-personal/tomke-honkomp-msc) [(ORCID 0000-0002-6719-0190)](https://orcid.org/0000-0002-6719-0190).
-## 12. Contribution statement
+## 13. Contribution statement
Within the authors' collective TI-FSM, the authors have contributed over years their individual strengths and knowledge to make the model work:
| Author | Conceptualization and theoretical framework | Methodology | Data Curation and Management | Formal Analysis | Programming | Writing and Documentation | Visualization | Review and Editing | Supervision |
@@ -437,7 +622,7 @@ Within the authors' collective TI-FSM, the authors have contributed over years t
| Julia Tandetzki | X | X | X | X | X | X | X | X | |
| Tomke Honkomp | X | X | X | X | X | X | X | X | |
-## 13. License and copyright note
+## 14. License and copyright note
Licensed under the GNU AGPL, Version 3.0.
@@ -459,7 +644,7 @@ Copyright ©, 2024, Thuenen Institute, TI-FSM, wf-timba@thuenen.de
-## 14. Acknowledgements
+## 15. Acknowledgements
This work is the result of great joint efforts of the forest products market analysis team at the Thünen Institute of Forestry and others from 2018 to 2024. In the last years, many people made important contributions to this work. Without their support, reflection, and constructive criticism, this undertaking would not have been as successful as it turns out to be now. We would like express our gratitude to all of them. In particular, we would like to thank
- Pixida GmbH and especially Tobias Hierlmeier for professional support in revising and restructuring the model architecture and code and being valuable help in programming tasks
@@ -469,11 +654,13 @@ This work is the result of great joint efforts of the forest products market ana
- The Thünen Institut of Forestry and its Head Matthias Dieter for providing financial resources over the years
- [makeareadme.com](https://www.makeareadme.com/) for providing the template this README is leaned on.
-## 15. References
+## 16. References
+- Barker, M., Chue Hong, N.P., Katz, D.S. et al. Introducing the FAIR Principles for research software. Sci Data 9, 622 (2022). https://doi.org/10.1038/s41597-022-01710-x
- Buongiorno, J.; Zhu, S.; Zhang, D.; Turner, J.; Tomberlin, D. The Global Forest Products Model; Academic Press: Cambridge, MA, USA, 2003; ISBN 978-0-12-141362-0
- Buongiorno, J. Global modelling to predict timber production and prices: The GFPM approach. Forestry 2015, 88, 291–303.
- Buongiorno, J.; and Zhu, S. 2015. Technical change in forest sector models: The GFPM approach. Scand. J. For. Research, 30, 30-48.
- GFPM - Global Forest Product Model is available at https://onedrive.live.com/?authkey=%21AEF7RY7oAPlrDPk&id=93BC28B749A1DFB6%21118&cid=93BC28B749A1DFB6
+- Chue Hong, N.P. et al. (2022) “FAIR Principles for Research Software (FAIR4RS Principles)”. Zenodo. Available at: https://doi.org/10.15497/RDA00068.
- FAO. Global Forest Resources Assessment: Terms and Definitions; Forest Resources Assessment Working Paper 188; FAO: Rome, Italia, 2020; Available online: http://www.fao.org/3/I8661EN/i8661en.pdf
- FAO. Global Forest Resources Assessment. 2022. Available online: https://fra-data.fao.org/
- FAOSTAT. Forestry Production and Trade: Datenbank. Available online: https://www.fao.org/faostat/en/#data/FO
@@ -485,5 +672,8 @@ This work is the result of great joint efforts of the forest products market ana
- Samuelson, Paul A. Spatial Price Equilibrium and Linear Programming; The American Economic Review, 1952, 42 (3), 283–303; Available online http://www.jstor.org/stable/1810381.
- Schier, F.; Morland, C.; Tandetzki, J.; Honkomp, T. (2026). TI-Forest-Sector-Modelling/TiMBA_Additional_Information: Reworking data files and licenses (Version v1.0.2). Zenodo. https://doi.org/10.5281/zenodo.19466845
- TI-FSM (2025) TiMBA - Timber market Model for policy-Based Analysis: Documentation of model structure, data, and parameters. Braunschweig: Johann Heinrich von Thünen-Institut, 35 p, Thünen Working Paper 263, DOI:10.3220/253-2025-16
+- von Waldow, H. (2024). Research Software Licensing Guide (Version v1.0.2). Zenodo. https://doi.org/10.5281/zenodo.14008091
- TI-FSM (2026) TiMBA - Timber market Model for policy-Based Analysis: Validation of a partial equilibrium model. Braunschweig: Johann Heinrich von Thünen-Institut, 36 p, Thünen Working Paper 282, DOI:10.3220/253-2026-29
- World Bank. World Development Indicators|DataBank. Available online: https://databank.worldbank.org/source/world-development-indicators
+
+
diff --git a/citation.bib b/citation.bib
new file mode 100644
index 0000000..0cae39a
--- /dev/null
+++ b/citation.bib
@@ -0,0 +1,12 @@
+@article{TI-FSM2025,
+ doi = {10.21105/joss.08034},
+ url = {https://doi.org/10.21105/joss.08034},
+ year = 2025,
+ publisher = {The Open Journal},
+ volume = 10,
+ number = 115,
+ pages = 8034,
+ author = {TI-FSM and Morland, Christian and Schier, Franziska and Tandetzki, Julia and Honkomp, Tomke},
+ title = {TiMBA (Timber market Model for policy-Based Analysis)},
+ journal = {Journal of Open Source Software}
+}