diff --git a/scripts/prepare_sector_network.py b/scripts/prepare_sector_network.py index 35d98657..3be2bdac 100755 --- a/scripts/prepare_sector_network.py +++ b/scripts/prepare_sector_network.py @@ -1325,6 +1325,22 @@ def add_storage_and_grids(n, costs): n, "H2 pipeline ", carriers=["DC", "gas pipeline"] ) + h2_pipes["p_nom"] = 0.0 + + if "custom_h2_pipelines" in snakemake.input: + fn = snakemake.input.custom_h2_pipelines + custom_pipes = pd.read_csv(fn, index_col=0) + + h2_pipes = pd.concat([h2_pipes, custom_pipes]) + + # drop duplicates according to buses (order can be different) and keep pipe with highest p_nom + h2_pipes["buses_sorted"] = h2_pipes[["bus0", "bus1"]].apply(sorted, axis=1) + h2_pipes = ( + h2_pipes.sort_values("p_nom") + .drop_duplicates(subset=["buses_sorted"], keep="last") + .drop(columns="buses_sorted") + ) + # TODO Add efficiency losses n.madd( "Link", @@ -1333,6 +1349,7 @@ def add_storage_and_grids(n, costs): bus1=h2_pipes.bus1.values + " H2", p_min_pu=-1, p_nom_extendable=True, + p_nom_min=h2_pipes.p_nom.values, length=h2_pipes.length.values, capital_cost=costs.at["H2 (g) pipeline", "fixed"] * h2_pipes.length.values, carrier="H2 pipeline",