diff --git a/src/View/Results/PlotRKC.py b/src/View/Results/PlotRKC.py index 744dc7e3..36bb7a0c 100644 --- a/src/View/Results/PlotRKC.py +++ b/src/View/Results/PlotRKC.py @@ -17,6 +17,7 @@ # -*- coding: utf-8 -*- import logging +import numpy as np from functools import reduce @@ -167,14 +168,18 @@ class PlotRKC(PamhyrPlot): def draw_water_elevation(self, reach): if len(reach.geometry.profiles) != 0: + result = self.results[self._current_res_id] rk = reach.geometry.get_rk() z_min = reach.geometry.get_z_min() + table = result.get("table")["Z"] + ts = result.get_timestamp_id(self._current_timestamp) + water_z = list( map( - lambda p: p.get_ts_key( - self._current_timestamp, "Z" - ), + lambda p: table[ + ts, p.global_index + ], reach.profiles ) ) @@ -194,12 +199,18 @@ class PlotRKC(PamhyrPlot): def draw_water_elevation_max(self, reach): if len(reach.geometry.profiles) != 0: + result = self.results[self._current_res_id] rk = reach.geometry.get_rk() z_min = reach.geometry.get_z_min() + table = result.get("table")["Z"] + ts = result.get_timestamp_id(self._current_timestamp) + water_z = list( map( - lambda p: max(p.get_key("Z")), + lambda p: table[ + ts, p.global_index + ], reach.profiles ) ) @@ -253,12 +264,14 @@ class PlotRKC(PamhyrPlot): def draw_water_elevation_overflow(self, reach): overflow = [] + result = self.results[self._current_res_id] + table = result.get("table")["Z"] for profile in reach.profiles: - z_max = max(profile.get_key("Z")) + z_max = max(table[:, profile.global_index]) z_max_ts = 0 - for ts in self._timestamps: - z = profile.get_ts_key(ts, "Z") + for i, ts in enumerate(self._timestamps): + z = table[i, profile.global_index] if z == z_max: z_max_ts = ts break @@ -329,16 +342,18 @@ class PlotRKC(PamhyrPlot): self.update() def update_water_elevation(self): - results = self.results[self._current_res_id] - reach = results.river.reach(self._current_reach_id) + result = self.results[self._current_res_id] + reach = result.river.reach(self._current_reach_id) rk = reach.geometry.get_rk() z_min = reach.geometry.get_z_min() + table = result.get("table")["Z"] + ts = result.get_timestamp_id(self._current_timestamp) water_z = list( map( - lambda p: p.get_ts_key( - self._current_timestamp, "Z" - ), + lambda p: table[ + ts, p.global_index + ], reach.profiles ) )