Building Sector-Coupled Networks#

The preparation process of the sector-coupled version of the PyPSA-Eur energy system model consists of a group of snakemake rules which are briefly outlined and explained in detail in the sections below.

Not all data dependencies are shipped with the git repository. Instead we provide separate data bundles which can be obtained using the retrieve* rules (Retrieving Data). Having downloaded the necessary data,

  • add_brownfield builds and stores the base network with all buses, HVAC lines and HVDC links, while

Rule add_brownfield#

Rule add_existing_baseyear#

Rule build_existing_heating_distribution#

Rule build_ammonia_production#

Rule build_biomass_potentials#

Rule build_egs_potentials#

This rule extracts potential and cost for electricity generation through enhanced geothermal systems.

For this, we use data from “From hot rock to useful energy…” by Aghahosseini, Breyer (2020) ‘https://doi.org/10.1016/j.apenergy.2020.115769’ Note that we input data used here is not the same as in the paper, but was passed on by the authors.

The data provides a lon-lat gridded map of Europe (1° x 1°), with each grid cell assigned a heat potential (in GWh) and a cost (in EUR/MW).

This scripts overlays that map with the network’s regions, and builds a csv with CAPEX, OPEX and p_nom_max

Rule build_biomass_transport_costs#

Reads biomass transport costs for different countries of the JRC report.

“The JRC-EU-TIMES model. Bioenergy potentials for EU and neighbouring countries.” (2015)

converts them from units ‘EUR per km/ton’ -> ‘EUR/ (km MWh)’

assuming as an approximation energy content of wood pellets

@author: bw0928

Rule build_clustered_population_layouts#

Rule build_cop_profiles#

Rule build_central_heating_temperature_profiles#

Rule build_energy_totals#

Rule build_heat_totals#

Approximate heat demand for all weather years.

approximate_heat_demand() approximates annual heat demand based on energy totals and heating degree days (HDD) using a regression of heat demand on HDDs.

Inputs#

  • resources/<run_name>/energy_totals.csv: Energy consumption by sector (columns), country and year. Output of scripts.build_energy_totals.py().

  • data/era5-annual-HDD-per-country.csv: Number of heating degree days by year (columns) and country (index).

Outputs#

  • resources/<run_name>/heat_totals.csv: Approximated annual heat demand for each country.

Rule build_gas_input_locations#

Rule build_gas_network#

Rule build_daily_heat_demand#

Rule build_hourly_heat_demand#

Rule build_district_heat_share#

Rule build_industrial_distribution_key#

Rule build_industrial_energy_demand_per_country_today#

Rule build_industrial_energy_demand_per_node_today#

Rule build_industrial_energy_demand_per_node#

Rule build_industrial_production_per_country_tomorrow#

Rule build_industrial_production_per_country#

Rule build_industrial_production_per_node#

Rule build_industry_sector_ratios#

Rule build_population_layouts#

Rule build_population_weighted_energy_totals#

Rule build_retro_cost#

Rule build_salt_cavern_potentials#

Rule build_sequestration_potentials#

Rule build_shipping_demand#

Rule build_solar_thermal_profiles#

Rule build_temperature_profiles#

Rule build_transport_demand#

Rule cluster_gas_network#

Rule time_aggregation#

Rule prepare_sector_network#