From ffad53a3318640d60ddd70369302aa4112c91f30 Mon Sep 17 00:00:00 2001 From: Pierre-Antoine Rouby Date: Tue, 30 Jun 2026 15:30:44 +0200 Subject: [PATCH] Results: Table: Use results tables. --- src/View/Results/Table.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/View/Results/Table.py b/src/View/Results/Table.py index 1a97e7d1..9becef38 100644 --- a/src/View/Results/Table.py +++ b/src/View/Results/Table.py @@ -94,59 +94,64 @@ class TableModel(PamhyrTableModel): v = self._data[0].solver_name return str(v) elif self._opt_data == "raw_data": + table = self._data[0].get("table") + ts = self._data[0].get_timestamp_id(self._timestamp) + if self._headers[column] == "name": if p.name == "": return f"{p.rk:.4f}" return f"{p.name}" elif self._headers[column] == "water_elevation": - v = p.get_ts_key(self._timestamp, "Z") + v = table["Z"][ts, p.global_index] if v is None: v = 0.0 return f"{v:.4f}" elif self._headers[column] == "discharge": - v = p.get_ts_key(self._timestamp, "Q") + v = table["Q"][ts, p.global_index] if v is None: v = 0.0 return f"{v:.4f}" elif self._headers[column] == "velocity": - v = p.get_ts_key(self._timestamp, "V") + v = table["V"][ts, p.global_index] if v is None: v = 0.0 return f"{v:.4f}" elif self._headers[column] == "width": - z = p.get_ts_key(self._timestamp, "Z") + z = table["Z"][ts, p.global_index] v = p.geometry.wet_width(z) return f"{v:.4f}" elif self._headers[column] == "depth": - z = p.get_ts_key(self._timestamp, "Z") + z = table["Z"][ts, p.global_index] v = p.geometry.max_water_depth(z) return f"{v:.4f}" elif self._headers[column] == "mean_depth": - z = p.get_ts_key(self._timestamp, "Z") + z = table["Z"][ts, p.global_index] v = p.geometry.mean_water_depth(z) return f"{v:.4f}" elif self._headers[column] == "wet_area": - z = p.get_ts_key(self._timestamp, "Z") + z = table["Z"][ts, p.global_index] v = p.geometry.wet_area(z) return f"{v:.4f}" elif self._headers[column] == "wet_perimeter": - z = p.get_ts_key(self._timestamp, "Z") + z = table["Z"][ts, p.global_index] v = p.geometry.wet_perimeter(z) return f"{v:.4f}" elif self._headers[column] == "hydraulic_radius": - z = p.get_ts_key(self._timestamp, "Z") + z = table["Z"][ts, p.global_index] v = p.geometry.wet_radius(z) return f"{v:.4f}" elif self._headers[column] == "froude": - q = p.get_ts_key(self._timestamp, "Q") - z = p.get_ts_key(self._timestamp, "Z") - v = p.get_ts_key(self._timestamp, "V") + q = table["Q"][ts, p.global_index] + z = table["Z"][ts, p.global_index] + v = table["V"][ts, p.global_index] a = p.geometry.wet_area(z) b = p.geometry.wet_width(z) + if b == 0.0 or a == 0.0: froude = 0.0 else: froude = v / sqrt(9.81 * (a / b)) + return f"{froude:.4f}" else: v = 0.0