[pre-commit.ci] auto fixes from pre-commit.com hooks

for more information, see https://pre-commit.ci
This commit is contained in:
pre-commit-ci[bot] 2023-06-02 15:18:46 +00:00
parent 2072aa4a99
commit 286b836c3f
3 changed files with 58 additions and 36 deletions

View File

@ -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",

View File

@ -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)

View File

@ -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
----------