From c6ed36df625a382cf4451ddf0ef57448d5f8dd75 Mon Sep 17 00:00:00 2001 From: lisazeyen Date: Fri, 23 Feb 2024 15:23:55 +0100 Subject: [PATCH 1/6] adjust AC bus to low voltage --- scripts/add_existing_baseyear.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/scripts/add_existing_baseyear.py b/scripts/add_existing_baseyear.py index 750ab22f..d6f1802c 100644 --- a/scripts/add_existing_baseyear.py +++ b/scripts/add_existing_baseyear.py @@ -416,6 +416,11 @@ def add_heating_capacities_installed_before_baseyear( name_type = "central" if name == "urban central" else "decentral" nodes = pd.Index(n.buses.location[n.buses.index.str.contains(f"{name} heat")]) + + if (name_type != "central") and options["electricity_distribution_grid"]: + nodes_elec = nodes + " low voltage" + else: + nodes_elec = nodes heat_pump_type = "air" if "urban" in name else "ground" @@ -440,7 +445,7 @@ def add_heating_capacities_installed_before_baseyear( "Link", nodes, suffix=f" {name} {heat_pump_type} heat pump-{grouping_year}", - bus0=nodes, + bus0=nodes_elec, bus1=nodes + " " + name + " heat", carrier=f"{name} {heat_pump_type} heat pump", efficiency=efficiency, @@ -458,7 +463,7 @@ def add_heating_capacities_installed_before_baseyear( "Link", nodes, suffix=f" {name} resistive heater-{grouping_year}", - bus0=nodes, + bus0=nodes_elec, bus1=nodes + " " + name + " heat", carrier=name + " resistive heater", efficiency=costs.at[f"{name_type} resistive heater", "efficiency"], @@ -540,7 +545,7 @@ def add_heating_capacities_installed_before_baseyear( ], ) - +#%% if __name__ == "__main__": if "snakemake" not in globals(): from _helpers import mock_snakemake @@ -552,7 +557,7 @@ if __name__ == "__main__": clusters="37", ll="v1.0", opts="", - sector_opts="1p7-4380H-T-H-B-I-A-dist1", + sector_opts="8760-T-H-B-I-A-dist1", planning_horizons=2020, ) From 60653de9f628e911a50c06400614d72e4c527045 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 23 Feb 2024 14:27:17 +0000 Subject: [PATCH 2/6] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- scripts/add_existing_baseyear.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/scripts/add_existing_baseyear.py b/scripts/add_existing_baseyear.py index d6f1802c..44c9b20e 100644 --- a/scripts/add_existing_baseyear.py +++ b/scripts/add_existing_baseyear.py @@ -416,7 +416,7 @@ def add_heating_capacities_installed_before_baseyear( name_type = "central" if name == "urban central" else "decentral" nodes = pd.Index(n.buses.location[n.buses.index.str.contains(f"{name} heat")]) - + if (name_type != "central") and options["electricity_distribution_grid"]: nodes_elec = nodes + " low voltage" else: @@ -545,7 +545,8 @@ def add_heating_capacities_installed_before_baseyear( ], ) -#%% + +# %% if __name__ == "__main__": if "snakemake" not in globals(): from _helpers import mock_snakemake From 1db30ae63b0b9b1372d4174f11636d5770793af4 Mon Sep 17 00:00:00 2001 From: Adrian Odenweller Date: Sat, 24 Feb 2024 12:10:08 +0100 Subject: [PATCH 3/6] Allow CPELX for MIQP in cluster_network --- scripts/cluster_network.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cluster_network.py b/scripts/cluster_network.py index be315a63..95f36bb4 100644 --- a/scripts/cluster_network.py +++ b/scripts/cluster_network.py @@ -267,7 +267,7 @@ def distribute_clusters(n, n_clusters, focus_weights=None, solver_name="scip"): m.objective = (clusters * clusters - 2 * clusters * L * n_clusters).sum() if solver_name == "gurobi": logging.getLogger("gurobipy").propagate = False - elif solver_name != "scip": + elif solver_name != "scip" and solver_name != "cplex": logger.info( f"The configured solver `{solver_name}` does not support quadratic objectives. Falling back to `scip`." ) From 58bcef4625f3d3e8aeaba4715d205e883e68a8c4 Mon Sep 17 00:00:00 2001 From: Fabian Hofmann Date: Tue, 27 Feb 2024 11:39:26 +0100 Subject: [PATCH 4/6] cluster_network: update solver_name if clause style --- scripts/cluster_network.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/cluster_network.py b/scripts/cluster_network.py index 95f36bb4..757184b2 100644 --- a/scripts/cluster_network.py +++ b/scripts/cluster_network.py @@ -267,7 +267,7 @@ def distribute_clusters(n, n_clusters, focus_weights=None, solver_name="scip"): m.objective = (clusters * clusters - 2 * clusters * L * n_clusters).sum() if solver_name == "gurobi": logging.getLogger("gurobipy").propagate = False - elif solver_name != "scip" and solver_name != "cplex": + elif solver_name not in ["scip", "cplex"]: logger.info( f"The configured solver `{solver_name}` does not support quadratic objectives. Falling back to `scip`." ) From f08c6fe77239ee0c60f25cca41179cbbb2c09d97 Mon Sep 17 00:00:00 2001 From: lisazeyen <35347358+lisazeyen@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:13:36 +0100 Subject: [PATCH 5/6] change technology data version to 0.8.1 --- config/config.default.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.default.yaml b/config/config.default.yaml index ca2d1ba3..ad4144d5 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -668,7 +668,7 @@ industry: # docs in https://pypsa-eur.readthedocs.io/en/latest/configuration.html#costs costs: year: 2030 - version: v0.8.0 + version: v0.8.1 rooftop_share: 0.14 # based on the potentials, assuming (0.1 kW/m2 and 10 m2/person) social_discountrate: 0.02 fill_values: From e933acd9e866e55c607eb480d8e4fa5b7d59b6d4 Mon Sep 17 00:00:00 2001 From: lisazeyen <35347358+lisazeyen@users.noreply.github.com> Date: Wed, 28 Feb 2024 16:15:43 +0100 Subject: [PATCH 6/6] update release_notes.rst --- doc/release_notes.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/release_notes.rst b/doc/release_notes.rst index d6072d7d..8167f6dd 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -9,6 +9,7 @@ Release Notes Upcoming Release ================ +* Upgrade default techno-economic assumptions to ``technology-data`` v0.8.1. * Linearly interpolate missing investment periods in year-dependent configuration options.