3. Running the model#
Run full model#
PyPSA-Earth utilized snakemake
workflow management tool inherited from PyPSA-Eur.
Snakemake decomposes a large software process into a set of subtasks, or ’rules’, that are automatically chained to obtain the desired output.
To execute a full model run, the following command needs to be applied:
.../pypsa-earth (pypsa-earth) % snakemake --cores 1 solve_all_networks
Here, the flag --cores 1
dictates the number of CPU cores allocated for the process. Notably, the solve_all_network
rule within Snakemake orchestrates the process of solving the network.
Note
Snakemake
, which is one of the major dependencies, will be automatically installed in pypsa-earth
environment, thereby there is no need to install it manually.
Execute different part of the workflow#
The snakemake included in the pypsa-earth
conda environment pypsa-earth can be used to execute any custom rule with the following command:
.../pypsa-earth (pypsa-earth) % snakemake < your custom rule >
Starting with essential usability features, PyPSA-Earth Snakemake procedure enables users to execute the entire workflow flexibly with diverse options, requiring no Python coding. For example, users can model the global energy system or specific subsets of countries using only necessary data. Wildcards, serving as special generic keys, adapt to multiple values based on configuration options, facilitating the execution of extensive workflows with parameter sweeps and diverse options.
You can execute some parts of the workflow in case you are interested in some specific parts. E.g. power grid topology may be extracted and cleaned with the following command which refers to the script name:
.../pypsa-earth (pypsa-earth) % snakemake -j 1 clean_osm_data
Solar profile for the requested area may be calculated using the output name:
.../pypsa-earth (pypsa-earth) % snakemake -j 1 resources/renewable_profiles/profile_solar.nc
Note
Because of the wildcards in the build_renewable_profiles
rule definition, the only available option to run the rule separately is by directly calling the output file in the snakemake command.
Choose the solver#
To solve a full optimization problem, it is important to pick a solver in config.yaml file. For instance, this tutorial uses the open-source solver glpk and does not rely on the commercial solvers such as Gurobi or CPLEX (for which free academic licenses are available).
solver:
name: glpk
Note
glpk
can solve the network with low temporal and spatial resolution. To make a full model run, it is advised to use CPLEX
, Gurobi
, or open-source HIGHs.