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
- Host: GitHub
- URL: https://github.com/pypsa/pypsa-eur
- Owner: PyPSA
- Created: 2017-10-11T23:54:41.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2026-08-04T18:35:16.000Z (about 23 hours ago)
- Last Synced: 2026-08-05T14:51:19.795Z (about 3 hours ago)
- Topics: 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
- Language: Python
- Homepage: https://pypsa-eur.readthedocs.io/
- Size: 148 MB
- Stars: 599
- Watchers: 18
- Forks: 443
- Open Issues: 256
- Releases: 21
-
Metadata Files:
- Readme: README.md
- License: LICENSES/CC-BY-4.0.txt
- Citation: CITATION.cff
README.md
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):

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:

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

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
- Name: PyPSA
- Login: PyPSA
- Email:
- Kind: organization
- Description: Python for Power System Analysis
- Website: www.pypsa.org
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/32890768?v=4
- Repositories: 29
- Last ynced at: 2024-03-26T13:25:46.062Z
- Profile URL: https://github.com/PyPSA
GitHub Events
Total
- Fork event: 85
- Create event: 182
- Commit comment event: 6
- Release event: 2
- Issues event: 132
- Watch event: 123
- Delete event: 141
- Member event: 1
- Issue comment event: 486
- Push event: 972
- Pull request review comment event: 299
- Pull request review event: 445
- Pull request event: 550
Last Year
- Fork event: 85
- Create event: 182
- Commit comment event: 6
- Release event: 2
- Issues event: 132
- Watch event: 123
- Delete event: 141
- Member event: 1
- Issue comment event: 486
- Push event: 972
- Pull request review comment event: 299
- Pull request review event: 445
- Pull request event: 550
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 | 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:
- openenergytransition.org: 5
- kit.edu: 3
- pm.me: 2
- tu-berlin.de: 2
- mpe.au.dk: 2
- ed.ac.uk: 2
- iai-esm003.iai.kit.edu: 2
- gmx.net: 1
- oth-regensburg.de: 1
- eng.au.dk: 1
- ieg.fraunhofer.de: 1
- climact.com: 1
- chalmers.se: 1
- posteo.de: 1
- uit.no: 1
- nworbmot.org: 1
- gmx.de: 1
- outlook.de: 1
- users.fias.science: 1
- pik-potsdam.de: 1
- inatech.uni-freiburg.de: 1
- tuhh.de: 1
- boku.ac.at: 1
- campus.tu-berlin.de: 1
- fe1.prime.net: 1
- witte.sh: 1
- kth.se: 1
- git.com: 1
- d-fine.de: 1
- sms.ed.ac.uk: 1
- hotmail.de: 1
- fico.com: 1
- alexandersommer.eu: 1
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
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
- Total packages: 4
-
Total downloads:
- pypi: 171 last-month
- Total dependent packages: 0 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 26
- Total maintainers: 3
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
- actions/cache v3 composite
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
Score: -Infinity