Version Checks (indicate both or one)
Issue Description
Having inactive generators in the model with a carrier that is subject of a global constraint leads to an error here
|
p = m["Generator-p"].sel(name=gens.index, snapshot=sns[sns_sel]) |
Here is the traceback:
Traceback (most recent call last):
File "c:\Users\Marlon.Fleck\repos\enersys\delete_me_2.py", line 43, in <module>
n.optimize()
File "c:\Users\Marlon.Fleck\repos\enersys\.venv\Lib\site-packages\pypsa\optimization\optimize.py", line 464, in __call__
m = n.optimize.create_model(
^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Marlon.Fleck\repos\enersys\.venv\Lib\site-packages\pypsa\optimization\optimize.py", line 617, in create_model
define_primary_energy_limit(n, sns)
File "c:\Users\Marlon.Fleck\repos\enersys\.venv\Lib\site-packages\pypsa\optimization\global_constraints.py", line 345, in define_primary_energy_limit
p = m["Generator-p"].sel(name=gens.index, snapshot=sns[sns_sel])
method(var.data, *default_args, *args, **kwargs), var.model, var.name
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Marlon.Fleck\repos\enersys\.venv\Lib\site-packages\xarray\core\dataset.py", line 3091, in sel
query_results = map_index_queries(
^^^^^^^^^^^^^^^^^^
File "c:\Users\Marlon.Fleck\repos\enersys\.venv\Lib\site-packages\xarray\core\indexing.py", line 190, in map_index_queries
results.append(index.sel(labels, **options))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "c:\Users\Marlon.Fleck\repos\enersys\.venv\Lib\site-packages\xarray\core\indexes.py", line 784, in sel
raise KeyError(f"not all values found in index {coord_name!r}")
KeyError: "not all values found in index 'name'"
(enersys-py3.12) C:\Users\Marlon.Fleck\repos\enersys>
Reproducible Example
import pandas as pd
import pypsa
snapshots = pd.date_range("2025-01-01", freq="h", periods=5)
n = pypsa.Network(snapshots=snapshots)
n.add("Carrier", name="gird_with_emissions", co2_emissions=0.5)
n.add("Bus", name="b_electricity", unit="MW")
n.add(
"Generator",
name="grid",
bus="b_electricity",
p_nom=10,
marginal_cost=5,
)
n.add(
"Generator",
name="grid_2",
bus="b_electricity",
carrier="gird_with_emissions",
p_nom_extendable=True,
marginal_cost=5,
active=False,
)
n.add("Load", name="demand", bus="b_electricity", p_set=pd.Series([0, 2, 0, 0, 0], index=snapshots))
n.add(
"GlobalConstraint",
name="CO2_limit",
carrier_attribute="co2_emissions",
sense="<=",
constant=50,
)
n.optimize()
Expected Behavior
No error
Installed Versions
Details
PyPSA 1.0.4
Version Checks (indicate both or one)
I have confirmed this bug exists on the lastest release of PyPSA.
I have confirmed this bug exists on the current
masterbranch of PyPSA.Issue Description
Having inactive generators in the model with a carrier that is subject of a global constraint leads to an error here
PyPSA/pypsa/optimization/global_constraints.py
Line 345 in 1ce2b47
Here is the traceback:
Reproducible Example
Expected Behavior
No error
Installed Versions
Details
PyPSA 1.0.4