Ensemble: PlotRKC: Add standard derivation.

This commit is contained in:
parouby committed 2026-09-16 16:10:46 +02:00
1 parent d8fd4488e2
commit 933c6c1952
2 files changed
+53 -1

No files matched your search

+52 -1
View File
@@ -88,6 +88,7 @@ class PlotRKCEnsemble(PamhyrPlot):
reach = results.river.reach(self._current_reach_id) reach = results.river.reach(self._current_reach_id)
self.draw_bottom(reach) self.draw_bottom(reach)
self.draw_std_derivation(reach)
self.draw_water_elevation(reach) self.draw_water_elevation(reach)
self.draw_current(reach) self.draw_current(reach)
self.draw_profiles_hs(reach) self.draw_profiles_hs(reach)
@@ -149,7 +150,6 @@ class PlotRKCEnsemble(PamhyrPlot):
if len(reach.geometry.profiles) != 0: if len(reach.geometry.profiles) != 0:
result = self.results[0] result = self.results[0]
rk = reach.geometry.get_rk() rk = reach.geometry.get_rk()
z_min = reach.geometry.get_z_min()
self.water = [] self.water = []
@@ -174,6 +174,35 @@ class PlotRKCEnsemble(PamhyrPlot):
self.water.append(plot) 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): def draw_additional_data(self):
results = self.results[0] results = self.results[0]
@@ -247,6 +276,7 @@ class PlotRKCEnsemble(PamhyrPlot):
reach = results.river.reach(self._current_reach_id) reach = results.river.reach(self._current_reach_id)
self.update_water_elevation() self.update_water_elevation()
self.update_std_derivation()
self.update_idle() self.update_idle()
@@ -283,6 +313,27 @@ class PlotRKCEnsemble(PamhyrPlot):
self.water[i].set_data(rk, water_z) 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): def update_additional_data(self):
self.draw_additional_data() self.draw_additional_data()
self.update_idle() self.update_idle()
+1
View File
@@ -46,6 +46,7 @@ class PamhyrPlot(APlot):
color_plot_ensemble_min = "green" color_plot_ensemble_min = "green"
color_plot_ensemble_mean = "black" color_plot_ensemble_mean = "black"
color_plot_ensemble_max = "red" color_plot_ensemble_max = "red"
color_plot_ensemble_std_deriv = "black"
colors = list(mplcolors.TABLEAU_COLORS) colors = list(mplcolors.TABLEAU_COLORS)
linestyle = ['solid', 'dashed', 'dashdot', 'dotted'] linestyle = ['solid', 'dashed', 'dashdot', 'dotted']