Results: PlotRKC: Use table to get results table.

opt-result
Pierre-Antoine 2026-06-30 16:57:42 +02:00
parent ffad53a331
commit b87f82f74d
1 changed files with 27 additions and 12 deletions

View File

@ -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
)
)