PyPSA-Eur: A Sector-Coupled Open Optimisation Model of the European Energy System

PyPSA-Eur: A Sector-Coupled Open Optimisation Model of the European Energy System#

GitHub release (latest by date including pre-releases) Documentation GitHub repo size Snakemake REUSE Stackoverflow

PyPSA-Eur is an open model dataset of the European energy system at the transmission network level that covers the full ENTSO-E area. It covers demand and supply for all energy sectors. From version v0.8.0, PyPSA-Eur includes all the features from PyPSA-Eur-Sec, which is now deprecated.

Electricity System#

The electricity system representation contains alternating current lines at and above 220 kV voltage level and all high voltage direct current lines, substations, an open database of conventional power plants, time series for electrical demand and variable renewable generator availability, geographic potentials for the expansion of wind and solar power.

The model is suitable both for operational studies and generation and transmission expansion planning studies. The continental scope and highly resolved spatial scale enables a proper description of the long-range smoothing effects for renewable power generation and their varying resource availability.


Sector-Coupled Energy System#

A sector-coupled extension (previously known as PyPSA-Eur-Sec, which is now deprecated) adds demand and supply for the following sectors: transport, space and water heating, biomass, energy consumption in the agriculture, industry and industrial feedstocks, carbon management, carbon capture and usage/sequestration. This completes the energy system and includes all greenhouse gas emitters except waste management, agriculture, forestry and land use. The diagram below gives an overview of the sectors and the links between them:



You can find showcases of the model’s capabilities in the Supplementary Materials of the Joule paper The potential role of a hydrogen network in Europe, the Supplementary Materials of another paper in Joule with a description of the industry sector, or in a 2021 presentation at EMP-E. The sector-coupled extension of PyPSA-Eur was initially described in the paper Synergies of sector coupling and transmission reinforcement in a cost-optimised, highly renewable European energy system (2018) but it differs by being based on the higher resolution electricity transmission model PyPSA-Eur rather than a one-node-per-country model, and by including biomass, industry, industrial feedstocks, aviation, shipping, better carbon management, carbon capture and usage/sequestration, and gas networks.


PyPSA-Eur is designed to be imported into the open energy system modelling framework PyPSA for which documentation is available as well. However, since the workflow is modular, it should be easy to adapt the data workflow to other modelling frameworks.

The restriction to freely available and open data encourages the open exchange of model data developments and eases the comparison of model results. It provides a full, automated software pipeline to assemble the load-flow-ready model from the original datasets, which enables easy replacement and improvement of the individual parts.


PyPSA-Eur is under active development and has several Limitations which you should understand before using the model. The Github repository issues collect known topics we are working on. Please feel free to help or make suggestions.

This project is currently maintained by the Department of Digital Transformation in Energy Systems at the Technische Universität Berlin. Previous versions were developed within the IAI at the Karlsruhe Institute of Technology (KIT) which was funded by the Helmholtz Association, and by the Renewable Energy Group at FIAS to carry out simulations for the CoNDyNet project, financed by the German Federal Ministry for Education and Research (BMBF) as part of the Stromnetze Research Initiative.




The graph above was generated using snakemake --rulegraph -F | sed -n "/digraph/,/}/p" | dot -Tpng -o workflow.png

Learning Energy System Modelling#

If you are (relatively) new to energy system modelling and optimisation and plan to use PyPSA-Eur, the following resources are one way to get started in addition to reading this documentation.

Citing PyPSA-Eur#

If you use PyPSA-Eur for your research, we would appreciate it if you would cite one of the following papers:

For electricity-only studies:

    author = "Jonas Hoersch and Fabian Hofmann and David Schlachtberger and Tom Brown",
    title = "PyPSA-Eur: An open optimisation model of the European transmission system",
    journal = "Energy Strategy Reviews",
    volume = "22",
    pages = "207--215",
    year = "2018",
    doi = "10.1016/j.esr.2018.08.012",
    eprint = "1806.01613"

For sector-coupling studies:

    author = "Fabian Neumann and Elisabeth Zeyen and Marta Victoria and Tom Brown",
    title = "The potential role of a hydrogen network in Europe",
    journal "Joule",
    volume = "7",
    pages = "1--25"
    year = "2023",
    eprint = "2207.05816",
    doi = "10.1016/j.joule.2023.06.016",

For sector-coupling studies with pathway optimisation:

    title = "Speed of technological transformations required in {Europe} to achieve different climate goals",
    author = "Marta Victoria and Elisabeth Zeyen and Tom Brown",
    journal = "Joule",
    volume = "6",
    number = "5",
    pages = "1066--1086",
    year = "2022",
    doi = "10.1016/j.joule.2022.04.016",
    eprint = "2109.09563",

If you want to cite a specific PyPSA-Eur version, each release of PyPSA-Eur is stored on Zenodo with a release-specific DOI:

Operating Systems#

The PyPSA-Eur workflow is continuously tested for Linux, macOS and Windows (WSL only).