Three unsolved energyRt models converted from PyPSA-Eur networks, spanning the range this package is built for: a full European system, a small one that runs in seconds, and a copperplate reference for it.
Format
An energyRt model object.
An object of class model of length 1.
An object of class model of length 1.
An object of class model of length 1.
An object of class model of length 1.
An object of class model of length 1.
Source
Converted from PyPSA-Eur v2026.02.0
(commit d6383eb, PyPSA 1.1.0) by convert_pypsa().
Licence: ODbL-1.0, required by the share-alike terms of the OpenStreetMap-derived inputs, and independent of this package's Apache-2.0 code licence. Attribution is required for OpenStreetMap contributors and the European Environment Agency among others.
The World Database on Protected Areas, which may not be redistributed, is
not present – see system.file("LICENSE.note", package = "reneuro")
for how that was verified and what it costs (renewable land availability in
Moldova and Ukraine is overstated as a result). The same file records that
the OPSD and ENTSO-E demand series carry unclear upstream terms.
Regenerated by data-raw/make_models.R.
Details
pypsa_eur_41 is a 41-region European electricity system over a full year.
It is the realistic case, and at 12.6 MB it is by far the largest object
here; it is loaded lazily, so it costs nothing until touched.
pypsa_eur_5 is PyPSA-Eur's own Belgium example: five regions, one week
(168 hourly snapshots). It is small enough to solve in seconds, which makes
it the model every example and test uses.
pypsa_eur_5cp is the same network with transmission = "copperplate" –
the same corridors, but unbounded and lossless. It is the reference point
for what the network representation costs: a copperplate cannot be more
expensive than any bounded version of itself, so it is the floor.
pypsa_eur_289 is the working model at continental scale. PyPSA-Eur is
normally clustered to 50-250 nodes for computational reasons; this sits at
the top of that range, aggregating the NUTS3 network to NUTS2 over the full
year. 296 NUTS2 regions yield 289 AC nodes: seven contain no substation of
their own and merge into a neighbour, retaining their demand and
generation in the cluster they join. Aggregation uses
aggregate_pypsa() – capacities sum, intensive quantities take
capacity-weighted means, intra-cluster branches are dropped, and corridor
lengths are recomputed from cluster centroids.
pypsa_eur_1035 is the NUTS3 network, experimental, on a four-day
seasonal sample (96 of 8,760 hourly snapshots). It is the finest resolution
the data supports and is intended as the starting point for aggregation
work in R, rather than as a model to solve routinely. NUTS3 yields 1,035 AC
nodes rather than 1,477 because 442 regions contain no substation and merge
into neighbours; as above, their consumption is retained. Trade uses one
flat loss rate per corridor and a transport formulation without Kirchhoff's
voltage law, which is what keeps it solvable at all. It interpolates to
roughly 10 million parameter rows and a linear programme of 1.3 million rows
after presolve – see benchmark_solvers() for what that costs.
All were converted with cost_source = "network", taking costs from the
network rather than from a separate cost assumption, so they agree with the
PyPSA solve they can be compared against.
Examples
# Provenance travels with the object.
str(attr(pypsa_eur_5, "reneuro_provenance"), max.level = 1)
#> List of 9
#> $ clone : chr "pypsa-eur-v2026"
#> $ commit : chr "d6383ebf602767b1adbb676fe8a16e37a6e9f932"
#> $ describe : chr "v2026.02.0"
#> $ dirty : logi TRUE
#> $ built_on : chr "2026-08-25"
#> $ reneuro : chr "0.1.0"
#> $ object : chr "pypsa_eur_5"
#> $ source : chr "base_s_5_elec.nc"
#> $ convert_args:List of 1
