This notebook is a sort of proof-of-concept illustrating a simple workflow to simulate the hourly operations of all the European power systems using the following tools and data sources:
- PyPSA power system: one of the most used open power system models
- ENTSO-E Transparency Platform: data for all the European power system operators
- Copernicus Climate Change Service data (C3S): climate and energy data for all the European countries
The aim of this notebook is to show the possibility to easily simulate current power systems using open data and tools. In principle, this notebook can be used for simple explorations and to analyse specific events, simulating what-if scenarios (e.g., what if we had more wind power installed?) or analysing the impact of climate variability (the used C3S dataset provides a wide set of climatic conditions to test).
The file requirements.yml
contains the list of the Python modules needed to run the example. The example is using the open-source solver Cbc, which can be installed using Anaconda.
The C3S data for wind, solar radiation and air temperature are too big for GitHub (>100 MB). To download them you have two options:
- Run the script
download_c3s_data.py
in thedata
folder (you need an account to the C3S CDS andcdsapi
configured) - Download the data from this Zenodo repository
Open and run the Jupyter notebook main.ipynb
Being a proof-of-concept, the simulation shown in the notebook shows the following limitations:
- Country level: the spatial resolution of the simulation is quite coarse and modelling a national power system as a single node hide transmission bottlenecks and the impact of the geographical distribution of generation. A possible improvement might be switching to a Bidding Zone Level (BZN): in this case the data from the ENTSO-E TP would be available while for the wind/solar/hydro we should use the NUTS2 aggregation.
- Storage not realistic: storage (both reservoir and closed-loop pumping) is very simplified.
- Generation costs: the marginal costs set in PyPSA are mostly based on the PyPSA-EUR and on JRC-FF55-MIX-2030 and they are the same for all the countries.
- Missing countries: in some cases, national data is not available. For example SK and UK in 2022 are not available for the entire year but this happens also in other cases.
- Missing data points in TP: data in the Transparency Platform can be quite patchy, with missing data points in many cases.
- Availability factors and efficiency: the availability factors and efficiency of generators are not realistic and the same for all the countries. In some cases, especially for the French nuclear, this leads to behaviours quite different from the reality.