From e2fa122ba874221144f91686dcad2e0a6ed55916 Mon Sep 17 00:00:00 2001 From: Hendrik Huyskens Date: Thu, 6 Jun 2024 09:34:56 +0200 Subject: [PATCH] Fix group naming of automated input/output groups Otherwise, this leads to busses without flows --- oemof_industry/mimo_converter.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/oemof_industry/mimo_converter.py b/oemof_industry/mimo_converter.py index 2140bf5..665ed29 100644 --- a/oemof_industry/mimo_converter.py +++ b/oemof_industry/mimo_converter.py @@ -144,8 +144,8 @@ def __init__( if node in self.emission_factors } - self.input_groups = self._unify_groups(inputs) - self.output_groups = self._unify_groups(outputs, exclude=emissions) + self.input_groups = self._unify_groups(inputs, "in") + self.output_groups = self._unify_groups(outputs, "out", exclude=emissions) inputs = reduce(operator.ior, self.input_groups.values(), {}) # Add emissions to outputs (as they are excluded from output groups before) @@ -287,6 +287,7 @@ def _init_group( @staticmethod def _unify_groups( flows: Union[Dict[Bus, Flow], Dict[str, Dict[Bus, Flow]]], + direction: str, exclude: Iterable[str] = None, ) -> Dict[str, Dict[Bus, Flow]]: """ @@ -301,6 +302,8 @@ def _unify_groups( 1. a dict of groups, containing buses with related flows 2. a dict of buses and related flows (as in default converter) 3. a mix of option 1 and 2 + direction : str + To differentiate between input and output flows. exclude: Iterable[str] List of nodes to exclude from grouping (needed to exclude emission buses from grouping) @@ -316,7 +319,7 @@ def _unify_groups( if exclude and key in exclude: continue if isinstance(key, Bus): - new_group = f"group_{group_counter}" + new_group = f"{direction}_group_{group_counter}" group_dict[new_group] = {key: flow} group_counter += 1 else: