Skip to main content

Framework for integrated energy systems assessment

Project description

Build Status Version Conda Version Documentation Status PyPI - License codecov

Forschungszentrum Juelich Logo

ETHOS.FINE - Framework for Integrated Energy System Assessment

The ETHOS.FINE python package provides a framework for modeling, optimizing and assessing energy systems. With the provided framework, systems with multiple regions, commodities and time steps can be modeled. Target of the optimization is the minimization of the total annual cost while considering technical and environmental constraints. 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 IEK-3.

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

Content

Requirements

Python package manager

The installation process uses a Conda-based Python package manager. 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 FINE. Switching to Mamba usually does not lead to any problems, as it is virtually identical to Conda in terms of operation.

If you decide to use Conda you have to expect longer installation times for FINE. In this case, we recommend the installation through our conda-forge package.

Mixed Integer Linear Programming (MILP) solver

The project environment includes GLPK 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" for more information.

Installation

If you would like to run FINE for your analysis we recommend to install it directly from conda-forge into a new Python environment. Alternatively you can install it from a local folder by using the requirements.yml file. If you want to work on the FINE code base choose "Installation for developers". It performs an editable installation of FINE and add some developer tools (e.g. pytest, black) to the environment.

Installation via conda-forge

The simplest way ist to install FINE into a fresh environment from conda-forge with:

mamba create -n fine -c conda-forge fine

Installation from a local folder

Alternatively you can first clone the content of this repository and perform the installation from there:

  1. (Shallow) clone the content of this repository
git clone --depth 1 https://github.com/FZJ-IEK3-VSA/FINE.git 
  1. Move into the FINE folder with
cd fine
  1. It is recommended to create a clean environment with conda to use FINE because it requires many dependencies.
mamba env create -f requirements.yml
  1. Activate the new environment. You should see (fine) in front of your command prompt to indicate that you are now in the virtual environment.
mamba activate fine
  1. Install FINE with:
python -m pip install --no-deps .

Installation for developers

If you want to work on the FINE codebase you need to run.

git clone https://github.com/FZJ-IEK3-VSA/FINE.git

to get the whole git history and then

mamba env create -f requirements_dev.yml

This installs additional dependencies such as pytest and installs FINE from the folder in editable mode with pip -e. Changes in the folder are then reflected in the package installation. Finally, install FINE in editable mode with:

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

Test your installation with the following command in the project root folder:

pytest

Installation of an optimization solver

FINE requires an MILP solver which can be accessed using PYOMO. It searches for the following solvers in this order:

  • GUROBI
    • Recommended due to better performance but requires license (free academic version available)
    • Set as standard solver
  • GLPK
    • This solver is installed with the FINE environment.
    • Free version available
  • CBC
    • Free version available

Gurobi installation

The installation requires the following three components:

  • Gurobi Optimizer
    • In order to download the software you need to create an account and obtain a license.
  • Gurobi license
    • The license needs to be installed according to the instructions in the registration process.
  • Gurobi python api

GLPK installation

A complete installation instruction for Windows can be found here.

CBC

Installation procedure can be found here.

Examples

A number of examples shows the capabilities of FINE.

License

MIT License

Copyright (C) 2016-2023 FZJ-IEK-3

Active Developers: Theresa Groß, Kevin Knosala, Noah Pflugradt, Johannes Behrens, Julian Belina, Arne Burdack, Toni Busch, Philipp Dunkel, Patrick Freitag, Thomas Grube, Heidi Heinrichs, Maximilian Hoffmann, Shitab Ishmam, Stefan Kraus, Felix Kullmann, Jochen Linßen, Rachel Maier, Peter Markewitz, Lars Nolting, Shruthi Patil, Jan Priesmann, Stanley Risch, Julian Schönau, Bismark Singh, Maximilian Stargardt, Christoph Winkler, Michael Zier, Detlef Stolten

Alumni: Robin Beer, Henrik Büsing, Dilara Caglayan, Timo Kannengießer, Leander Kotzur, Martin Robinius, Andreas Smolenko, Peter Stenzel, Chloi Syranidou, Johannes Thürauf, Lara Welder

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 IEK-3

We are the Institute of Energy and Climate Research - Techno-economic Systems Analysis (IEK-3) belonging to the Forschungszentrum Jülich. 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 Government’s 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 Users

From 2018 to 2022 we developed methods and models for ETHOS.FINE together with the RWTH-Aachen (Prof. Aaron Praktiknjo), the EDOM Team at FAU and the Jülich Supercomputing Centre within the BMWi funded project METIS.

           

Acknowledgement

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

Helmholtz Logo

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

fine-2.3.5.tar.gz (204.4 kB view details)

Uploaded Source

Built Distribution

fine-2.3.5-py3-none-any.whl (188.4 kB view details)

Uploaded Python 3

File details

Details for the file fine-2.3.5.tar.gz.

File metadata

  • Download URL: fine-2.3.5.tar.gz
  • Upload date:
  • Size: 204.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.13

File hashes

Hashes for fine-2.3.5.tar.gz
Algorithm Hash digest
SHA256 e6d090622b19f062fb20dfb27390bf780bd5a4d945dae35f6e2e8b597db78dff
MD5 01b0706317af0e18c48fe0be25eea00b
BLAKE2b-256 c08e18b9098afb36e681797d452d6f585358c8869739f1f1f60c947c4d63deca

See more details on using hashes here.

File details

Details for the file fine-2.3.5-py3-none-any.whl.

File metadata

  • Download URL: fine-2.3.5-py3-none-any.whl
  • Upload date:
  • Size: 188.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.13

File hashes

Hashes for fine-2.3.5-py3-none-any.whl
Algorithm Hash digest
SHA256 95b85a9a8f658c183b632a833ef945891426ee9f63a1dfcc26c91ab198a0eedf
MD5 d6534ce5e368edda6d60547a93c21795
BLAKE2b-256 6c88da54ed62a240ee5b157f5220a1f60e8fafdf9fd541a6474664e71b03bdd3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page