diff --git a/doc/configtables/solving.csv b/doc/configtables/solving.csv index 4cfb90657..a79ea0646 100644 --- a/doc/configtables/solving.csv +++ b/doc/configtables/solving.csv @@ -28,7 +28,7 @@ agg_p_nom_limits,,,Configure per carrier generator nominal capacity constraints -- file,file,path,Reference to ``.csv`` file specifying per carrier generator nominal capacity constraints for individual countries and planning horizons. Defaults to ``data/agg_p_nom_minmax.csv``. constraints ,,, -- CCL,bool,"{'true','false'}",Add minimum and maximum levels of generator nominal capacity per carrier for individual countries. These can be specified in the file linked at ``electricity: agg_p_nom_limits`` in the configuration. File defaults to ``data/agg_p_nom_minmax.csv``. --- EQ,bool/string,"{'false',`n(c| )``; i.e. ``0.5``-``0.7c``}",Require each country or node to on average produce a minimal share of its total consumption itself. Example: ``EQ0.5c`` demands each country to produce on average at least 50% of its consumption; ``EQ0.5`` demands each node to produce on average at least 50% of its consumption. +-- EQ,bool/string,"{'false',`n(c|l| )``; i.e. ``0.5``-``0.7c``-``0.2l``}",Require each country or node to on average produce a minimal share of its total consumption itself. Example: ``EQ0.5c`` demands each country to produce on average at least 50% of its consumption; ``EQ0.5`` demands each node to produce on average at least 50% of its consumption; ``EQ0.2l`` demands each location to produce on average at least 20% of its consumption (particularly useful for sector coupeled models). -- BAU,bool,"{'true','false'}",Add a per-``carrier`` minimal overall capacity; i.e. at least ``40GW`` of ``OCGT`` in Europe; configured in ``electricity: BAU_mincapacities`` -- SAFE,bool,"{'true','false'}",Add a capacity reserve margin of a certain fraction above the peak demand to which renewable generators and storage do *not* contribute. Ignores network. solver,,, diff --git a/doc/release_notes.rst b/doc/release_notes.rst index cf0f2c76b..60839289c 100644 --- a/doc/release_notes.rst +++ b/doc/release_notes.rst @@ -31,6 +31,8 @@ Upcoming Release * Bugfix: Correctly read in threshold capacity below which to remove components from previous planning horizons in :mod:`add_brownfield`. +* Enable EQ-constraint on locations, which allows it to be executed for the sector-coupeled model with a more richer technology-mix than solar rooftop + PyPSA-Eur 0.11.0 (25th May 2024) ===================================== diff --git a/scripts/solve_network.py b/scripts/solve_network.py index 42ffe6be9..cfec27253 100644 --- a/scripts/solve_network.py +++ b/scripts/solve_network.py @@ -623,6 +623,10 @@ def add_EQ_constraints(n, o, scaling=1e-1): ggrouper = n.generators.bus.map(n.buses.country) lgrouper = n.loads.bus.map(n.buses.country) sgrouper = n.storage_units.bus.map(n.buses.country) + elif o[-1] == "l": + ggrouper = n.generators.bus.map(n.buses.location) + lgrouper = n.loads.bus.map(n.buses.location) + sgrouper = n.storage_units.bus.map(n.buses.location) else: ggrouper = n.generators.bus lgrouper = n.loads.bus