From 5f043468ee135ca377abf28ab661405aa9dcbad3 Mon Sep 17 00:00:00 2001 From: Theophile Terraz <theophile.terraz@inrae.fr> Date: Mon, 4 Nov 2024 16:03:18 +0100 Subject: [PATCH] add envelop in custom plots + optim + clean --- src/View/Geometry/PlotRKZ.py | 2 +- src/View/InitialConditions/Table.py | 6 +- src/View/InitialConditions/translate.py | 4 +- src/View/Results/CustomPlot/Plot.py | 375 ++++++++++++++++-- src/View/Results/CustomPlot/Translate.py | 18 +- src/View/Results/Table.py | 2 +- src/View/Results/Window.py | 8 +- src/View/Results/translate.py | 18 +- src/View/SedimentLayers/Reach/Plot.py | 2 +- src/View/SedimentLayers/Reach/Profile/Plot.py | 2 +- .../SedimentLayers/Reach/Profile/translate.py | 2 +- src/View/SedimentLayers/Reach/translate.py | 2 +- src/View/Translate.py | 48 ++- 13 files changed, 414 insertions(+), 75 deletions(-) diff --git a/src/View/Geometry/PlotRKZ.py b/src/View/Geometry/PlotRKZ.py index 55fdee91..f15e6826 100644 --- a/src/View/Geometry/PlotRKZ.py +++ b/src/View/Geometry/PlotRKZ.py @@ -52,7 +52,7 @@ class PlotRKZ(PamhyrPlot): self.line_rk_zmin_zmax_highlight = None self.label_x = self._trad["unit_rk"] - self.label_y = self._trad["unit_height"] + self.label_y = self._trad["unit_depth"] self.before_plot_selected = None self.plot_selected = None diff --git a/src/View/InitialConditions/Table.py b/src/View/InitialConditions/Table.py index c9db850f..a008979d 100644 --- a/src/View/InitialConditions/Table.py +++ b/src/View/InitialConditions/Table.py @@ -104,15 +104,15 @@ class InitialConditionTableModel(PamhyrTableModel): row = index.row() column = index.column() - if self._headers[column] is "speed": + if self._headers[column] == "velocity": z = self._lst.get(row)["elevation"] q = self._lst.get(row)["discharge"] profile = self._reach.reach.get_profiles_from_rk( self._lst.get(row)["rk"] ) if len(profile) >= 1: - speed = profile[0].speed(q, z) - return f"{speed:.4f}" + velocity = profile[0].speed(q, z) + return f"{velocity:.4f}" return "" elif self._headers[column] not in ["name", "comment"]: diff --git a/src/View/InitialConditions/translate.py b/src/View/InitialConditions/translate.py index 0edee4dc..0b782f21 100644 --- a/src/View/InitialConditions/translate.py +++ b/src/View/InitialConditions/translate.py @@ -39,7 +39,7 @@ class ICTranslate(MainTranslate): "rk": self._dict["unit_rk"], "discharge": self._dict["unit_discharge"], "elevation": self._dict["unit_elevation"], - "height": self._dict["unit_height"], - "speed": self._dict["unit_speed"], + "height": self._dict["unit_depth"], + "velocity": self._dict["unit_velocity"], # "comment": _translate("InitialCondition", "Comment"), } diff --git a/src/View/Results/CustomPlot/Plot.py b/src/View/Results/CustomPlot/Plot.py index f1f2438f..5b7fd323 100644 --- a/src/View/Results/CustomPlot/Plot.py +++ b/src/View/Results/CustomPlot/Plot.py @@ -30,11 +30,15 @@ from View.Results.CustomPlot.Translate import CustomPlotTranslate logger = logging.getLogger() unit = { - "elevation": "0-meter", + "bed_elevation": "0-meter", "water_elevation": "0-meter", + "water_elevation_envelop": "0-meter", "discharge": "1-m3s", + "discharge_envelop": "1-m3s", "velocity": "2-ms", - "max_depth": "3-meter", + "velocity_envelop": "2-ms", + "depth": "3-meter", + "depth_envelop": "3-meter", "mean_depth": "3-meter", "froude": "4-dimensionless", "wet_area": "5-m2", @@ -105,15 +109,15 @@ class CustomPlot(PamhyrPlot): self._axes[ax].spines['right'].set_position(('outward', shift)) shift += 60 - lines = {} - if "elevation" in self._y: + self.lines = {} + if "bed_elevation" in self._y: - ax = self._axes[unit["elevation"]] + ax = self._axes[unit["bed_elevation"]] line = ax.plot( rk, z_min, color='grey', lw=1., ) - lines["elevation"] = line + self.lines["bed_elevation"] = line if "water_elevation" in self._y: @@ -122,14 +126,46 @@ class CustomPlot(PamhyrPlot): rk, z, lw=1., color='blue', ) - lines["water_elevation"] = line + self.lines["water_elevation"] = line - if "elevation" in self._y: - ax.fill_between( + if "bed_elevation" in self._y: + self.fill = ax.fill_between( rk, z_min, z, color='blue', alpha=0.5, interpolate=True ) + #if "water_elevation_envelop" in self._y: + + ax = self._axes[unit["water_elevation_envelop"]] + + d = list( + map( + lambda p: max(p.get_key("Z")), + reach.profiles + ) + ) + + line1 = ax.plot( + rk, d, lw=1., + color='blue', + linestyle='dotted', + ) + self.lines["water_elevation_envelop"] = line1 + + d = list( + map( + lambda p: min(p.get_key("Z")), + reach.profiles + ) + ) + + line2 = ax.plot( + rk, d, lw=1., + color='blue', + linestyle='dotted', + ) + #self.lines["water_elevation_envelop2"] = line2 + if "discharge" in self._y: ax = self._axes[unit["discharge"]] @@ -137,7 +173,37 @@ class CustomPlot(PamhyrPlot): rk, q, lw=1., color='r', ) - lines["discharge"] = line + self.lines["discharge"] = line + + #if "discharge_envelop" in self._y: + + ax = self._axes[unit["discharge_envelop"]] + + q1 = list( + map( + lambda p: max(p.get_key("Q")), + reach.profiles + ) + ) + line1 = ax.plot( + rk, q1, lw=1., + color='r', + linestyle='dotted', + ) + self.lines["discharge_envelop"] = line1 + + q2 = list( + map( + lambda p: min(p.get_key("Q")), + reach.profiles + ) + ) + line2 = ax.plot( + rk, q2, lw=1., + color='r', + linestyle='dotted', + ) + #self.lines["discharge_envelop2"] = line2 if "velocity" in self._y: @@ -155,11 +221,39 @@ class CustomPlot(PamhyrPlot): rk, v, lw=1., color='g', ) - lines["velocity"] = line + self.lines["velocity"] = line + + #if "velocity_envelop" in self._y: + + velocities = list(map(lambda p: + list(map(lambda q, z: + p.geometry.speed(q, z), + p.get_key("Q"), p.get_key("Z") + )), reach.profiles + ) + ) + + ax = self._axes[unit["velocity_envelop"]] + vmax = [max(v) for v in velocities] + + line1 = ax.plot( + rk, vmax, lw=1., + color='g', + linestyle='dotted', + ) + self.lines["velocity_envelop"] = line1 + vmin = [min(v) for v in velocities] - if "max_depth" in self._y: + line2 = ax.plot( + rk, vmin, lw=1., + color='g', + linestyle='dotted', + ) + #self.lines["velocity_envelop2"] = line2 - ax = self._axes[unit["max_depth"]] + if "depth" in self._y: + + ax = self._axes[unit["depth"]] d = list( map( lambda p: p.geometry.max_water_depth( @@ -171,7 +265,37 @@ class CustomPlot(PamhyrPlot): rk, d, color='brown', lw=1., ) - lines["max_depth"] = line + self.lines["depth"] = line + + #if "depth_envelop" in self._y: + + ax = self._axes[unit["depth_envelop"]] + + d = list(map(lambda p1, p2: p1 - p2, + map( + lambda p: max(p.get_key("Z")), + reach.profiles + ), z_min) + ) + line1 = ax.plot( + rk, d, + color='brown', lw=1., + linestyle='dotted', + ) + self.lines["depth_envelop"] = line1 + + d = list(map(lambda p1, p2: p1 - p2, + map( + lambda p: min(p.get_key("Z")), + reach.profiles + ), z_min) + ) + line2 = ax.plot( + rk, d, + color='brown', lw=1., + linestyle='dotted', + ) + #self.lines["depth_envelop2"] = line2 if "mean_depth" in self._y: @@ -188,7 +312,7 @@ class CustomPlot(PamhyrPlot): rk, d, color='orange', lw=1., ) - lines["mean_depth"] = line + self.lines["mean_depth"] = line if "froude" in self._y: @@ -212,7 +336,7 @@ class CustomPlot(PamhyrPlot): line = ax.plot( rk, fr, color='black', linestyle='--', lw=1., ) - lines["froude"] = line + self.lines["froude"] = line if "wet_area" in self._y: @@ -229,17 +353,110 @@ class CustomPlot(PamhyrPlot): rk, d, color='blue', linestyle='--', lw=1., ) - lines["wet_area"] = line + self.lines["wet_area"] = line # Legend lns = reduce( lambda acc, line: acc + line, - map(lambda line: lines[line], lines), + map(lambda line: self.lines[line], self.lines), [] ) - labs = list(map(lambda line: self._trad[line], lines)) + labs = list(map(lambda line: self._trad[line], self.lines)) self.canvas.axes.legend(lns, labs, loc="best") + def _redraw_rk(self): + results = self.data + reach = results.river.reach(self._reach) + rk = reach.geometry.get_rk() + z_min = reach.geometry.get_z_min() + q = list( + map( + lambda p: p.get_ts_key(self._timestamp, "Q"), + reach.profiles + ) + ) + z = list( + map( + lambda p: p.get_ts_key(self._timestamp, "Z"), + reach.profiles + ) + ) + if "bed_elevation" in self._y: + self.lines["bed_elevation"][0].set_ydata(z_min) + + if "water_elevation" in self._y: + self.lines["water_elevation"][0].set_ydata(z) + + if "bed_elevation" in self._y: + ax = self._axes[unit["water_elevation"]] + self.fill.remove() + self.fill = ax.fill_between( + rk, z_min, z, + color='blue', alpha=0.5, interpolate=True + ) + + if "discharge" in self._y: + self.lines["discharge"][0].set_ydata(q) + + if "velocity" in self._y: + v = list( + map( + lambda p: p.geometry.speed( + p.get_ts_key(self._timestamp, "Q"), + p.get_ts_key(self._timestamp, "Z")), + reach.profiles + ) + ) + self.lines["discharge"][0].set_ydata(v) + + if "depth" in self._y: + d = list( + map( + lambda p: p.geometry.max_water_depth( + p.get_ts_key(self._timestamp, "Z")), + reach.profiles + ) + ) + self.lines["depth"][0].set_ydata(d) + + if "mean_depth" in self._y: + d = list( + map( + lambda p: p.geometry.mean_water_depth( + p.get_ts_key(self._timestamp, "Z")), + reach.profiles + ) + ) + self.lines["mean_depth"][0].set_ydata(d) + + if "froude" in self._y: + fr = list( + map( + lambda p: + p.geometry.speed( + p.get_ts_key(self._timestamp, "Q"), + p.get_ts_key(self._timestamp, "Z")) / + sqrt(9.81 * ( + p.geometry.wet_area( + p.get_ts_key(self._timestamp, "Z")) / + p.geometry.wet_width( + p.get_ts_key(self._timestamp, "Z")) + )), + reach.profiles + ) + ) + self.lines["froude"][0].set_ydata(fr) + + if "wet_area" in self._y: + d = list( + map( + lambda p: p.geometry.wet_area( + p.get_ts_key(self._timestamp, "Z")), + reach.profiles + ) + ) + self.lines["wet_area"][0].set_ydata(d) + def _customize_x_axes_time(self, ts, mode="time"): # Custom time display nb = len(ts) @@ -308,17 +525,17 @@ class CustomPlot(PamhyrPlot): ) ) - lines = {} - if "elevation" in self._y: + self.lines = {} + if "bed_elevation" in self._y: # Z min is constant in time - ax = self._axes[unit["elevation"]] + ax = self._axes[unit["bed_elevation"]] line = ax.plot( ts, ts_z_min, color='grey', lw=1. ) - lines["elevation"] = line + self.lines["bed_elevation"] = line if "water_elevation" in self._y: @@ -327,11 +544,11 @@ class CustomPlot(PamhyrPlot): ts, z, lw=1., color='b', ) - lines["water_elevation"] = line + self.lines["water_elevation"] = line - if "elevation" in self._y: + if "bed_elevation" in self._y: - ax.fill_between( + self.fill = ax.fill_between( ts, ts_z_min, z, color='blue', alpha=0.5, interpolate=True ) @@ -343,7 +560,7 @@ class CustomPlot(PamhyrPlot): ts, q, lw=1., color='r', ) - lines["discharge"] = line + self.lines["discharge"] = line if "velocity" in self._y: @@ -359,11 +576,11 @@ class CustomPlot(PamhyrPlot): ts, v, lw=1., color='g', ) - lines["velocity"] = line + self.lines["velocity"] = line - if "max_depth" in self._y: + if "depth" in self._y: - ax = self._axes[unit["max_depth"]] + ax = self._axes[unit["depth"]] d = list( map(lambda z: profile.geometry.max_water_depth(z), z) ) @@ -372,7 +589,7 @@ class CustomPlot(PamhyrPlot): ts, d, color='brown', lw=1., ) - lines["max_depth"] = line + self.lines["depth"] = line if "mean_depth" in self._y: @@ -385,7 +602,7 @@ class CustomPlot(PamhyrPlot): ts, d, color='orange', lw=1., ) - lines["mean_depth"] = line + self.lines["mean_depth"] = line if "froude" in self._y: @@ -402,7 +619,7 @@ class CustomPlot(PamhyrPlot): line = ax.plot( ts, d, color='black', linestyle='--', lw=1., ) - lines["froude"] = line + self.lines["froude"] = line if "wet_area" in self._y: @@ -414,21 +631,100 @@ class CustomPlot(PamhyrPlot): line = ax.plot( ts, d, color='blue', linestyle='--', lw=1., ) - lines["wet_area"] = line + self.lines["wet_area"] = line self._customize_x_axes_time(ts) # Legend lns = reduce( lambda acc, line: acc + line, - map(lambda line: lines[line], lines), + map(lambda line: self.lines[line], self.lines), [] ) - labs = list(map(lambda line: self._trad[line], lines)) + labs = list(map(lambda line: self._trad[line], self.lines)) self.canvas.axes.legend(lns, labs, loc="best") - @timer + def _redraw_time(self): + + results = self.data + reach = results.river.reach(self._reach) + profile = reach.profile(self._profile) + ts = list(results.get("timestamps")) + ts.sort() + + q = profile.get_key("Q") + z = profile.get_key("Z") + z_min = profile.geometry.z_min() + ts_z_min = list( + map( + lambda ts: z_min, + ts + ) + ) + + if "water_elevation" in self._y: + self.lines["water_elevation"][0].set_ydata(z) + + if "bed_elevation" in self._y: + ax = self._axes[unit["bed_elevation"]] + self.fill.remove() + self.fill = ax.fill_between( + ts, ts_z_min, z, + color='blue', alpha=0.5, interpolate=True + ) + + if "discharge" in self._y: + self.lines["discharge"][0].set_ydata(q) + + if "velocity" in self._y: + v = list( + map( + lambda q, z: profile.geometry.speed(q, z), + q, z + ) + ) + self.lines["velocity"][0].set_ydata(v) + + if "depth" in self._y: + d = list( + map(lambda z: profile.geometry.max_water_depth(z), z) + ) + self.lines["depth"][0].set_ydata(d) + + if "mean_depth" in self._y: + d = list( + map(lambda z: profile.geometry.mean_water_depth(z), z) + ) + self.lines["mean_depth"][0].set_ydata(d) + + if "froude" in self._y: + d = list( + map(lambda z, q: + profile.geometry.speed(q, z) / + sqrt(9.81 * ( + profile.geometry.wet_area(z) / + profile.geometry.wet_width(z)) + ), z, q) + ) + self.lines["froude"][0].set_ydata(d) + + if "wet_area" in self._y: + d = list( + map(lambda z: profile.geometry.wet_area(z), z) + ) + self.lines["wet_area"][0].set_ydata(d) + def draw(self): + self.draw_static() + + def draw_update(self): + if self._x == "rk": + self._redraw_rk() + elif self._x == "time": + self._redraw_time() + + @timer + def draw_static(self): self.canvas.axes.cla() self.canvas.axes.grid(color='grey', linestyle='--', linewidth=0.5) @@ -485,9 +781,10 @@ class CustomPlot(PamhyrPlot): @timer def update(self): if not self._init: - self.draw() + #self.draw_static() self.draw_current() - return + self.draw_update() + return def set_reach(self, reach_id): self._reach = reach_id diff --git a/src/View/Results/CustomPlot/Translate.py b/src/View/Results/CustomPlot/Translate.py index 3937d720..1bfe7f96 100644 --- a/src/View/Results/CustomPlot/Translate.py +++ b/src/View/Results/CustomPlot/Translate.py @@ -36,14 +36,16 @@ class CustomPlotTranslate(ResultsTranslate): self._dict['time'] = self._dict["unit_time_s"] self._dict['rk'] = self._dict["unit_rk"] self._dict['water_elevation'] = self._dict["unit_water_elevation"] + self._dict['water_elevation_envelop'] = self._dict["unit_water_elevation_envelop"] self._dict['discharge'] = self._dict["unit_discharge"] - self._dict['elevation'] = _translate( - "CustomPlot", "Bed elevation (m)" - ) - self._dict['velocity'] = self._dict["unit_speed"] + self._dict['discharge_envelop'] = self._dict["unit_discharge_envelop"] + self._dict['bed_elevation'] = self._dict["unit_bed_elevation"] + self._dict['velocity'] = self._dict["unit_velocity"] self._dict['width'] = self._dict["unit_width"] - self._dict['max_depth'] = self._dict["unit_max_height"] - self._dict['mean_depth'] = self._dict["unit_mean_height"] + self._dict['velocity_envelop'] = self._dict["unit_velocity_envelop"] + self._dict['depth'] = self._dict["unit_depth"] + self._dict['depth_envelop'] = self._dict["unit_depth_envelop"] + self._dict['mean_depth'] = self._dict["unit_mean_depth"] self._dict['wet_area'] = self._dict["unit_wet_area"] self._dict['wet_perimeter'] = self._dict["unit_wet_perimeter"] self._dict['hydraulic_radius'] = self._dict["unit_hydraulic_radius"] @@ -55,7 +57,7 @@ class CustomPlotTranslate(ResultsTranslate): "CustomPlot", "Elevation (m)" ) self._dict['1-m3s'] = self._dict["unit_discharge"] - self._dict['2-ms'] = self._dict["unit_speed"] - self._dict['3-meter'] = self._dict["unit_height"] + self._dict['2-ms'] = self._dict["unit_velocity"] + self._dict['3-meter'] = self._dict["unit_depth"] self._dict['4-dimensionless'] = self._dict["unit_froude"] self._dict['5-m2'] = self._dict["wet_area"] diff --git a/src/View/Results/Table.py b/src/View/Results/Table.py index c92e994e..7a4c3b1d 100644 --- a/src/View/Results/Table.py +++ b/src/View/Results/Table.py @@ -97,7 +97,7 @@ class TableModel(PamhyrTableModel): z = self._lst[row].get_ts_key(self._timestamp, "Z") v = self._lst[row].geometry.wet_width(z) return f"{v:.4f}" - elif self._headers[column] == "max_depth": + elif self._headers[column] == "depth": z = self._lst[row].get_ts_key(self._timestamp, "Z") v = self._lst[row].geometry.max_water_depth(z) return f"{v:.4f}" diff --git a/src/View/Results/Window.py b/src/View/Results/Window.py index 589aa189..df9021b5 100644 --- a/src/View/Results/Window.py +++ b/src/View/Results/Window.py @@ -703,8 +703,8 @@ class ResultsWindow(PamhyrWindow): reach.profiles ) ) - if "max_depth" in y: - my_dict["max_depth"] = list( + if "depth" in y: + my_dict["depth"] = list( map( lambda p: p.geometry.max_water_depth( p.get_ts_key(timestamp, "Z")), @@ -768,8 +768,8 @@ class ResultsWindow(PamhyrWindow): q, z ) ) - if "max_depth" in y: - my_dict["max_depth"] = list( + if "depth" in y: + my_dict["depth"] = list( map(lambda z: profile.geometry.max_water_depth(z), z) ) if "mean_depth" in y: diff --git a/src/View/Results/translate.py b/src/View/Results/translate.py index 8b66124e..68675e51 100644 --- a/src/View/Results/translate.py +++ b/src/View/Results/translate.py @@ -57,10 +57,10 @@ class ResultsTranslate(MainTranslate): "name": _translate("Results", "Profile"), "water_elevation": self._dict["unit_water_elevation"], "discharge": self._dict["unit_discharge"], - "velocity": self._dict["unit_speed"], + "velocity": self._dict["unit_velocity"], "width": self._dict["unit_width"], - "max_depth": self._dict["unit_max_height"], - "mean_depth": self._dict["unit_mean_height"], + "depth": self._dict["unit_depth"], + "mean_depth": self._dict["unit_mean_depth"], "wet_area": self._dict["unit_wet_area"], "wet_perimeter": self._dict["unit_wet_perimeter"], "hydraulic_radius": self._dict["unit_hydraulic_radius"], @@ -73,12 +73,16 @@ class ResultsTranslate(MainTranslate): } self._sub_dict["values_y"] = { - "elevation": self._dict["unit_elevation"], + "bed_elevation": self._dict["unit_bed_elevation"], "water_elevation": self._dict["unit_water_elevation"], + #"water_elevation_envelop": self._dict["unit_water_elevation_envelop"], "discharge": self._dict["unit_discharge"], - "velocity": self._dict["unit_speed"], - "max_depth": self._dict["unit_max_height"], - "mean_depth": self._dict["unit_mean_height"], + #"discharge_envelop": self._dict["unit_discharge_envelop"], + "velocity": self._dict["unit_velocity"], + #"velocity_envelop": self._dict["unit_velocity_envelop"], + "depth": self._dict["unit_depth"], + #"depth_envelop": self._dict["unit_depth_envelop"], + "mean_depth": self._dict["unit_mean_depth"], "froude": self._dict["unit_froude"], "wet_area": self._dict["unit_wet_area"], } diff --git a/src/View/SedimentLayers/Reach/Plot.py b/src/View/SedimentLayers/Reach/Plot.py index 7d5ff700..619c87da 100644 --- a/src/View/SedimentLayers/Reach/Plot.py +++ b/src/View/SedimentLayers/Reach/Plot.py @@ -44,7 +44,7 @@ class Plot(PamhyrPlot): ) self.label_x = self._trad["rk"] - self.label_y = self._trad["height"] + self.label_y = self._trad["elevation"] self.line_rk_zmin = None self.line_rk_sl = [] diff --git a/src/View/SedimentLayers/Reach/Profile/Plot.py b/src/View/SedimentLayers/Reach/Profile/Plot.py index 8069cc20..474ab59a 100644 --- a/src/View/SedimentLayers/Reach/Profile/Plot.py +++ b/src/View/SedimentLayers/Reach/Profile/Plot.py @@ -44,7 +44,7 @@ class Plot(PamhyrPlot): ) self.label_x = self._trad["x"] - self.label_y = self._trad["height"] + self.label_y = self._trad["elevation"] self.line_rk_zmin = None self.line_rk_sl = [] diff --git a/src/View/SedimentLayers/Reach/Profile/translate.py b/src/View/SedimentLayers/Reach/Profile/translate.py index c6bef267..db9292a0 100644 --- a/src/View/SedimentLayers/Reach/Profile/translate.py +++ b/src/View/SedimentLayers/Reach/Profile/translate.py @@ -30,7 +30,7 @@ class SedimentProfileTranslate(SedimentReachTranslate): self._dict["x"] = _translate( "SedimentLayers", "X (m)" ) - self._dict["height"] = self._dict["unit_height"] + self._dict["elevation"] = self._dict["unit_elevation"] self._dict["Profile sediment layers"] = _translate( "SedimentLayers", "Profile sediment layers" diff --git a/src/View/SedimentLayers/Reach/translate.py b/src/View/SedimentLayers/Reach/translate.py index 38ae8108..c00e384c 100644 --- a/src/View/SedimentLayers/Reach/translate.py +++ b/src/View/SedimentLayers/Reach/translate.py @@ -35,7 +35,7 @@ class SedimentReachTranslate(SedimentTranslate): ) self._dict["rk"] = self._dict["unit_rk"] - self._dict["height"] = self._dict["unit_height"] + self._dict["elevation"] = self._dict["unit_elevation"] self._sub_dict["table_headers"] = { "name": self._dict["name"], diff --git a/src/View/Translate.py b/src/View/Translate.py index e39279e5..160c95e9 100644 --- a/src/View/Translate.py +++ b/src/View/Translate.py @@ -54,18 +54,54 @@ class UnitTranslate(CommonWordTranslate): self._dict["unit_rk"] = _translate("Unit", "River Kilometer (m)") self._dict["unit_width"] = _translate("Unit", "Width (m)") - self._dict["unit_height"] = _translate("Unit", "Depth (m)") - self._dict["unit_max_height"] = _translate("Unit", "Max Depth (m)") - self._dict["unit_mean_height"] = _translate("Unit", "Mean Depth (m)") + self._dict["unit_width_envelop"] = _translate( + "Unit", "Width Envelop (m)" + ) + self._dict["unit_max_width"] = _translate("Unit", "Max Width (m)") + self._dict["unit_min_width"] = _translate("Unit", "Min Width (m)") + self._dict["unit_depth"] = _translate("Unit", "Depth (m)") + self._dict["unit_max_depth"] = _translate("Unit", "Max Depth (m)") + self._dict["unit_min_depth"] = _translate("Unit", "Min Depth (m)") + self._dict["unit_depth_envelop"] = _translate( + "Unit", "Depth Envelop (m)" + ) + self._dict["unit_mean_depth"] = _translate("Unit", "Mean Depth (m)") self._dict["unit_diameter"] = _translate("Unit", "Diameter (m)") self._dict["unit_thickness"] = _translate("Unit", "Thickness (m)") self._dict["unit_elevation"] = _translate("Unit", "Elevation (m)") + self._dict["unit_bed_elevation"] = _translate("Unit", "Bed Elevation (m)") self._dict["unit_water_elevation"] = _translate( - "Unit", "Water elevation (m)" + "Unit", "Water Elevation (m)" + ) + self._dict["unit_water_elevation_envelop"] = _translate( + "Unit", "Water Elevation Envelop (m)" + ) + self._dict["unit_max_water_elevation"] = _translate( + "Unit", "Max Water Elevation (m)" + ) + self._dict["unit_min_water_elevation"] = _translate( + "Unit", "Min Water Elevation (m)" + ) + self._dict["unit_velocity"] = _translate("Unit", "Velocity (m/s)") + self._dict["unit_velocity_envelop"] = _translate( + "Unit", "Velocity Envelop (m/s)" + ) + self._dict["unit_max_velocity"] = _translate( + "Unit", "Max Velocity (m/s)" + ) + self._dict["unit_min_velocity"] = _translate( + "Unit", "Min Velocity (m/s)" ) - - self._dict["unit_speed"] = _translate("Unit", "Velocity (m/s)") self._dict["unit_discharge"] = _translate("Unit", "Discharge (m^3/s)") + self._dict["unit_discharge_envelop"] = _translate( + "Unit", "Discharge Envelop (m^3/s)" + ) + self._dict["unit_max_discharge"] = _translate( + "Unit", "Max Discharge (m^3/s)" + ) + self._dict["unit_min_discharge"] = _translate( + "Unit", "Min Discharge (m^3/s)" + ) self._dict["unit_area"] = _translate("Unit", "Area (hectare)") self._dict["unit_time_s"] = _translate("Unit", "Time (sec)") -- GitLab