diff --git a/config/config.default.yaml b/config/config.default.yaml index 50ef03d6..35f346a3 100644 --- a/config/config.default.yaml +++ b/config/config.default.yaml @@ -240,6 +240,7 @@ lines: s_nom_max: .inf max_extension: .inf length_factor: 1.25 + reconnect_crimea: true under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity dynamic_line_rating: activate: false diff --git a/scripts/base_network.py b/scripts/base_network.py index 65d65096..6dc7eec7 100644 --- a/scripts/base_network.py +++ b/scripts/base_network.py @@ -368,6 +368,22 @@ def _apply_parameter_corrections(n, parameter_corrections): df.loc[inds, attr] = r[inds].astype(df[attr].dtype) +def _reconnect_crimea(lines): + logger.info("Reconnecting Crimea to the Ukrainian grid.") + lines_to_crimea = pd.DataFrame({ + "bus0": ["3065", "3181", "3181"], + "bus1": ["3057", "3055", "3057"], + "v_nom": [300, 300, 300], + "num_parallel": [1, 1, 1], + "length": [140, 120, 140], + "carrier": ["AC", "AC", "AC"], + "underground": [False, False, False], + "under_construction": [False, False, False], + }, index=["Melitopol", "Liubymivka left", "Luibymivka right"]) + + return pd.concat([lines, lines_to_crimea]) + + def _set_electrical_parameters_lines(lines, config): v_noms = config["electricity"]["voltages"] linetypes = config["lines"]["types"] @@ -705,6 +721,9 @@ def base_network( lines = _load_lines_from_eg(buses, eg_lines) transformers = _load_transformers_from_eg(buses, eg_transformers) + if config["lines"].get("reconnect_crimea", True) and "UA" in config["countries"]: + lines = _reconnect_crimea(lines) + lines = _set_electrical_parameters_lines(lines, config) transformers = _set_electrical_parameters_transformers(transformers, config) links = _set_electrical_parameters_links(links, config, links_p_nom)