adjust for temporal aggregation

This commit is contained in:
lisazeyen 2024-03-04 17:00:57 +01:00
parent 6712e48aa0
commit fe51fd7022

View File

@ -1701,7 +1701,9 @@ def add_ice_cars(n, nodes, p_set, ice_share, temperature):
suffix = " land transport ICE"
p_nom = ice_share * p_set.div(efficiency).max()
profile = p_set.div(efficiency) / p_set.div(efficiency).max()
n.madd(
"Link",
nodes,
@ -1714,6 +1716,8 @@ def add_ice_cars(n, nodes, p_set, ice_share, temperature):
efficiency2=costs.at["oil", "CO2 intensity"],
p_nom_extendable=False,
p_nom=p_nom,
p_min_pu=profile,
p_max_pu=profile,
lifetime=1,
)
@ -3686,6 +3690,30 @@ def lossy_bidirectional_links(n, carrier, efficiencies={}):
)
def adjust_transport_temporal_agg(n):
engine_types = {"fuel_cell":'land transport fuel cell',
"electric": 'land transport EV',
"ice": 'land transport oil'}
p_set = n.loads_t.p_set.loc[:, n.loads.carrier=="land transport demand"]
for engine, carrier in engine_types.items():
share = get(options[f"land_transport_{engine}_share"], investment_year)
if share==0: continue
links_i = n.links[n.links.carrier==carrier].index
efficiency = n.links_t.efficiency.loc[:, links_i]
p_set.columns = efficiency.columns
p_nom = share * p_set.div(efficiency).max()
profile = p_set.div(efficiency) / p_set.div(efficiency).max()
n.links.loc[links_i, "p_nom"] = p_nom
n.links_t.p_max_pu[links_i] = profile
n.links_t.p_min_pu[links_i] = profile
# %%
if __name__ == "__main__":
if "snakemake" not in globals():
@ -3699,7 +3727,7 @@ if __name__ == "__main__":
clusters="37",
ll="v1.0",
sector_opts="730H-T-H-B-I-A-dist1",
planning_horizons="2030",
planning_horizons="2050",
)
configure_logging(snakemake)
@ -3784,6 +3812,8 @@ if __name__ == "__main__":
solver_name = snakemake.config["solving"]["solver"]["name"]
resolution = snakemake.params.time_resolution
n = set_temporal_aggregation(n, resolution, solver_name)
adjust_transport_temporal_agg(n)
co2_budget = snakemake.params.co2_budget
if isinstance(co2_budget, str) and co2_budget.startswith("cb"):