Skip to contents

Annual energy and coincident peak for every region of nuts_gs, at all four levels plus a Europe-wide row.

Usage

nuts_load

Format

A data.frame of 2,059 rows and 5 columns.

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

columnmeaning
leveleurope, nuts0, nuts1, nuts2, nuts3
regionregion code at that level
load_twhannual energy, TWh — extensive, sums up the hierarchy
peak_gwmax of the summed hourly series, GW — not extensive
n_busessubstation 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.

See also

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