"""The module containing all parameters for the scenario table
"""
import pandas as pd
import egon.data.config
[docs]def read_csv(year):
source = egon.data.config.datasets()["pypsa-technology-data"]["targets"][
"data_dir"
]
return pd.read_csv(f"{source}costs_{year}.csv")
[docs]def read_costs(df, technology, parameter, value_only=True):
result = df.loc[
(df.technology == technology) & (df.parameter == parameter)
].squeeze()
# Rescale costs to EUR/MW
if "EUR/kW" in result.unit:
result.value *= 1e3
result.unit = result.unit.replace("kW", "MW")
if value_only:
return result.value
else:
return result
[docs]def annualize_capital_costs(overnight_costs, lifetime, p):
"""
Parameters
----------
overnight_costs : float
Overnight investment costs in EUR/MW or EUR/MW/km
lifetime : int
Number of years in which payments will be made
p : float
Interest rate in p.u.
Returns
-------
float
Annualized capital costs in EUR/MW/a or EUR/MW/km/a
"""
# Calculate present value of an annuity (PVA)
PVA = (1 / p) - (1 / (p * (1 + p) ** lifetime))
return overnight_costs / PVA
[docs]def global_settings(scenario):
"""Returns global paramaters for the selected scenario.
Parameters
----------
scenario : str
Name of the scenario.
Returns
-------
parameters : dict
List of global parameters
"""
if scenario == "eGon2035":
parameters = {
"weather_year": 2011,
"population_year": 2035,
"fuel_costs": { # Netzentwicklungsplan Strom 2035, Version 2021, 1. Entwurf, p. 39, table 6
"oil": 73.8, # [EUR/MWh]
"gas": 25.6, # [EUR/MWh]
"coal": 20.2, # [EUR/MWh]
"lignite": 4.0, # [EUR/MWh]
"nuclear": 1.7, # [EUR/MWh]
"biomass": 40, # Dummyvalue, ToDo: Find a suitable source
},
"co2_costs": 76.5, # [EUR/t_CO2]
"co2_emissions": { # Netzentwicklungsplan Strom 2035, Version 2021, 1. Entwurf, p. 40, table 8
"waste": 0.165, # [t_CO2/MW_th]
"lignite": 0.393, # [t_CO2/MW_th]
"gas": 0.201, # [t_CO2/MW_th]
"nuclear": 0.0, # [t_CO2/MW_th]
"oil": 0.288, # [t_CO2/MW_th]
"coal": 0.335, # [t_CO2/MW_th]
"other_non_renewable": 0.268, # [t_CO2/MW_th]
},
"interest_rate": 0.05, # [p.u.]
}
elif scenario == "eGon100RE":
parameters = {
"weather_year": 2011,
"population_year": 2050,
"fuel_costs": { # Netzentwicklungsplan Strom 2035, Version 2021, 1. Entwurf, p. 39, table 6
"oil": 73.8, # [EUR/MWh]
"gas": 25.6, # [EUR/MWh]
"coal": 20.2, # [EUR/MWh]
"lignite": 4.0, # [EUR/MWh]
"nuclear": 1.7, # [EUR/MWh]
},
"co2_costs": 76.5, # [EUR/t_CO2]
"co2_emissions": { # Netzentwicklungsplan Strom 2035, Version 2021, 1. Entwurf, p. 40, table 8
"waste": 0.165, # [t_CO2/MW_th]
"lignite": 0.393, # [t_CO2/MW_th]
"gas": 0.201, # [t_CO2/MW_th]
"nuclear": 0.0, # [t_CO2/MW_th]
"oil": 0.288, # [t_CO2/MW_th]
"coal": 0.335, # [t_CO2/MW_th]
"other_non_renewable": 0.268, # [t_CO2/MW_th]
},
}
elif scenario == "eGon2021":
parameters = {
"weather_year": 2011,
"population_year": 2021,
}
else:
print(f"Scenario name {scenario} is not valid.")
return parameters
[docs]def electricity(scenario):
"""Returns paramaters of the electricity sector for the selected scenario.
Parameters
----------
scenario : str
Name of the scenario.
Returns
-------
parameters : dict
List of parameters of electricity sector
"""
if scenario == "eGon2035":
costs = read_csv(2035)
parameters = {"grid_topology": "Status Quo"}
# Insert effciencies in p.u.
parameters["efficiency"] = {
"oil": read_costs(costs, "oil", "efficiency"),
"battery": {
"store": read_costs(costs, "battery inverter", "efficiency")
** 0.5,
"dispatch": read_costs(costs, "battery inverter", "efficiency")
** 0.5,
"standing_loss": 0,
"max_hours": 6,
},
"pumped_hydro": {
"store": read_costs(costs, "PHS", "efficiency") ** 0.5,
"dispatch": read_costs(costs, "PHS", "efficiency") ** 0.5,
"standing_loss": 0,
"max_hours": 6,
},
}
# Warning: Electrical parameters are set in osmTGmod, editing these values will not change the data!
parameters["electrical_parameters"] = {
"ac_line_110kV": {
"s_nom": 260, # [MVA]
"R": 0.109, # [Ohm/km]
"L": 1.2, # [mH/km]
},
"ac_cable_110kV": {
"s_nom": 280, # [MVA]
"R": 0.0177, # [Ohm/km]
"L": 0.3, # [mH/km]
},
"ac_line_220kV": {
"s_nom": 520, # [MVA]
"R": 0.109, # [Ohm/km]
"L": 1.0, # [mH/km]
},
"ac_cable_220kV": {
"s_nom": 550, # [MVA]
"R": 0.0176, # [Ohm/km]
"L": 0.3, # [mH/km]
},
"ac_line_380kV": {
"s_nom": 1790, # [MVA]
"R": 0.028, # [Ohm/km]
"L": 0.8, # [mH/km]
},
"ac_cable_380kV": {
"s_nom": 925, # [MVA]
"R": 0.0175, # [Ohm/km]
"L": 0.3, # [mH/km]
},
}
# Insert overnight investment costs
# Source for eHV grid costs: Netzentwicklungsplan Strom 2035, Version 2021, 2. Entwurf
# Source for HV lines and cables: Dena Verteilnetzstudie 2021, p. 146
parameters["overnight_cost"] = {
"ac_ehv_overhead_line": 2.5e6
/ (
2
* parameters["electrical_parameters"]["ac_line_380kV"]["s_nom"]
), # [EUR/km/MW]
"ac_ehv_cable": 11.5e6
/ (
2
* parameters["electrical_parameters"]["ac_cable_380kV"][
"s_nom"
]
), # [EUR/km/MW]
"ac_hv_overhead_line": 0.06e6
/ parameters["electrical_parameters"]["ac_line_110kV"][
"s_nom"
], # [EUR/km/MW]
"ac_hv_cable": 0.8e6
/ parameters["electrical_parameters"]["ac_cable_110kV"][
"s_nom"
], # [EUR/km/MW]
"dc_overhead_line": 0.5e3, # [EUR/km/MW]
"dc_cable": 3.25e3, # [EUR/km/MW]
"dc_inverter": 0.3e6, # [EUR/MW]
"transformer_380_110": 17.33e3, # [EUR/MVA]
"transformer_380_220": 13.33e3, # [EUR/MVA]
"transformer_220_110": 17.5e3, # [EUR/MVA]
"battery inverter": read_costs(
costs, "battery inverter", "investment"
),
"battery storage": read_costs(
costs, "battery storage", "investment"
),
}
parameters["lifetime"] = {
"ac_ehv_overhead_line": read_costs(
costs, "HVAC overhead", "lifetime"
),
"ac_ehv_cable": read_costs(costs, "HVAC overhead", "lifetime"),
"ac_hv_overhead_line": read_costs(
costs, "HVAC overhead", "lifetime"
),
"ac_hv_cable": read_costs(costs, "HVAC overhead", "lifetime"),
"dc_overhead_line": read_costs(costs, "HVDC overhead", "lifetime"),
"dc_cable": read_costs(costs, "HVDC overhead", "lifetime"),
"dc_inverter": read_costs(costs, "HVDC inverter pair", "lifetime"),
"transformer_380_110": read_costs(
costs, "HVAC overhead", "lifetime"
),
"transformer_380_220": read_costs(
costs, "HVAC overhead", "lifetime"
),
"transformer_220_110": read_costs(
costs, "HVAC overhead", "lifetime"
),
"battery inverter": read_costs(
costs, "battery inverter", "lifetime"
),
"battery storage": read_costs(
costs, "battery storage", "lifetime"
),
}
# Insert annualized capital costs
# lines in EUR/km/MW/a
# transfermer, inverter, battery in EUR/MW/a
parameters["capital_cost"] = {}
for comp in parameters["overnight_cost"].keys():
parameters["capital_cost"][comp] = annualize_capital_costs(
parameters["overnight_cost"][comp],
parameters["lifetime"][comp],
global_settings("eGon2035")["interest_rate"],
)
parameters["capital_cost"]["battery"] = (
parameters["capital_cost"]["battery inverter"]
+ parameters["efficiency"]["battery"]["max_hours"]
* parameters["capital_cost"]["battery storage"]
)
# Insert marginal_costs in EUR/MWh
# marginal cost can include fuel, C02 and operation and maintenance costs
parameters["marginal_cost"] = {
"oil": global_settings(scenario)["fuel_costs"]["oil"]
+ read_costs(costs, "oil", "VOM")
+ global_settings(scenario)["co2_costs"]
* global_settings(scenario)["co2_emissions"]["oil"],
"other_non_renewable": global_settings(scenario)["fuel_costs"][
"gas"
]
+ global_settings(scenario)["co2_costs"]
* global_settings(scenario)["co2_emissions"][
"other_non_renewable"
],
"lignite": global_settings(scenario)["fuel_costs"]["lignite"]
+ read_costs(costs, "lignite", "VOM")
+ global_settings(scenario)["co2_costs"]
* global_settings(scenario)["co2_emissions"]["lignite"],
"coal": global_settings(scenario)["fuel_costs"]["coal"]
+ read_costs(costs, "coal", "VOM")
+ global_settings(scenario)["co2_costs"]
* global_settings(scenario)["co2_emissions"]["coal"],
"nuclear": global_settings(scenario)["fuel_costs"]["nuclear"]
+ read_costs(costs, "nuclear", "VOM"),
"biomass": global_settings(scenario)["fuel_costs"]["biomass"]
+ read_costs(costs, "biomass CHP", "VOM"),
"wind_offshore": read_costs(costs, "offwind", "VOM"),
"wind_onshore": read_costs(costs, "onwind", "VOM"),
"solar": read_costs(costs, "solar", "VOM"),
}
elif scenario == "eGon100RE":
costs = read_csv(2050)
parameters = {"grid_topology": "Status Quo"}
# Insert effciencies in p.u.
parameters["efficiency"] = {
"battery": {
"store": read_costs(costs, "battery inverter", "efficiency")
** 0.5,
"dispatch": read_costs(costs, "battery inverter", "efficiency")
** 0.5,
"standing_loss": 0,
"max_hours": 6,
},
"pumped_hydro": {
"store": read_costs(costs, "PHS", "efficiency") ** 0.5,
"dispatch": read_costs(costs, "PHS", "efficiency") ** 0.5,
"standing_loss": 0,
"max_hours": 6,
},
}
# Warning: Electrical parameters are set in osmTGmod, editing these values will not change the data!
parameters["electrical_parameters"] = {
"ac_line_110kV": {
"s_nom": 260, # [MVA]
"R": 0.109, # [Ohm/km]
"L": 1.2, # [mH/km]
},
"ac_cable_110kV": {
"s_nom": 280, # [MVA]
"R": 0.0177, # [Ohm/km]
"L": 0.3, # [mH/km]
},
"ac_line_220kV": {
"s_nom": 520, # [MVA]
"R": 0.109, # [Ohm/km]
"L": 1.0, # [mH/km]
},
"ac_cable_220kV": {
"s_nom": 550, # [MVA]
"R": 0.0176, # [Ohm/km]
"L": 0.3, # [mH/km]
},
"ac_line_380kV": {
"s_nom": 1790, # [MVA]
"R": 0.028, # [Ohm/km]
"L": 0.8, # [mH/km]
},
"ac_cable_380kV": {
"s_nom": 925, # [MVA]
"R": 0.0175, # [Ohm/km]
"L": 0.3, # [mH/km]
},
}
# Insert overnight investment costs
# Source for transformer costs: Netzentwicklungsplan Strom 2035, Version 2021, 2. Entwurf
# Source for HV lines and cables: Dena Verteilnetzstudie 2021, p. 146
parameters["overnight_cost"] = {
"ac_ehv_overhead_line": read_costs(
costs, "HVAC overhead", "investment"
), # [EUR/km/MW]
"ac_hv_overhead_line": 0.06e6
/ parameters["electrical_parameters"]["ac_line_110kV"][
"s_nom"
], # [EUR/km/MW]
"ac_hv_cable": 0.8e6
/ parameters["electrical_parameters"]["ac_cable_110kV"][
"s_nom"
], # [EUR/km/MW]
"dc_overhead_line": read_costs(
costs, "HVDC overhead", "investment"
),
"dc_cable": read_costs(costs, "HVDC overhead", "investment"),
"dc_inverter": read_costs(
costs, "HVDC inverter pair", "investment"
),
"transformer_380_110": 17.33e3, # [EUR/MVA]
"transformer_380_220": 13.33e3, # [EUR/MVA]
"transformer_220_110": 17.5e3, # [EUR/MVA]
"battery inverter": read_costs(
costs, "battery inverter", "investment"
),
"battery storage": read_costs(
costs, "battery storage", "investment"
),
}
parameters["lifetime"] = {
"ac_ehv_overhead_line": read_costs(
costs, "HVAC overhead", "lifetime"
),
"ac_ehv_cable": read_costs(costs, "HVAC overhead", "lifetime"),
"ac_hv_overhead_line": read_costs(
costs, "HVAC overhead", "lifetime"
),
"ac_hv_cable": read_costs(costs, "HVAC overhead", "lifetime"),
"dc_overhead_line": read_costs(costs, "HVDC overhead", "lifetime"),
"dc_cable": read_costs(costs, "HVDC overhead", "lifetime"),
"dc_inverter": read_costs(costs, "HVDC inverter pair", "lifetime"),
"transformer_380_110": read_costs(
costs, "HVAC overhead", "lifetime"
),
"transformer_380_220": read_costs(
costs, "HVAC overhead", "lifetime"
),
"transformer_220_110": read_costs(
costs, "HVAC overhead", "lifetime"
),
"battery inverter": read_costs(
costs, "battery inverter", "lifetime"
),
"battery storage": read_costs(
costs, "battery storage", "lifetime"
),
}
# Insert annualized capital costs
# lines in EUR/km/MW/a
# transfermer, inverter, battery in EUR/MW/a
parameters["capital_cost"] = {}
for comp in parameters["overnight_cost"].keys():
parameters["capital_cost"][comp] = annualize_capital_costs(
parameters["overnight_cost"][comp],
parameters["lifetime"][comp],
global_settings("eGon2035")["interest_rate"],
)
parameters["capital_cost"]["battery"] = (
parameters["capital_cost"]["battery inverter"]
+ parameters["efficiency"]["battery"]["max_hours"]
* parameters["capital_cost"]["battery storage"]
)
# Insert marginal_costs in EUR/MWh
# marginal cost can include fuel, C02 and operation and maintenance costs
parameters["marginal_cost"] = {
"wind_offshore": read_costs(costs, "offwind", "VOM"),
"wind_onshore": read_costs(costs, "onwind", "VOM"),
"solar": read_costs(costs, "solar", "VOM"),
}
elif scenario == "eGon2021":
parameters = {}
else:
print(f"Scenario name {scenario} is not valid.")
return parameters
[docs]def gas(scenario):
"""Returns paramaters of the gas sector for the selected scenario.
Parameters
----------
scenario : str
Name of the scenario.
Returns
-------
parameters : dict
List of parameters of gas sector
"""
if scenario == "eGon2035":
costs = read_csv(2035)
parameters = {
"main_gas_carrier": "CH4",
"H2_feedin_volumetric_fraction": 0.15,
}
# Insert effciencies in p.u.
parameters["efficiency"] = {
"power_to_H2": read_costs(costs, "electrolysis", "efficiency"),
"H2_to_power": read_costs(costs, "fuel cell", "efficiency"),
"CH4_to_H2": read_costs(costs, "SMR", "efficiency"),
"H2_feedin": 1,
"H2_to_CH4": read_costs(costs, "methanation", "efficiency"),
"OCGT": read_costs(costs, "OCGT", "efficiency"),
}
# Insert overnight investment costs
parameters["overnight_cost"] = {
"power_to_H2": read_costs(costs, "electrolysis", "investment"),
"H2_to_power": read_costs(costs, "fuel cell", "investment"),
"CH4_to_H2": read_costs(costs, "SMR", "investment"),
"H2_to_CH4": read_costs(costs, "methanation", "investment"),
"H2_feedin": 0,
"H2_underground": read_costs(
costs, "hydrogen storage underground", "investment"
),
"H2_overground": read_costs(
costs, "hydrogen storage tank incl. compressor", "investment"
),
"H2_pipeline": read_costs(
costs, "H2 (g) pipeline", "investment"
), # [EUR/MW/km]
}
# Insert lifetime
parameters["lifetime"] = {
"power_to_H2": read_costs(costs, "electrolysis", "lifetime"),
"H2_to_power": read_costs(costs, "fuel cell", "lifetime"),
"CH4_to_H2": read_costs(costs, "SMR", "lifetime"),
"H2_to_CH4": read_costs(costs, "methanation", "lifetime"),
"H2_underground": read_costs(
costs, "hydrogen storage underground", "lifetime"
),
"H2_overground": read_costs(
costs, "hydrogen storage tank incl. compressor", "lifetime"
),
"H2_pipeline": read_costs(costs, "H2 (g) pipeline", "lifetime"),
"H2_feedin": read_costs(costs, "CH4 (g) pipeline", "lifetime"),
}
# Insert annualized capital costs
parameters["capital_cost"] = {}
for comp in parameters["overnight_cost"].keys():
parameters["capital_cost"][comp] = annualize_capital_costs(
parameters["overnight_cost"][comp],
parameters["lifetime"][comp],
global_settings("eGon2035")["interest_rate"],
)
parameters["marginal_cost"] = {
"CH4": global_settings(scenario)["fuel_costs"]["gas"]
+ global_settings(scenario)["co2_costs"]
* global_settings(scenario)["co2_emissions"]["gas"],
"OCGT": read_costs(costs, "OCGT", "VOM"),
"biogas": global_settings(scenario)["fuel_costs"]["gas"],
"chp_gas": read_costs(costs, "central gas CHP", "VOM"),
}
# Insert max gas production (generator) over the year
parameters["max_gas_generation_overtheyear"] = {
"CH4": 36000000, # [MWh] Netzentwicklungsplan Gas 2020–2030
"biogas": 10000000, # [MWh] Netzentwicklungsplan Gas 2020–2030
}
elif scenario == "eGon100RE":
costs = read_csv(2050)
interest_rate = 0.07 # [p.u.]
parameters = {
"main_gas_carrier": "H2",
"retrofitted_CH4pipeline-to-H2pipeline_share": 0.23,
# p-e-s result, this value is overwritten if p-e-s is run
}
# Insert effciencies in p.u.
parameters["efficiency"] = {
"power_to_H2": read_costs(costs, "electrolysis", "efficiency"),
"H2_to_power": read_costs(costs, "fuel cell", "efficiency"),
"CH4_to_H2": read_costs(costs, "SMR", "efficiency"),
"H2_to_CH4": read_costs(costs, "methanation", "efficiency"),
"OCGT": read_costs(costs, "OCGT", "efficiency"),
}
# Insert FOM in %
parameters["FOM"] = {
"H2_underground": read_costs(
costs, "hydrogen storage underground", "FOM"
),
"H2_overground": read_costs(
costs, "hydrogen storage tank incl. compressor", "FOM"
),
"power_to_H2": read_costs(costs, "electrolysis", "FOM"),
"H2_to_power": read_costs(costs, "fuel cell", "FOM"),
"CH4_to_H2": read_costs(costs, "SMR", "FOM"),
"H2_to_CH4": read_costs(costs, "methanation", "FOM"),
"H2_pipeline": read_costs(costs, "H2 (g) pipeline", "FOM"),
"H2_pipeline_retrofit": read_costs(
costs, "H2 (g) pipeline repurposed", "FOM"
),
}
# Insert overnight investment costs
parameters["overnight_cost"] = {
"power_to_H2": read_costs(costs, "electrolysis", "investment"),
"H2_to_power": read_costs(costs, "fuel cell", "investment"),
"CH4_to_H2": read_costs(costs, "SMR", "investment"),
"H2_to_CH4": read_costs(costs, "methanation", "investment"),
"H2_underground": read_costs(
costs, "hydrogen storage underground", "investment"
),
"H2_overground": read_costs(
costs, "hydrogen storage tank incl. compressor", "investment"
),
"H2_pipeline": read_costs(
costs, "H2 (g) pipeline", "investment"
), # [EUR/MW/km]
"H2_pipeline_retrofit": read_costs(
costs, "H2 (g) pipeline repurposed", "investment"
), # [EUR/MW/km]
}
# Insert lifetime
parameters["lifetime"] = {
"power_to_H2": read_costs(costs, "electrolysis", "lifetime"),
"H2_to_power": read_costs(costs, "fuel cell", "lifetime"),
"CH4_to_H2": read_costs(costs, "SMR", "lifetime"),
"H2_to_CH4": read_costs(costs, "methanation", "lifetime"),
"H2_underground": read_costs(
costs, "hydrogen storage underground", "lifetime"
),
"H2_overground": read_costs(
costs, "hydrogen storage tank incl. compressor", "lifetime"
),
"H2_pipeline": read_costs(costs, "H2 (g) pipeline", "lifetime"),
"H2_pipeline_retrofit": read_costs(
costs, "H2 (g) pipeline repurposed", "lifetime"
),
}
# Insert costs
parameters["capital_cost"] = {}
for comp in parameters["overnight_cost"].keys():
parameters["capital_cost"][comp] = (
annualize_capital_costs(
parameters["overnight_cost"][comp],
parameters["lifetime"][comp],
interest_rate,
)
+ parameters["overnight_cost"][comp]
* (parameters["FOM"][comp] / 100)
)
for comp in ["H2_to_power", "H2_to_CH4"]:
parameters["capital_cost"][comp] = (
annualize_capital_costs(
parameters["overnight_cost"][comp],
parameters["lifetime"][comp],
interest_rate,
)
+ parameters["overnight_cost"][comp]
* (parameters["FOM"][comp] / 100)
) * parameters["efficiency"][comp]
parameters["marginal_cost"] = {
"OCGT": read_costs(costs, "OCGT", "VOM"),
"biogas": read_costs(costs, "biogas", "fuel"),
"chp_gas": read_costs(costs, "central gas CHP", "VOM"),
}
elif scenario == "eGon2021":
parameters = {}
else:
print(f"Scenario name {scenario} is not valid.")
return parameters
[docs]def mobility(scenario):
"""Returns parameters of the mobility sector for the selected scenario.
Parameters
----------
scenario : str
Name of the scenario.
Returns
-------
parameters : dict
List of parameters of mobility sector
Notes
-----
For a detailed description of the parameters see module
:mod:`egon.data.datasets.emobility.motorized_individual_travel`.
"""
if scenario == "eGon2035":
parameters = {
"motorized_individual_travel": {
"NEP C 2035": {
"ev_count": 15100000,
"bev_mini_share": 0.1589,
"bev_medium_share": 0.3533,
"bev_luxury_share": 0.1053,
"phev_mini_share": 0.0984,
"phev_medium_share": 0.2189,
"phev_luxury_share": 0.0652,
"model_parameters": {},
}
}
}
elif scenario == "eGon100RE":
# eGon100RE has 3 Scenario variations
# * allocation will always be done for all scenarios
# * model data will be written to tables `egon_etrago_*` only
# for the variation as speciefied in `datasets.yml`
parameters = {
"motorized_individual_travel": {
"Reference 2050": {
"ev_count": 25065000,
"bev_mini_share": 0.1589,
"bev_medium_share": 0.3533,
"bev_luxury_share": 0.1053,
"phev_mini_share": 0.0984,
"phev_medium_share": 0.2189,
"phev_luxury_share": 0.0652,
"model_parameters": {},
},
"Mobility Transition 2050": {
"ev_count": 37745000,
"bev_mini_share": 0.1589,
"bev_medium_share": 0.3533,
"bev_luxury_share": 0.1053,
"phev_mini_share": 0.0984,
"phev_medium_share": 0.2189,
"phev_luxury_share": 0.0652,
"model_parameters": {},
},
"Electrification 2050": {
"ev_count": 47700000,
"bev_mini_share": 0.1589,
"bev_medium_share": 0.3533,
"bev_luxury_share": 0.1053,
"phev_mini_share": 0.0984,
"phev_medium_share": 0.2189,
"phev_luxury_share": 0.0652,
"model_parameters": {},
},
}
}
elif scenario == "eGon2021":
parameters = {}
else:
print(f"Scenario name {scenario} is not valid.")
parameters = dict()
return parameters
[docs]def heat(scenario):
"""Returns paramaters of the heat sector for the selected scenario.
Parameters
----------
scenario : str
Name of the scenario.
Returns
-------
parameters : dict
List of parameters of heat sector
"""
if scenario == "eGon2035":
costs = read_csv(2035)
parameters = {
"DE_demand_reduction_residential": 0.854314018923104,
"DE_demand_reduction_service": 0.498286864771128,
"DE_district_heating_share": 0.14,
}
# Insert efficiency in p.u.
parameters["efficiency"] = {
"water_tank_charger": read_costs(
costs, "water tank charger", "efficiency"
),
"water_tank_discharger": read_costs(
costs, "water tank discharger", "efficiency"
),
"central_resistive_heater": read_costs(
costs, "central resistive heater", "efficiency"
),
"central_gas_boiler": read_costs(
costs, "central gas boiler", "efficiency"
),
"rural_resistive_heater": read_costs(
costs, "decentral resistive heater", "efficiency"
),
"rural_gas_boiler": read_costs(
costs, "decentral gas boiler", "efficiency"
),
}
# Insert overnight investment costs, in EUR/MWh
parameters["overnight_cost"] = {
"central_water_tank": read_costs(
costs, "central water tank storage", "investment"
),
"rural_water_tank": read_costs(
costs, "decentral water tank storage", "investment"
),
}
# Insert lifetime
parameters["lifetime"] = {
"central_water_tank": read_costs(
costs, "central water tank storage", "lifetime"
),
"rural_water_tank": read_costs(
costs, "decentral water tank storage", "lifetime"
),
}
# Insert annualized capital costs
parameters["capital_cost"] = {}
for comp in parameters["overnight_cost"].keys():
parameters["capital_cost"][comp] = annualize_capital_costs(
parameters["overnight_cost"][comp],
parameters["lifetime"][comp],
global_settings("eGon2035")["interest_rate"],
)
# Insert marginal_costs in EUR/MWh
# marginal cost can include fuel, C02 and operation and maintenance costs
parameters["marginal_cost"] = {
"central_heat_pump": read_costs(
costs, "central air-sourced heat pump", "VOM"
),
"central_gas_chp": read_costs(costs, "central gas CHP", "VOM"),
"central_gas_boiler": read_costs(
costs, "central gas boiler", "VOM"
),
"central_resistive_heater": read_costs(
costs, "central resistive heater", "VOM"
),
"geo_thermal": 2.9, # Danish Energy Agency
"water_tank_charger": 0, # Danish Energy Agency
"water_tank_discharger": 0, # Danish Energy Agency
"rural_heat_pump": 0, # Danish Energy Agency, Technology Data for Individual Heating Plants
}
elif scenario == "eGon100RE":
parameters = {
"DE_demand_reduction_residential": 0.640720648501849,
"DE_demand_reduction_service": 0.390895195300713,
"DE_district_heating_share": 0.19,
}
elif scenario == "eGon2021":
parameters = {}
else:
print(f"Scenario name {scenario} is not valid.")
return parameters