From 286b836c3f421c8abf8dc0db3a8288e5fade135b Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 2 Jun 2023 15:18:46 +0000 Subject: [PATCH] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- rules/build_electricity.smk | 23 +++++++++++------- scripts/add_electricity.py | 45 ++++++++++++++++++++++-------------- scripts/build_line_rating.py | 26 ++++++++++++--------- 3 files changed, 58 insertions(+), 36 deletions(-) diff --git a/rules/build_electricity.smk b/rules/build_electricity.smk index 6d27e4fa..b0ef67ab 100644 --- a/rules/build_electricity.smk +++ b/rules/build_electricity.smk @@ -251,18 +251,23 @@ rule build_hydro_profile: "../scripts/build_hydro_profile.py" -if config['lines']['dynamic_line_rating']['activate']: +if config["lines"]["dynamic_line_rating"]["activate"]: + rule build_line_rating: input: base_network="networks/base.nc", - cutout="cutouts/" + config["lines"]['cutout'] + ".nc" + cutout="cutouts/" + config["lines"]["cutout"] + ".nc", output: - output="resources/line_rating.nc" - log: "logs/build_line_rating.log" - benchmark: "benchmarks/build_line_rating" + output="resources/line_rating.nc", + log: + "logs/build_line_rating.log", + benchmark: + "benchmarks/build_line_rating" threads: ATLITE_NPROCESSES - resources: mem_mb=ATLITE_NPROCESSES * 1000 - script: "scripts/build_line_rating.py" + resources: + mem_mb=ATLITE_NPROCESSES * 1000, + script: + "scripts/build_line_rating.py" rule add_electricity: @@ -278,7 +283,9 @@ rule add_electricity: if str(fn).startswith("data/") }, base_network=RESOURCES + "networks/base.nc", - line_rating="resources/line_rating.nc" if config['lines']['dynamic_line_rating']['activate'] else "networks/base.nc", + line_rating="resources/line_rating.nc" + if config["lines"]["dynamic_line_rating"]["activate"] + else "networks/base.nc", tech_costs=COSTS, regions=RESOURCES + "regions_onshore.geojson", powerplants=RESOURCES + "powerplants.csv", diff --git a/scripts/add_electricity.py b/scripts/add_electricity.py index 09ec340a..249341ca 100755 --- a/scripts/add_electricity.py +++ b/scripts/add_electricity.py @@ -700,19 +700,30 @@ def estimate_renewable_capacities(n, config): expansion_limit * n.generators.loc[tech_i, "p_nom_min"] ) -def attach_line_rating(n, rating, s_max_pu, correction_factor, max_voltage_difference, max_line_rating): + +def attach_line_rating( + n, rating, s_max_pu, correction_factor, max_voltage_difference, max_line_rating +): # TODO: Only considers overhead lines - n.lines_t.s_max_pu = (rating / n.lines.s_nom[rating.columns]) * correction_factor + n.lines_t.s_max_pu = (rating / n.lines.s_nom[rating.columns]) * correction_factor if max_voltage_difference: - x_pu = n.lines.type.map(n.line_types["x_per_length"])*n.lines.length/(n.lines.v_nom**2) - # need to clip here as cap values might be below 1 + x_pu = ( + n.lines.type.map(n.line_types["x_per_length"]) + * n.lines.length + / (n.lines.v_nom**2) + ) + # need to clip here as cap values might be below 1 # -> would mean the line cannot be operated at actual given pessimistic ampacity - s_max_pu_cap = (np.deg2rad(max_voltage_difference) / ( x_pu * n.lines.s_nom)).clip(lower=1) - n.lines_t.s_max_pu = n.lines_t.s_max_pu.clip(lower=1, upper=s_max_pu_cap, axis=1) + s_max_pu_cap = ( + np.deg2rad(max_voltage_difference) / (x_pu * n.lines.s_nom) + ).clip(lower=1) + n.lines_t.s_max_pu = n.lines_t.s_max_pu.clip( + lower=1, upper=s_max_pu_cap, axis=1 + ) if max_line_rating: n.lines_t.s_max_pu = n.lines_t.s_max_pu.clip(upper=max_line_rating) n.lines_t.s_max_pu *= s_max_pu - + def add_nice_carrier_names(n, config): carrier_i = n.carriers.index @@ -864,18 +875,18 @@ if __name__ == "__main__": line_rating_config = snakemake.config["lines"]["dynamic_line_rating"] if line_rating_config["activate"]: rating = xr.open_dataarray(snakemake.input.line_rating).to_pandas().transpose() - s_max_pu = snakemake.config["lines"]["s_max_pu"] - correction_factor = line_rating_config['correction_factor'] - max_voltage_difference = line_rating_config['max_voltage_difference'] - max_line_rating = line_rating_config['max_line_rating'] + s_max_pu = snakemake.config["lines"]["s_max_pu"] + correction_factor = line_rating_config["correction_factor"] + max_voltage_difference = line_rating_config["max_voltage_difference"] + max_line_rating = line_rating_config["max_line_rating"] attach_line_rating( - n, - rating, - s_max_pu, - correction_factor, - max_voltage_difference, - max_line_rating + n, + rating, + s_max_pu, + correction_factor, + max_voltage_difference, + max_line_rating, ) add_nice_carrier_names(n, snakemake.config) diff --git a/scripts/build_line_rating.py b/scripts/build_line_rating.py index fa97b251..38ac933d 100755 --- a/scripts/build_line_rating.py +++ b/scripts/build_line_rating.py @@ -1,3 +1,4 @@ +# -*- coding: utf-8 -*- # SPDX-FileCopyrightText: : 2017-2020 The PyPSA-Eur Authors # # SPDX-License-Identifier: MIT @@ -50,21 +51,23 @@ the maximal possible capacity factor "s_max_pu" for each transmission line at ea """ import logging -from _helpers import configure_logging - -import pypsa -import pandas as pd -import numpy as np -import geopandas as gpd -from shapely.geometry import Point, LineString as Line -import atlite -import xarray as xr import re +import atlite +import geopandas as gpd +import numpy as np +import pandas as pd +import pypsa +import xarray as xr +from _helpers import configure_logging +from shapely.geometry import LineString as Line +from shapely.geometry import Point + def calculate_resistance(T, R_ref, T_ref=293, alpha=0.00403): """ - Calculates the resistance at other temperatures than the reference temperature. + Calculates the resistance at other temperatures than the reference + temperature. Parameters ---------- @@ -86,7 +89,8 @@ def calculate_resistance(T, R_ref, T_ref=293, alpha=0.00403): def calculate_line_rating(n, cutout): """ - Calculates the maximal allowed power flow in each line for each time step considering the maximal temperature. + Calculates the maximal allowed power flow in each line for each time step + considering the maximal temperature. Parameters ----------