Skip to content

CIRED/EOLES

Repository files navigation

Eoles

The Eoles model optimizes the investment and operation of the energy system in order to minimize the total cost while satisfying exogenous energy demands.
Here is a presentation of an earlier version of the model: http://www.centre-cired.fr/quel-mix-electrique-optimal-en-france-en-2050/
Most of the model versions, as well as published articles using them, are presented at https://www.centre-cired.fr/the-eoles-family-of-models/


Installing code and dependencies


How to get the code :

If you don't have git installed on your computer, you can download the zip folder on Github (via the latest release) or Zenodo.
To get the latest build, you can retrieve the files from this Github through the command line :
git clone https://github.com/CIRED/EOLES.git
A folder will be created in the current directory with all the files contained in this Github.

Installing the dependencies

The model requires some python packages as well as the Gurobi solver. We provide both a requirements.txt and an environment.yml file for the packages dependencies, and a guide to getting an academic licence for Gurobi.

  • Python : Python is an interpreted programming language, with Pyomo it will allow us to model Eoles.
    You can download the latest version on the dedicated website : https://www.python.org/downloads/
    Then you just have to install it on your computer.
    If you plan to install Conda or if you have Conda installed on your computer, Python is likely to be already installed. The model requires python 3 to run properly, and it is recommended to use at least python 3.10 (older versions might work but were not tested)

  • Conda ou Pip depending on your preference: Conda and Pip are package managers for Python. Conda is recommended.

    • Conda
      You can find all the information you need to download and install Conda here:
      https://docs.conda.io/projects/conda/en/latest/user-guide/install/
      Be careful to choose the version of conda according to the version of Python !!!
      You can install Miniconda which is a minimal version of conda,
      this allows you to not install all the packages included in conda, but you can install only those that you want.
    • Pip
      You can find all the necessary information to download and install pip here:
      https://pip.pypa.io/en/stable/installing/
      Pip is installed by default with Conda.
  • Installing dependencies with Conda: Navigate to your directory of choice. Create the environment and install dependencies : conda env create -f environment.yml Activate the environment : conda activate envEOLES If you wish to use Jupyter Notebook : use conda install -c anaconda ipykernel and python -m ipykernel install --user --name=envEOLES The environment will then appear in the kernel list.

  • Installing dependencies with Pip: Navigate to your directory of choice. Create a virtual environment: python -m venv envEOLES If you use another name for the environment and plan on pushing changes to the github, remember to exclude the environment folder from the commit. Activate the virtual environment : Windows : envEOLES\Scripts\activate macOS/Linux: source envEOLES/bin/activate Install dependencies : pip install -r requirements.txt

  • Solver : The solver that this model uses is Gurobi.
    This solver is commercial but free licenses are available for academics.
    This solver has the advantage to be much faster than other open-source solvers, such as cbc. More information about Gurobi here : https://www.gurobi.com/
    You can also use another solver if you wish.
    To use Gurobi :


Using the model


The EOLES model is written as a class contained in the modelEoles.py package.
Several utility functions (initialization and plotting functions) that could be of interest to the user are in the utils.py package.
An example .py file is provided, which shows how to do the following : import the ModelEOLES class, create an instance of the model with a given configuration file then use the different methods to build and solve the model and to extract results.\


Input data


Example input data suffisant to use example.py are provided in the inputs folder and described in the Sources.xml file.
The path to each data file can be modified in the config files.
Supplementary demand and production profiles can be found in this Zenodo repository

The expected data format is clarified for each data type (constant or profile) in the relevant utility function in utils.py.


This README was originally written by Quentin Bustarret.
You can find past versions of the model (code and work they were used in) at the following webpage : https://www.centre-cired.fr/the-eoles-family-of-models/