base_network: Improve treatment of under_construction links
This commit is contained in:
parent
21fd124d6e
commit
6f98607aec
@ -110,11 +110,11 @@ lines:
|
|||||||
|
|
||||||
s_max_pu: 0.7
|
s_max_pu: 0.7
|
||||||
length_factor: 1.25
|
length_factor: 1.25
|
||||||
with_under_construction: false
|
under_construction: 'zero' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity
|
||||||
|
|
||||||
links:
|
links:
|
||||||
s_max_pu: 0.7
|
s_max_pu: 0.7
|
||||||
with_under_construction: false
|
under_construction: 'keep' # 'zero': set capacity to zero, 'remove': remove, 'keep': with full capacity
|
||||||
|
|
||||||
transformers:
|
transformers:
|
||||||
x: 0.1
|
x: 0.1
|
||||||
|
@ -94,6 +94,7 @@ def _apply_parameter_corrections(n):
|
|||||||
with open(snakemake.input.parameter_corrections) as f:
|
with open(snakemake.input.parameter_corrections) as f:
|
||||||
corrections = yaml.load(f)
|
corrections = yaml.load(f)
|
||||||
|
|
||||||
|
if corrections is None: return
|
||||||
for component, attrs in iteritems(corrections):
|
for component, attrs in iteritems(corrections):
|
||||||
df = n.df(component)
|
df = n.df(component)
|
||||||
if attrs is None: continue
|
if attrs is None: continue
|
||||||
@ -118,8 +119,6 @@ def _set_electrical_parameters_lines(lines):
|
|||||||
lines.loc[lines["v_nom"] == v_nom, 'type'] = linetypes[v_nom]
|
lines.loc[lines["v_nom"] == v_nom, 'type'] = linetypes[v_nom]
|
||||||
|
|
||||||
lines['s_max_pu'] = snakemake.config['lines']['s_max_pu']
|
lines['s_max_pu'] = snakemake.config['lines']['s_max_pu']
|
||||||
if not snakemake.config['lines']['with_under_construction']:
|
|
||||||
lines.loc[lines.under_construction.astype(bool), 'num_parallel'] = 0.
|
|
||||||
|
|
||||||
return lines
|
return lines
|
||||||
|
|
||||||
@ -154,9 +153,6 @@ def _set_electrical_parameters_links(links):
|
|||||||
p_nom = links_p_nom.dropna(subset=["j"]).set_index("j")["Power (MW)"]
|
p_nom = links_p_nom.dropna(subset=["j"]).set_index("j")["Power (MW)"]
|
||||||
links.loc[p_nom.index, "p_nom"] = p_nom
|
links.loc[p_nom.index, "p_nom"] = p_nom
|
||||||
|
|
||||||
if not snakemake.config['links']['with_under_construction']:
|
|
||||||
links.loc[links.under_construction.astype(bool), "p_nom"] = 0.
|
|
||||||
|
|
||||||
return links
|
return links
|
||||||
|
|
||||||
def _set_electrical_parameters_converters(converters):
|
def _set_electrical_parameters_converters(converters):
|
||||||
@ -302,6 +298,23 @@ def _set_links_underwater_fraction(n):
|
|||||||
links = gpd.GeoSeries(n.links.geometry.dropna().map(shapely.wkt.loads))
|
links = gpd.GeoSeries(n.links.geometry.dropna().map(shapely.wkt.loads))
|
||||||
n.links['underwater_fraction'] = links.intersection(offshore_shape).length / links.length
|
n.links['underwater_fraction'] = links.intersection(offshore_shape).length / links.length
|
||||||
|
|
||||||
|
def _adjust_capacities_of_under_construction_branches(n):
|
||||||
|
lines_mode = snakemake.config['lines'].get('under_construction', 'undef')
|
||||||
|
if lines_mode == 'zero':
|
||||||
|
n.lines.loc[n.lines.under_construction, 'num_parallel'] = 0.
|
||||||
|
elif lines_mode == 'remove':
|
||||||
|
n.mremove("Line", n.lines.index[n.lines.under_construction])
|
||||||
|
elif lines_mode != 'keep':
|
||||||
|
logger.warn("Unrecognized configuration for `lines: under_construction` = `{}`. Keeping under construction lines.")
|
||||||
|
|
||||||
|
links_mode = snakemake.config['links'].get('under_construction', 'undef')
|
||||||
|
if links_mode == 'zero':
|
||||||
|
n.links.loc[n.links.under_construction, "p_nom"] = 0.
|
||||||
|
elif links_mode == 'remove':
|
||||||
|
n.mremove("Link", n.links.index[n.links.under_construction])
|
||||||
|
elif links_mode != 'keep':
|
||||||
|
logger.warn("Unrecognized configuration for `links: under_construction` = `{}`. Keeping under construction links.")
|
||||||
|
|
||||||
def base_network():
|
def base_network():
|
||||||
buses = _load_buses_from_eg()
|
buses = _load_buses_from_eg()
|
||||||
|
|
||||||
@ -339,6 +352,8 @@ def base_network():
|
|||||||
|
|
||||||
_replace_b2b_converter_at_country_border_by_link(n)
|
_replace_b2b_converter_at_country_border_by_link(n)
|
||||||
|
|
||||||
|
_adjust_capacities_of_under_construction_branches(n)
|
||||||
|
|
||||||
return n
|
return n
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
Loading…
Reference in New Issue
Block a user