Overview
A model of the Polish energy system built on PyPSA-PL, the open model developed by Instrat. Unlike a power-only market model, PyPSA-PL is sector-coupled — it co-optimises electricity, district and decentralised heat, hydrogen, and light-vehicle mobility on a 16-voivodeship nodal network (v3.1). Poland's power system is coal- and lignite-heavy today, with fast-growing wind and solar; the model captures that starting point and the cost-optimal path away from it.
This page presents the model as a four-point timeline at nodal resolution:
- Base 2024 — a historical year with observed installed capacities, validated against ENTSO-E actual generation. This is the credibility anchor.
- Main 2030 / 2035 / 2040 — the cost-optimal Polish energy system under Instrat's Main scenario
(
instrat_ambitious+trade) for each horizon year: a forward decarbonisation pathway, not a hindcast.
How it's built
A reproducible overlay pipeline (pypsa-pl-modelverse) pins an upstream PyPSA-PL commit
(v3.1.0, unmodified), drives its in-process Python build/solve, and exports each variant to two
formats that represent the same network: a solved PyPSA .nc and a Convexity .db. The forward
scenarios use Instrat's own scenario definitions; the base year applies the model's historical
capacities while leaving dispatchable thermal free to merit-order (see Validation). Solved with
the open-source HiGHS solver (interior point + crossover).
Validation
For the 2024 base year, modelled generation by fuel is compared against ENTSO-E Transparency — Actual Generation per Production Type for the Polish bidding zone (see the Validation tab). Every gate carrier lands within band, including the genuinely free, merit-ordered thermal fleet:
- Hard coal 46.6 vs 53.9 TWh, lignite 48.8 vs 33.5 TWh, gas 11.0 vs 19.4 TWh — coal and lignite together supply ~61% of generation, as in reality.
- Wind (24.5 vs 22.6 TWh) and solar (15.3 vs 17.8 TWh) are held to their historical annual energy, so they match by construction; the thermal merit order is the independent test, and it passes.
The honest caveat: the model puts a little too much cheap lignite ahead of gas (lignite runs high, gas low) — a marginal-cost calibration signal, but comfortably inside the validation band. Wind and solar matching is not an independent check.
Downloads
pypsa-pl-….nc— the solved PyPSA network: the full sector-coupled topology (power, heat, hydrogen, mobility), dispatch, and nodal prices. Free with sign-in.pypsa-pl-….db— a Convexity export of the same sector-coupled network; open it directly in Convexity to explore the nodes, carriers, and dispatch interactively. Requires a licence.
Limitations
- The base year leaves thermal dispatch free so the merit order can be validated, rather than pinning all generation to history as PyPSA-PL's stock historical configuration does — a deliberate choice that makes the validation meaningful rather than circular.
- The forward years (2030–2040) are scenario projections, not validated against actuals (none exist); read them as cost-optimal outcomes under the Main assumptions, not forecasts.
- The transmission network is solved as a transport model (thermal line limits, no Kirchhoff/voltage
constraints), so the
.dbis for dispatch and topology exploration, not security analysis. - Renewable availability uses a representative weather year; wind/solar/CHP and cross-border trade in the base year are constrained to observed annual energy.