Annual energy and coincident peak for every region of nuts_gs, at all four levels plus a Europe-wide row.
Source
Aggregated from PyPSA-Eur's electricity_demand_base_s.nc (4,356 buses ×
8,760 hours). Buses are located against the unsimplified upstream
nuts3_shapes.geojson. Same data licence as pypsa_eur_models.
Regenerated by data-raw/make_nuts_load.R.
Details
| column | meaning |
level | europe, nuts0, nuts1, nuts2, nuts3 |
region | region code at that level |
load_twh | annual energy, TWh — extensive, sums up the hierarchy |
peak_gw | max of the summed hourly series, GW — not extensive |
n_buses | substation buses in the region; 0 means no demand at all |
Total across all regions is 3,356 TWh at every level.
Peak diversity is zero below the country
In general peak(parent) <= sum(peak(children)), the gap being load
diversity. Here it is exactly zero within every country, and appears only
across Europe (580 GW summed against 543 GW coincident, 6.8%).
That is a property of the data, not of European demand. PyPSA-Eur builds per-bus load as a static fraction times the national hourly series, so every bus in a country carries an identical normalised shape. Going finer than a country adds spatial detail to the level of demand and none to its shape: at NUTS3, 1,477 regions share 36 distinct profiles.
442 regions carry no demand
load.substation_only: true places demand only on substation buses, and 442
of the 1,477 NUTS3 regions contain none — Germany alone has 182. They are
present with load_twh = 0 and n_buses = 0 rather than omitted, so the gap
shows on a map instead of vanishing. It is a real ceiling on useful
resolution.
Examples
# energy is extensive: every level sums to the same total
tapply(nuts_load$load_twh, nuts_load$level, sum)
#> europe nuts0 nuts1 nuts2 nuts3
#> 3356.476 3356.476 3356.476 3356.476 3356.476
