From 6c97eaad800eb21ab35eeeceee18a2f2d3196be7 Mon Sep 17 00:00:00 2001 From: ClaraBuettner Date: Mon, 30 Oct 2023 15:55:00 +0100 Subject: [PATCH] Allow user-defind geographical boundaries --- etrago/tools/plot.py | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/etrago/tools/plot.py b/etrago/tools/plot.py index 292dafa5..d68479e6 100644 --- a/etrago/tools/plot.py +++ b/etrago/tools/plot.py @@ -1750,7 +1750,7 @@ def calc_network_expansion(network, method="abs", ext_min=0.1): return network, extension_lines, extension_links -def plot_background_grid(network, ax): +def plot_background_grid(network, ax, geographical_boundaries): """Plots grid topology in background of other network.plot Parameters @@ -1759,6 +1759,8 @@ def plot_background_grid(network, ax): Overall container of PyPSA ax : matplotlib.axes._subplots.AxesSubplot axes of plot + geographical_boundaries : list + Set georaphical boundaries for the plots Returns ------- @@ -1779,7 +1781,7 @@ def plot_background_grid(network, ax): geomap=True, projection=ccrs.PlateCarree(), color_geomap=True, - boundaries=[-2.5, 16, 46.8, 58], + boundaries=geographical_boundaries, ) else: network.plot( @@ -2323,6 +2325,7 @@ def plot_grid( "heat": 0.1, "battery": 10, }, + geographical_boundaries=[-2.5, 16, 46.8, 58], ): """Function that plots etrago.network and results for lines and buses @@ -2384,6 +2387,9 @@ def plot_grid( Set scaling values to be used per technology for the plots storage_expansion and h2_battery_storage_expansion. The default is {"H2": 50, "heat": 0.1, "battery": 10} + geographical_boundaries : list, optional + Set georaphical boundaries for the plots The default is + [-2.5, 16, 46.8, 58] Returns ------- @@ -2438,7 +2444,7 @@ def plot_grid( link_widths = link_colors.apply(lambda x: 10 if x != 0 else 0) line_widths = 10 label = "line loading in p.u." - plot_background_grid(network, ax) + plot_background_grid(network, ax, geographical_boundaries) # Only active flow direction is displayed! flow = pd.Series(1, index=network.branches().index, dtype="float64") flow.iloc[flow.index.get_level_values("component") == "Line"] = ( @@ -2477,14 +2483,14 @@ def plot_grid( label = "v_nom in kV" line_colors = network.lines.v_nom link_colors = pd.Series(data=0, index=network.links.index) - plot_background_grid(network, ax) + plot_background_grid(network, ax, geographical_boundaries) elif line_colors == "expansion_abs": title = "Network expansion" label = "network expansion in GVA" all_network, line_colors, link_colors = calc_network_expansion( network, method="abs", ext_min=ext_min ) - plot_background_grid(all_network, ax) + plot_background_grid(all_network, ax, geographical_boundaries) if ext_width is not False: line_widths = line_colors / ext_width @@ -2506,7 +2512,7 @@ def plot_grid( all_network, line_colors, link_colors = calc_network_expansion( network, method="rel", ext_min=ext_min ) - plot_background_grid(all_network, ax) + plot_background_grid(all_network, ax, geographical_boundaries) if ext_width is not False: line_widths = 0.5 + (line_colors / ext_width) link_widths = link_colors.apply( @@ -2526,11 +2532,11 @@ def plot_grid( if ext_width is not False: line_widths = 0.5 + (line_colors / ext_width) link_colors = pd.Series(data=0, index=network.links.index) - plot_background_grid(network, ax) + plot_background_grid(network, ax, geographical_boundaries) elif line_colors == "dlr": title = "Dynamic line rating" label = "TWh above nominal capacity" - plot_background_grid(network, ax) + plot_background_grid(network, ax, geographical_boundaries) # calc min capacity per line in the given period: Since lines with # different original voltage level could be aggregated during the @@ -2563,7 +2569,7 @@ def plot_grid( label = "" line_colors = "grey" link_colors = "grey" - plot_background_grid(network, ax) + plot_background_grid(network, ax, geographical_boundaries) link_widths = 0 line_widths = 0 @@ -2714,7 +2720,7 @@ def plot_grid( geomap=False, projection=ccrs.PlateCarree(), color_geomap=True, - boundaries=[-2.5, 16, 46.8, 58], + boundaries=geographical_boundaries, ) else: ll = network.plot( @@ -2729,7 +2735,7 @@ def plot_grid( flow=flow, title=title, geomap=False, - boundaries=[-2.5, 16, 46.8, 58], + boundaries=geographical_boundaries, ) l3 = None