ETHOS.FINE

ETHOS.FINE: A Framework for Integrated Energy System Assessment - Published in JOSS (2025)

https://github.com/fzj-iek3-vsa/fine

Science Score: 98.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README and JOSS metadata
  • Academic publication links
    Links to: joss.theoj.org
  • Committers with academic emails
    39 of 48 committers (81.3%) from academic institutions
  • Institutional organization owner
    Organization fzj-iek3-vsa has institutional domain (www.fz-juelich.de)
  • JOSS paper metadata
    Published in Journal of Open Source Software

Scientific Fields

Engineering Computer Science - 33% confidence
Last synced: 6 months ago · JSON representation

Repository

The ETHOS.FINE python package provides a framework for modeling, optimizing and assessing energy systems

Basic Info
Statistics
  • Stars: 80
  • Watchers: 14
  • Forks: 48
  • Open Issues: 6
  • Releases: 20
Created over 7 years ago · Last pushed 6 months ago
Metadata Files
Readme License Code of conduct Citation

README.md

ETHOS.FINE - Framework for Integrated Energy System Assessment

Build Status Version Conda Version Documentation Status PyPI - License codecov DOI

Forschungszentrum Juelich Logo

The ETHOS.FINE python package provides a framework for modeling, optimizing and assessing energy systems. With the provided framework, systems with multiple regions, commodities, time steps and investment periods can be modeled. Target of the optimization is the minimization of the systems net present value (NPV) while considering technical and environmental constraints. If only one investment period is considered, the net present value is equal to the total annual costs (TAC). Besides using the full temporal resolution, an interconnected typical period storage formulation can be applied, that reduces the complexity and computational time of the model.

This Readme provides information on the installation of the package. For further information have a look at the documentation.

ETHOS.FINE is used for the modelling of a diverse group of optimization problems within the Energy Transformation PatHway Optimization Suite (ETHOS) at ICE-2.

If you want to use ETHOS.FINE in a published work, please kindly cite following publication. The python package which provides the time series aggregation module and its corresponding literature can be found here.

Installation

There are several options for the installation of ETHOS.FINE. You can install it via PyPI or from conda-forge. For detailed information, have a look at the installation documentation.

NOTE: If you want to work on the source code of FINE, see Editable install from conda-forge.

If you would like to run ETHOS.FINE for your analysis we recommend to install it directly from conda-forge into a new Python environment with

bash mamba create --name fine --channel conda-forge fine

Note on Mamba vs.Conda: mamba commands can be substitued with conda. We highly recommend using (Micro-)Mamba instead of Conda. The recommended way to use Mamba on your system is to install the Miniforge distribution. They offer installers for Windows, Linux and OS X. In principle, Conda and Mamba are interchangeable. The commands and concepts are the same. The distributions differ in the methodology for determining dependencies when installing Python packages. Mamba relies on a more modern methodology, which (with the same result) leads to very significant time savings during the installation of ETHOS.FINE. Switching to Mamba usually does not lead to any problems, as it is virtually identical to Conda in terms of operation.

Note on the solver: The functionality of ETHOS.FINE depends on the following C libraries that need to be installed on your system. If you do not know how to install those, consider installing from conda-forge. The mamba/conda installation comes with GLPK (installation for Windows) as Mixed Integer Linear Programming (MILP) solver. If you want to solve large problems it is highly recommended to install GUROBI. See "Installation of an optimization solver" in the documentation for more information.

Examples

A number of examples shows the capabilities of ETHOS.FINE.

  • 00_Tutorial
    • In this application, an energy supply system, consisting of two regions, is modeled and optimized. Recommended as starting point to get to know to ETHOS.FINE.
  • 011nodeEnergySystemWorkflow
    • In this application, a single region energy system is modeled and optimized. The system includes only a few technologies.
  • 02_EnergyLand
    • In this application, a single region energy system is modeled and optimized. Compared to the previous examples, this example includes a lot more technologies considered in the system.
  • 03Multi-regionalEnergySystemWorkflow
    • In this application, an energy supply system, consisting of eight regions, is modeled and optimized. The example shows how to model multi-regional energy systems. The example also includes a notebook to get to know the optional performance summary. The summary shows how the optimization performed.
  • 04ModelRunfromExcel
    • ETHOS.FINE can also be run by excel. This example shows how to read and run a model using excel files.
  • 05DistrictOptimization
    • In this application, a small district is modeled and optimized. This example also includes binary decision variables.
  • 06WaterSupply_System
    • The application cases of ETHOS.FINE are not limited. This application shows how to model the water supply system.
  • 07NetCDFtosaveandsetupmodelinstance
    • This example shows how to save the input and optimized results of an energy system Model instance to netCDF files to allow reproducibility.
  • 08Spatialandtechnologyaggregation
    • These two examples show how to reduce the model complexity. Model regions can be aggregated to reduce the number of regions (spatial aggregation). Input parameters are automatically adapted. Furthermore, technologies can be aggregated to reduce complexity, e.g. reducing the number of different PV components (technology aggregation). Input parameters are automatically adapted.
  • 09StochasticOptimization
    • In this application, a stochastic optimization is performed. It is possible to perform the optimization of an energy system model with different input parameter sets to receive a more robust solution.
  • 10_PerfectForesight
    • In this application, a transformation pathway of an energy system is modeled and optimized showing how to handle several investment periods with time-dependent assumptions for costs and operation.
  • 11_Partload
    • In this application, a hydrogen system is modeled and optimized considering partload behavior of the electrolyzer.

Notes for developers

Editable install from conda-forge

It is recommended to create a clean environment with conda to use ETHOS.FINE because it requires many dependencies.

bash mamba env create --name fine --file requirements_dev.yml mamba activate fine

Install ETHOS.FINE as editable install and without checking the dependencies from pypi with

bash python -m pip install --no-deps --editable .

Editable install from pypi

If you do not want to use conda-forge consider the steps in section Installation from pipy and install ETHOS.FINE as editable install and with developer dependencies with

bash python -m pip install --editable .[develop]

Good coding style

We use ruff to ensure good coding style. Make sure to use it before contributing to the code base with

bash ruff check fine

License

MIT License

Copyright (C) 2016-2025 FZJ-ICE-2

Active Developers: Johannes Behrens, Theresa Kltz, Noah Pflugradt, Julian Belina, Arne Burdack, Toni Busch, Philipp Dunkel, David Franzmann, Maike Gnir, Thomas Grube, Lars Hadidi, Heidi Heinrichs, Shitab Ishmam, Sebastian Kebrich, Jochen Linen, Nils Ludwig, Lilly Madeisky, Drin Marmullaku, Gian Mller, Kenneth Okosun, Olalekan Omoyele, Shruthi Patil, Kai Schulze, Julian Schnau, Maximilian Stargardt, Lana Sltzer, Henrik Wenzel, Bernhard Wortmann, Lovindu Wijesinghe, Christoph Winkler, Detlef Stolten

Alumni: Robin Beer, Henrik Bsing, Dilara Caglayan, Patrick Freitag, Maximilian Hoffmann, Jason Hu, Timo Kannengieer, Kevin Knosala, Leander Kotzur, Felix Kullmann, Stefan Kraus, Rachel Maier, Peter Markewitz, Lars Nolting, Jan Priesmann, Stanley Risch, Martin Robinius, Bismark Singh, Andreas Smolenko, Peter Stenzel, Chloi Syranidou, Johannes Thrauf, Lara Welder, Michael Zier

You should have received a copy of the MIT License along with this program. If not, see https://opensource.org/licenses/MIT

About Us

Institute image ICE-2

We are the Institute of Climate and Energy Systems (ICE) - Jlich Systems Analysis belonging to the Forschungszentrum Jlich. Our interdisciplinary department's research is focusing on energy-related process and systems analyses. Data searches and system simulations are used to determine energy and mass balances, as well as to evaluate performance, emissions and costs of energy systems. The results are used for performing comparative assessment studies between the various systems. Our current priorities include the development of energy strategies, in accordance with the German Federal Governments greenhouse gas reduction targets, by designing new infrastructures for sustainable and secure energy supply chains and by conducting cost analysis studies for integrating new technologies into future energy market frameworks.

Contributions and Support

Every contributions are welcome: - If you have a question, you can start a Discussion. You will get a response as soon as possible. - If you want to report a bug, please open an Issue. We will then take care of the issue as soon as possible. - If you want to contribute with additional features or code improvements, open a Pull request.

Code of Conduct

Please respect our code of conduct.

Acknowledgement

This work was initially supported by the Helmholtz Association under the Joint Initiative "Energy System 2050 A Contribution of the Research Field Energy".

The authors also gratefully acknowledge financial support by the Federal Ministry for Economic Affairs and Energy of Germany as part of the project METIS (project number 03ET4064, 2018-2022).

This work was supported by the Helmholtz Association under the program "Energy System Design".

Helmholtz Logo

Owner

  • Name: Forschungszentrum Jülich - Jülich Systems Analysis
  • Login: FZJ-IEK3-VSA
  • Kind: organization
  • Location: Forschungszentrum Jülich

Institute of Climate and Energy Systems (ICE)

JOSS Publication

ETHOS.FINE: A Framework for Integrated Energy System Assessment
Published
January 20, 2025
Volume 10, Issue 105, Page 6274
Authors
Theresa Klütz ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany
Kevin Knosala ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany, RWTH Aachen University, Chair for Fuel Cells, Faculty of Mechanical Engineering, 52062 Aachen, Germany
Johannes Behrens ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany, RWTH Aachen University, Chair for Fuel Cells, Faculty of Mechanical Engineering, 52062 Aachen, Germany
Rachel Maier ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany, RWTH Aachen University, Chair for Fuel Cells, Faculty of Mechanical Engineering, 52062 Aachen, Germany
Maximilian Hoffmann ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany
Noah Pflugradt ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany
Detlef Stolten ORCID
Forschungszentrum Jülich GmbH, Institute of Climate and Energy Systems – Jülich Systems Analysis, 52425 Jülich, Germany, RWTH Aachen University, Chair for Fuel Cells, Faculty of Mechanical Engineering, 52062 Aachen, Germany
Editor
Arfon Smith ORCID
Tags
energy system modeling optimization energy

GitHub Events

Total
  • Create event: 4
  • Issues event: 7
  • Release event: 4
  • Watch event: 8
  • Delete event: 2
  • Member event: 2
  • Issue comment event: 14
  • Push event: 42
  • Pull request review comment event: 2
  • Pull request review event: 4
  • Pull request event: 8
  • Fork event: 7
Last Year
  • Create event: 4
  • Issues event: 7
  • Release event: 4
  • Watch event: 8
  • Delete event: 2
  • Member event: 2
  • Issue comment event: 14
  • Push event: 44
  • Pull request review comment event: 2
  • Pull request review event: 4
  • Pull request event: 8
  • Fork event: 7

Committers

Last synced: 10 months ago

All Time
  • Total Commits: 1,557
  • Total Committers: 48
  • Avg Commits per committer: 32.438
  • Development Distribution Score (DDS): 0.791
Past Year
  • Commits: 121
  • Committers: 12
  • Avg Commits per committer: 10.083
  • Development Distribution Score (DDS): 0.479
Top Committers
Name Email Commits
s.patil s****l@f****e 326
Kevin Knosala k****a@f****e 277
Groß, Theresa t****s@f****e 202
Robin Beer r****r@f****e 172
Lara Welder l****r@f****e 152
l-kotzur l****r@f****e 71
Stanley s****h@f****e 50
xing21 s****g@f****e 36
p.dunkel p****l@f****e 34
Johannes Behrens j****s@f****e 31
maximilian-hoffmann m****n@f****e 29
Jason Aristides Hu j****u@f****e 19
Priesmann j****r@e****e 15
Shitab Ishmam s****m@f****e 14
Michael Zier m****r@f****e 13
ra.maier r****r@f****e 12
Leander Kotzur l****r@r****e 8
Julian Belina j****a@f****e 7
Theresa Groß t****s@i****e 7
Dilara Gulcin Caglayan d****n@f****e 6
t.busch t****h@f****e 6
Nolting l****o@e****e 6
Kevin Knosala k****a@i****e 5
Johannes Thürauf j****f@f****e 5
Christoph Winkler c****r@f****e 5
andreas smolenko a****o@f****e 4
n.pflugradt n****t@f****e 4
Stefan s****s@f****e 4
Stefan Kraus s****s@i****e 4
Felix Kullmann f****n@i****e 4
and 18 more...
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 21
  • Total pull requests: 47
  • Average time to close issues: 3 months
  • Average time to close pull requests: 10 days
  • Total issue authors: 12
  • Total pull request authors: 9
  • Average comments per issue: 1.0
  • Average comments per pull request: 0.72
  • Merged pull requests: 29
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 3
  • Pull requests: 11
  • Average time to close issues: 1 day
  • Average time to close pull requests: about 19 hours
  • Issue authors: 3
  • Pull request authors: 3
  • Average comments per issue: 0.67
  • Average comments per pull request: 0.73
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • GregorBecker (5)
  • maurerle (3)
  • l-welder (2)
  • l-kotzur (2)
  • julianbelina (2)
  • hangtianzhang (1)
  • t-gross (1)
  • ghost (1)
  • V3lop5 (1)
  • dcaglayan (1)
  • ChriKo97 (1)
  • Burdack1 (1)
Pull Request Authors
  • t-gross (20)
  • maurerle (8)
  • l-kotzur (8)
  • l-welder (5)
  • MartinRobinius (2)
  • aacarneiro (1)
  • OfficialCodexplosive (1)
  • ChriKo97 (1)
  • noah80 (1)
Top Labels
Issue Labels
bug (1)
Pull Request Labels

Packages

  • Total packages: 4
  • Total downloads:
    • pypi 247 last-month
  • Total dependent packages: 1
    (may contain duplicates)
  • Total dependent repositories: 2
    (may contain duplicates)
  • Total versions: 64
  • Total maintainers: 3
proxy.golang.org: github.com/fzj-iek3-vsa/fine
  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent repos count: 1.6%
Average: 4.1%
Dependent packages count: 6.5%
Last synced: 6 months ago
proxy.golang.org: github.com/FZJ-IEK3-VSA/FINE
  • Versions: 21
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago
pypi.org: fine

Framework for integrated energy systems assessment

  • Versions: 21
  • Dependent Packages: 1
  • Dependent Repositories: 2
  • Downloads: 247 Last month
Rankings
Dependent packages count: 4.7%
Average: 10.8%
Dependent repos count: 11.6%
Downloads: 16.2%
Maintainers (3)
Last synced: 6 months ago
conda-forge.org: fine
  • Versions: 1
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Forks count: 26.7%
Dependent repos count: 34.0%
Stargazers count: 36.9%
Average: 37.2%
Dependent packages count: 51.2%
Last synced: 6 months ago

Dependencies

Dockerfile docker
  • continuumio/miniconda3 latest build