Every AC line of PyPSA-Eur's simplified network whose two ends fall in different NUTS3 regions, with the parameters needed to aggregate it to any coarser level.
Source
PyPSA-Eur base_s.nc (7,360 lines, 4,382 buses), endpoints located against
the unsimplified nuts3_shapes.geojson. Same data licence as
pypsa_eur_models. Regenerated by data-raw/make_nuts_lines.R.
Details
| column | meaning |
from, to | NUTS3 codes, ordered so from < to |
s_nom | thermal rating, MW — extensive, sums |
length_km, x, r | as built; length and impedance are recomputed on aggregation |
v_nom, num_parallel | voltage and circuit count |
Deliberately not pre-aggregated, not even to NUTS3, so one routine can be applied at all four levels and NUTS3 is not a privileged case.
Over half the grid is already gone
Lines with both ends in one NUTS3 region are dropped, exactly as
pypsa.clustering.spatial.aggregatelines() drops intra-cluster lines. That
is 4,218 of 7,360 lines (57%), carrying 53% of capacity — discarded at
the finest level available. Coarsening further only removes more.
Aggregating correctly
Three different rules, none of them a plain average:
s_nom,num_parallel— sum;length— recomputed as the great-circle distance between the two region centroids timesline_length_factor(1.25). It is not inherited, and it grows: median corridor length rises from 85 km at NUTS3 to 459 km at NUTS0;x,r— rescaled by the length ratio, then parallel-combined as1 / sum(1/x).
Because impedance follows length, losses are overestimated at coarse
levels; because s_nom is a plain thermal sum ignoring N-1 and loop flows,
capacity is overestimated too. The two do not cancel.
