PyPSA-Eur

A Sector-Coupled Open Optimization Model of the European Transmission System.
https://github.com/pypsa/pypsa-eur

Category: Energy Systems
Sub Category: Global and Regional Energy System Models

Keywords

capacity-expansion-model capacity-expansion-planning energy energy-data energy-model energy-system energy-system-analysis energy-system-model energy-system-modelling energy-systems europe power-grid power-systems pypsa sector-coupling snakemake transmission-network

Keywords from Contributors

demand-flexibility energy-transition great-britain snakemake-workflow heat-pump renewable-energy energy-system-modeling heating optimisation climate-change

Last synced: 1 day ago
JSON representation

Repository metadata

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

README.md

GitHub release (latest by date including pre-releases)
Documentation
Test workflows
Size
Zenodo PyPSA-Eur
Zenodo PyPSA-Eur-Sec
Snakemake
Discord
REUSE status

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

PyPSA-Eur is an open model dataset of the European energy system at the
transmission network level that covers the full ENTSO-E area and all energy sectors, including transport, heating, biomass, industry, and agriculture.
Besides the power grid, pipeline networks for gas, hydrogen, carbon dioxide, and liquid fuels are included.
The model is suitable both for planning studies and operational studies.
The model is built from open data using a Snakemake workflow and fully open source.
It is designed to be imported into the open-source energy system modelling framework PyPSA.

[!NOTE]
PyPSA-Eur has many contributors, with the maintenance currently led by the Department of Digital Transformation in
Energy Systems
at the Technical University of
Berlin
.
Previous versions were developed at the Karlsruhe
Institute of Technology
funded by the
Helmholtz Association.

Among many other things, the dataset consists of:

  • A power grid model based on OpenStreetMap for voltage levels above 220kV (optional above 60kV).
  • The open power plant database
    powerplantmatching.
  • Electrical demand time series from the ENTSO-E Transparency Platform.
  • Renewable time series based on ERA5 and SARAH-3, assembled using atlite.
  • Geographical potentials for wind and solar generators based land eligibility analysis in atlite.
  • Energy balances compiled from Eurostat and JRC-IDEES datasets.

The high-voltage grid and the power plant fleet are shown in this map of the unclustered model (as of 1 January 2026):

PyPSA-Eur Unclustered

For computational reasons the model is usually clustered down
to 50-250 nodes. The image below shows the electricity network and power plants clustered to NUTS2 regions:

network diagram

This diagram gives an overview of the sectors and the links between
them within each model region:

sector diagram

Warnings

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). The
documentation remains somewhat patchy. You
can find showcases of the model's capabilities in the Joule paper The potential
role of a hydrogen network in
Europe
, another paper in Joule
with a description of the industry
sector
, or in a 2021 presentation
at EMP-E
. We do not recommend to
use the full resolution network model for simulations. At high granularity the
assignment of loads and generators to the nearest network node may not be a
correct assumption, depending on the topology of the underlying distribution
grid, and local grid bottlenecks may cause unrealistic load-shedding or
generator curtailment. We recommend to cluster the network to a couple of
hundred nodes to remove these local inconsistencies. See the discussion in
Section 3.4 "Model validation" of the paper.

Contributing and Support

We strongly welcome anyone interested in contributing to this project. If you have any ideas, suggestions or encounter problems, feel invited to file issues or make pull requests on GitHub.

  • To discuss with other PyPSA users, organise projects, share news, and get in touch with the community you can use the Discord server.
  • For bugs and feature requests, please use the PyPSA-Eur Github Issues page.

Licence

The code in PyPSA-Eur is released as free software under the
MIT License, see doc/licenses.md.
However, different licenses and terms of use may apply to the various
input data, see doc/data_sources.md.

Citation (CITATION.cff)

# SPDX-FileCopyrightText: Contributors to PyPSA-Eur <https://github.com/pypsa/pypsa-eur>
#
# SPDX-License-Identifier: CC0-1.0

cff-version: 1.1.0
message: "If you use this package, please cite it in the following way."
title: "PyPSA-Eur: An open sector-coupled optimisation model of the European energy system"
repository: https://github.com/pypsa/pypsa-eur
version: v2026.02.0
license: MIT
authors:
  - family-names: Brown
    given-names: Tom
    orcid: https://orcid.org/0000-0001-5898-1911
  - family-names: Victoria
    given-names: Marta
    orcid: https://orcid.org/0000-0003-1665-1281
  - family-names: Zeyen
    given-names: Elisabeth
    orcid: https://orcid.org/0000-0002-7262-3296
  - family-names: Hofmann
    given-names: Fabian
    orcid: https://orcid.org/0000-0002-6604-5450
  - family-names: Neumann
    given-names: Fabian
    orcid: https://orcid.org/0000-0001-8551-1480
  - family-names: Frysztacki
    given-names: Martha
    orcid: https://orcid.org/0000-0002-0788-1328
  - family-names: Hampp
    given-names: Johannes
    orcid: https://orcid.org/0000-0002-1776-116X
  - family-names: Schlachtberger
    given-names: David
    orcid: https://orcid.org/0000-0002-8167-8213
  - family-names: Hörsch
    given-names: Jonas
    orcid: https://orcid.org/0000-0001-9438-767X
  - family-names: Schledorn
    given-names: Amos
  - family-names: Schauß
    given-names: Caspar
  - family-names: van Greevenbroek
    given-names: Koen
  - family-names: Millinger
    given-names: Markus
  - family-names: Glaum
    given-names: Philipp
  - family-names: Xiong
    given-names: Bobby
  - family-names: Seibold
    given-names: Toni

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: about 4 hours ago

Total Commits: 4,605
Total Committers: 110
Avg Commits per committer: 41.864
Development Distribution Score (DDS): 0.705

Commits in past year: 285
Committers in past year: 47
Avg Commits per committer in past year: 6.064
Development Distribution Score (DDS) in past year: 0.853

Name Email Commits
Fabian Neumann f****n@o****e 1359
pre-commit-ci[bot] 6****] 454
Fabian f****f@g****e 436
lisazeyen l****n@w****e 358
Jonas Hörsch j****h@k****u 248
Tom Brown t****m@n****g 216
martavp m****z@g****m 119
martacki m****i@k****u 117
Lukas Trippe l****p@p****e 106
Philipp Glaum p****m@t****e 96
AmosSchledorn a****n@i****m 89
Koen van Greevenbroek k****k@u****o 79
virio-andreyana 1****a 78
euronion 4****n 66
Adam-Dvorak1 9****1 63
github-actions[bot] 4****] 53
Bobby Xiong 3****g 46
Michael Lindner m****r@p****e 41
Thomas Gilon t****n@o****g 38
Parisra 1****a 38
LukasFrankenQ l****n@e****k 36
millingermarkus m****r@c****e 27
Thomas Gilon t****i@c****m 26
Max Parzen m****n@e****k 26
dependabot[bot] 4****] 24
toniseibold t****b@g****m 23
ekatef e****a@g****m 18
chrstphtrs c****s@t****e 17
cpschau 1****u 16
Daniel Rüdt 1****t 15
and 80 more...

Committer domains:


Issue and Pull Request metadata

Last synced: about 4 hours ago

Total issues: 600
Total pull requests: 1,961
Average time to close issues: 7 months
Average time to close pull requests: 26 days
Total issue authors: 119
Total pull request authors: 104
Average comments per issue: 1.59
Average comments per pull request: 1.15
Merged pull request: 1,461
Bot issues: 1
Bot pull requests: 231

Past year issues: 38
Past year pull requests: 139
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 9 days
Past year issue authors: 26
Past year pull request authors: 43
Past year average comments per issue: 1.16
Past year average comments per pull request: 0.91
Past year merged pull request: 63
Past year bot issues: 0
Past year bot pull requests: 23

More stats: https://issues.ecosyste.ms/repositories/lookup?url=https://github.com/pypsa/pypsa-eur

Top Issue Authors

  • fneum (126)
  • nworbmot (71)
  • FabianHofmann (39)
  • euronion (22)
  • fhg-isi (18)
  • koen-vg (18)
  • Heronimonimo (17)
  • lisazeyen (16)
  • lindnemi (15)
  • martavp (15)
  • pz-max (11)
  • coroa (11)
  • p-glaum (10)
  • pworschischek-aggmag (8)
  • amos-schledorn (8)

Top Pull Request Authors

  • fneum (420)
  • lkstrp (140)
  • FabianHofmann (132)
  • pre-commit-ci[bot] (107)
  • github-actions[bot] (89)
  • lindnemi (68)
  • koen-vg (68)
  • p-glaum (64)
  • toniseibold (62)
  • bobbyxng (61)
  • martacki (59)
  • lisazeyen (57)
  • cpschau (48)
  • tgilon (42)
  • euronion (41)

Top Issue Labels

  • bug (177)
  • enhancement (152)
  • help wanted (15)
  • low priority (12)
  • documentation (12)
  • design (10)
  • high priority (9)
  • wontfix (4)
  • question (4)
  • discussion (4)
  • coding style (2)

Top Pull Request Labels

  • dependencies (32)
  • bug (21)
  • enhancement (21)
  • high priority (10)
  • ariadne-only (8)
  • github_actions (8)
  • documentation (7)
  • design (7)
  • low priority (6)
  • discussion (2)
  • wontfix (2)
  • DNMY (2)
  • epic event (1)
  • help wanted (1)
  • coding style (1)

Package metadata

proxy.golang.org: github.com/pypsa/pypsa-eur

  • Homepage:
  • Documentation: https://pkg.go.dev/github.com/pypsa/pypsa-eur#section-documentation
  • Licenses:
  • Latest release: v0.13.0 (published almost 2 years ago)
  • Last Synced: 2026-08-05T15:57:01.467Z (about 2 hours ago)
  • Versions: 16
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Rankings:
    • Dependent packages count: 6.999%
    • Average: 8.173%
    • Dependent repos count: 9.346%
pypi.org: snakemake-storage-plugin-lfs

Snakemake storage plugin for downloading Git LFS files with optional local caching

  • Homepage:
  • Documentation: https://snakemake-storage-plugin-lfs.readthedocs.io/
  • Licenses: MIT
  • Latest release: 0.2.1 (published 3 months ago)
  • Last Synced: 2026-08-05T15:56:59.792Z (about 2 hours ago)
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 12 Last month
  • Rankings:
    • Dependent packages count: 7.361%
    • Downloads: 20.357%
    • Average: 23.117%
    • Dependent repos count: 41.632%
  • Maintainers (1)
pypi.org: snakemake-logger-plugin-pypsa

A PyPSA-Eur logger plugin for Snakemake

  • Homepage:
  • Documentation: https://snakemake-logger-plugin-pypsa.readthedocs.io/
  • Licenses: MIT
  • Latest release: 0.2.0 (published 5 months ago)
  • Last Synced: 2026-08-05T15:56:59.749Z (about 2 hours ago)
  • Versions: 2
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 113 Last month
  • Rankings:
    • Dependent packages count: 8.064%
    • Average: 26.829%
    • Dependent repos count: 45.593%
  • Maintainers (2)
pypi.org: snakemake-storage-plugin-cached-http

Snakemake storage plugin for downloading files via HTTP with caching and rate limiting

  • Homepage:
  • Documentation: https://snakemake-storage-plugin-cached-http.readthedocs.io/
  • Licenses: MIT
  • Latest release: 0.2.1 (published 6 months ago)
  • Last Synced: 2026-08-05T15:56:59.898Z (about 2 hours ago)
  • Versions: 6
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 46 Last month
  • Rankings:
    • Dependent packages count: 8.295%
    • Average: 27.592%
    • Dependent repos count: 46.889%
  • Maintainers (1)

Dependencies

.github/workflows/ci.yaml actions
  • actions/cache v3 composite
  • actions/checkout v2 composite
  • conda-incubator/setup-miniconda v2 composite

Score: -Infinity