This snakemake workflow builds upon Euro-Calliope v1.0 with the following:
ehighways
, based on the output of the European project "e-Highways2050").The resulting energy system transmission network is:
The key rules of the workflow shown graphically are:
This worflow currently relies on a custom version of the euro-calliope workflow. The correct version of this subworkflows are given as git submodules in this repository.
To run the Sector-Coupled Euro-Calliope workflow, you need to undertake the following steps:
git clone --recurse-submodules git@github.com:calliope-project/sector-coupled-euro-calliope.git
conda env create -f environment.yaml
+ conda activate sector-coupled-euro-calliope
.snakemake --use-conda --cores 1
(You can change the number of cores, or run using the cluster profile by adding the argument --profile config/euler
).
If you need to rebuild something from the euro-calliope
subworkflow, then you should cd
into the directory and run snakemake from there: snakemake --configfile ../config/euro-calliope-2050.yaml --use-conda --cores 1 [path/to/file]
.snakemake --use-conda --profile config/euler "build/ehighways/outputs/run_2018_2H_neutral.nc"
)run_scripts
. These scripts are decoupled from the workflow since they can take a very long time to run and can clash with snakemake's file watching processes. The run scripts are suitable for use on a high performance computer using the LSF software.There are a number of issues you may come across when trying to run this workflow. Many of these issues will be solved in upcoming releases.
Not enough disk space/memory to run scripts.
This full workflow is designed to be run on a high performance computing cluster.
If you want to create specific files that you know should have a low resource requirement, you can ask snakemake to create that file specifically: snakemake [arguments] "build/path/to/file"
Snakemake rules not being triggered in subworkflows.
Due to an enresolved bug, you may find that from the top-level workflow, snakemake doesn't think there is anything to do in the subworkflows, even if no data exists in them.
You can solve this by going into the individual workflow directories and running them directly from there.
See the Building and running the model
above for more information.
Choosing between 2030 and 2050 projection year.
The workflow has two sets of assumptions for demand and supply technology characteristics, depending on the "projection" year.
You can simply change the projection_year
option in the main workflow configuration file to switch between the two.
If running from the main workflow, this will pass the correct information down to the euro-calliope
sub-workflow.
If running from within the euro-calliope
sub-workflow, you should make sure to point to the correct configuration file (../config/euro-calliope-2030.yaml
or ../config/euro-calliope-2050.yaml
).
Running for a subset of countries in Europe. This is not exactly possible in the current formulation of the workflow, since all countries are needed to enable gap filling (where some countries are used to fill in for others). Your best bet is to instead run for all countries and then exclude certain regions when building and running the Calliope model.
Changing the composition of regions.
The file statistical_units_to_ehighways_regions.csv
maps NUTS3 regions to user-defined Euro-Calliope regions.
If you would like to update the grouping of regions, you can do so here.
Warning about a protected file when rerunning the workflow.
If you get a ProtectedOutputException
, it probably means you need to update the timestamp of the file euro-calliope/data/automatic/europe-cutout.nc
using touch euro-calliope/data/automatic/europe-cutout.nc
.
Running the exact workflow to produce results as in the accompanying publication. There have been many updates to the workflow since the version used to produce results in DOI:10.1016/j.joule.2022.05.009. These updates rarely change the data, but rather the structure of the workflow and the method of running the Calliope models. The version of the workflow that was used can be found here. A pre-built version of the same model can be be found on Zenodo. To rebuild the original version of the model, we recommend you use this current version of the workflow to build the model, making changes to YAML template files to match the data used in the older version. Major changes to data and final Calliope model structure are:
synfuel_transmission
Calliope override).
Previously only industry synethtic fuel demands in one region could be met by other regions (using the industry_fuel_shared
Calliope override).If you use this workflow or the pre-built Sector-Coupled Euro-Calliope model, please cite:
Pickering, B., Lombardi, F., Pfenninger, S., 2022. Diversity of options to eliminate fossil fuels and reach carbon neutrality across the entire European energy system. Joule. DOI:10.1016/j.joule.2022.05.009