diff --git a/src/View/Results/PlotRKCEnsemble.py b/src/View/Results/PlotRKCEnsemble.py index 98bb487f..93eb8f7e 100644 --- a/src/View/Results/PlotRKCEnsemble.py +++ b/src/View/Results/PlotRKCEnsemble.py @@ -88,6 +88,7 @@ class PlotRKCEnsemble(PamhyrPlot): reach = results.river.reach(self._current_reach_id) self.draw_bottom(reach) + self.draw_std_derivation(reach) self.draw_water_elevation(reach) self.draw_current(reach) self.draw_profiles_hs(reach) @@ -149,7 +150,6 @@ class PlotRKCEnsemble(PamhyrPlot): if len(reach.geometry.profiles) != 0: result = self.results[0] rk = reach.geometry.get_rk() - z_min = reach.geometry.get_z_min() self.water = [] @@ -174,6 +174,35 @@ class PlotRKCEnsemble(PamhyrPlot): self.water.append(plot) + def draw_std_derivation(self, reach): + if len(reach.geometry.profiles) != 0: + result = self.results[0] + rk = reach.geometry.get_rk() + z_min = reach.geometry.get_z_min() + + color = self.color_plot_ensemble_std_deriv + + table = result.get("table")["z_mean"] + std_deriv = result.get("table")["z_std_derivation"] + + ts = result.get_timestamp_id(self._current_timestamp) + + gi_0, gi_1 = reach.global_index + + water_z = table[ts, gi_0:gi_1 + 1] + std = std_deriv[ts, gi_0:gi_1 + 1] + + water_z_b = water_z - std + water_z_t = water_z + std + + plot = self.canvas.axes.fill_between( + rk, water_z_b, water_z_t, + lw=1., color=color, alpha=0.3, + label=f"Standard derivation", + ) + + self.water_std_deriv = plot + def draw_additional_data(self): results = self.results[0] @@ -247,6 +276,7 @@ class PlotRKCEnsemble(PamhyrPlot): reach = results.river.reach(self._current_reach_id) self.update_water_elevation() + self.update_std_derivation() self.update_idle() @@ -283,6 +313,27 @@ class PlotRKCEnsemble(PamhyrPlot): self.water[i].set_data(rk, water_z) + def update_std_derivation(self): + result = self.results[0] + reach = result.river.reach(self._current_reach_id) + + rk = reach.geometry.get_rk() + + table = result.get("table")["z_mean"] + std_deriv = result.get("table")["z_std_derivation"] + + ts = result.get_timestamp_id(self._current_timestamp) + + gi_0, gi_1 = reach.global_index + + water_z = table[ts, gi_0:gi_1 + 1] + std = std_deriv[ts, gi_0:gi_1 + 1] + + water_z_b = water_z - std + water_z_t = water_z + std + + self.water_std_deriv.set_data(rk, water_z_b, water_z_t) + def update_additional_data(self): self.draw_additional_data() self.update_idle() diff --git a/src/View/Tools/PamhyrPlot.py b/src/View/Tools/PamhyrPlot.py index d751bb13..0e70f7a9 100644 --- a/src/View/Tools/PamhyrPlot.py +++ b/src/View/Tools/PamhyrPlot.py @@ -46,6 +46,7 @@ class PamhyrPlot(APlot): color_plot_ensemble_min = "green" color_plot_ensemble_mean = "black" color_plot_ensemble_max = "red" + color_plot_ensemble_std_deriv = "black" colors = list(mplcolors.TABLEAU_COLORS) linestyle = ['solid', 'dashed', 'dashdot', 'dotted']