The workflow that builds models#

When the pre-built models provide not enough flexibility for you, join us in the Euro-Calliope workshop where you can build your own models. Next to pre-built models, Euro-Calliope contains the routines that allow to automatically build models from raw data. All routines glued together form a scientific workflow. When you execute the workflow yourself, you have more flexibility and more customisation options. You should have experience executing scientific workflows or the willingness to learn. The build process will require an internet connection, several gigabytes of available disk space, and a few hours of compute time.



The workflow is developed on macOS, tested on macOS and Linux, but it cannot run natively on Windows.

  1. Download your copy of the latest Euro-Calliope release: workflow DOI (or clone any version from GitHub).

  2. Create a conda environment from within which you can build the model. This requires that you have conda or mamba installed on your machine. We recommend mamba, as it's a faster drop-in replacement for conda. Using either one, you can create the environment:

    # using mamba
    mamba env create -f environment.yaml
    conda activate euro-calliope
    snakemake --use-conda --list # test your installation
    # using conda
    conda env create -f environment.yaml
    conda activate euro-calliope
    snakemake --use-conda --conda-frontend conda --list # test your installation
  3. Install a Gurobi license on your computer (academic license comes at no cost), or choose a different solver.

  4. Create an account at the Copernicus Climate Data Service and a $HOME/.cdsapirc file with your credentials; see their How To (you do not need to manually install the client).


By default, the entire model will be built in the ./build/model folder when you execute the workflow. Execute the workflow like so:

snakemake --use-conda --cores <N_CORES>

N_CORES is the number of cores of your machine you want to use. It can be anything between 1 and all. Please have a look at Snakemake's documentation for more information.


The build step creates all individual components of Euro-Calliope, like technologies and time series. These can be combined to eventually build a final model to run simulations with. For an example of such a model, see ./build/model/{resolution}/example-model.yaml. It is a complete Calliope model and can be used like any other, for example like so:

calliope run ./build/model/national/example-model.yaml

For more information on how to use Calliope models, see Calliope's documentation.


Without any modifications, the workflow will rebuild the pre-built models. These models are examples and very likely require customisation to fit your purpose. Once you've managed to build and run them, it's a good point in time to learn about model customisation options and workflow customisation options.