mirror of
https://gitlab.com/pamhyr/pamhyr2.git
synced 2026-10-30 03:20:41 +01:00
debug compare results
This commit is contained in:
1 parent
e3229c8183
commit
0fa3ca5fad
9 files changed
+54
-23
No files matched your search
+31
-2
@@ -1627,6 +1627,8 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||
return None
|
||||
|
||||
solver3 = GenericSolver(solver1.name+" - "+solver2.name)
|
||||
solver4 = GenericSolver(solver1.name)
|
||||
solver5 = GenericSolver(solver2.name)
|
||||
|
||||
result1 = solver1.results(
|
||||
self._study,
|
||||
@@ -1657,27 +1659,54 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||
# return [result1, result2]
|
||||
|
||||
result3 = Results(self._study, solver3)
|
||||
result4 = Results(self._study, solver1)
|
||||
result5 = Results(self._study, solver2)
|
||||
result3.set("nb_reach", result1.get("nb_reach"))
|
||||
result4.set("nb_reach", result1.get("nb_reach"))
|
||||
result5.set("nb_reach", result1.get("nb_reach"))
|
||||
result3.set("nb_profile", result1.get("nb_profile"))
|
||||
result4.set("nb_profile", result1.get("nb_profile"))
|
||||
result5.set("nb_profile", result1.get("nb_profile"))
|
||||
ts = list(result1.get("timestamps").intersection(result2.get("timestamps")))
|
||||
result3.set("timestamps", ts)
|
||||
result4.set("timestamps", ts)
|
||||
result5.set("timestamps", ts)
|
||||
|
||||
for i in range(int(result1.get("nb_reach"))):
|
||||
# Add reach to results reach list
|
||||
r = result3.river.add(i)
|
||||
r = result4.river.add(i)
|
||||
r = result5.river.add(i)
|
||||
|
||||
for timestamp in result3.get("timestamps"):
|
||||
for r in range(int(result1.get("nb_reach"))):
|
||||
reach1 = result1.river.reach(r)
|
||||
reach2 = result2.river.reach(r)
|
||||
reach3 = result3.river.reach(r)
|
||||
reach4 = result4.river.reach(r)
|
||||
reach5 = result5.river.reach(r)
|
||||
for p, (profile1, profile2) in enumerate(zip(reach1.profiles, reach2.profiles)):
|
||||
for key in ["Z", "Q", "V"]:
|
||||
d1 = profile1.get_ts_key(timestamp, key)
|
||||
d2 = profile2.get_ts_key(timestamp, key)
|
||||
reach3.set(p, timestamp, key, d1-d2)
|
||||
d = d1-d2
|
||||
reach3.set(p, timestamp, key, d)
|
||||
reach4.set(p, timestamp, key, d1)
|
||||
reach5.set(p, timestamp, key, d2)
|
||||
limits = reach3.profile(p).geometry.get_water_limits(
|
||||
reach3.profile(p).get_ts_key(timestamp, "Z")
|
||||
)
|
||||
reach3.set(
|
||||
p, timestamp,
|
||||
"water_limits",
|
||||
limits
|
||||
)
|
||||
limits = profile1.get_ts_key(timestamp, "water_limits")
|
||||
reach4.set(p, timestamp, "water_limits", limits)
|
||||
limits = profile2.get_ts_key(timestamp, "water_limits")
|
||||
reach5.set(p, timestamp, "water_limits", limits)
|
||||
|
||||
return [result1, result2, result3]
|
||||
return [result4, result5, result3]
|
||||
|
||||
def open_results_adists(self):
|
||||
if self._study is None:
|
||||
|
||||
@@ -144,7 +144,7 @@ class PlotAC(PamhyrPlot):
|
||||
self.update()
|
||||
|
||||
def set_result(self, res_id):
|
||||
self._current_result_id = res_id
|
||||
self._current_res_id = res_id
|
||||
self.update()
|
||||
|
||||
def set_timestamp(self, timestamp):
|
||||
|
||||
@@ -62,8 +62,8 @@ class PlotH(PamhyrPlot):
|
||||
|
||||
self._isometric_axis = False
|
||||
|
||||
self._auto_relim_update = False
|
||||
self._autoscale_update = False
|
||||
#self._auto_relim_update = False
|
||||
#self._autoscale_update = False
|
||||
|
||||
@property
|
||||
def results(self):
|
||||
@@ -156,7 +156,7 @@ class PlotH(PamhyrPlot):
|
||||
self.update()
|
||||
|
||||
def set_result(self, res_id):
|
||||
self._current_result_id = res_id
|
||||
self._current_res_id = res_id
|
||||
self.draw()
|
||||
|
||||
def set_timestamp(self, timestamp):
|
||||
|
||||
@@ -318,7 +318,7 @@ class PlotRKC(PamhyrPlot):
|
||||
self.update_current()
|
||||
|
||||
def set_result(self, res_id):
|
||||
self._current_result_id = res_id
|
||||
self._current_res_id = res_id
|
||||
self.update()
|
||||
|
||||
def set_timestamp(self, timestamp):
|
||||
|
||||
@@ -166,6 +166,7 @@ class PlotXY(PamhyrPlot):
|
||||
if reach.geometry.number_profiles == 0:
|
||||
self._init = False
|
||||
return
|
||||
self.line_xy = []
|
||||
# TODO uncomment to draw all the reaches
|
||||
# self.draw_other_profiles(reaches)
|
||||
for xy in zip(reach.geometry.get_x(),
|
||||
@@ -315,9 +316,8 @@ class PlotXY(PamhyrPlot):
|
||||
self.update_idle()
|
||||
|
||||
def set_result(self, res_id):
|
||||
self._current_result_id = res_id
|
||||
self.update_profile()
|
||||
self.update_idle()
|
||||
self._current_res_id = res_id
|
||||
self.update()
|
||||
|
||||
def set_timestamp(self, timestamp):
|
||||
self._current_timestamp = timestamp
|
||||
|
||||
@@ -89,15 +89,22 @@ class TableModel(PamhyrTableModel):
|
||||
return f"{p.rk:.4f}"
|
||||
return f"{p.name}"
|
||||
elif self._headers[column] == "water_elevation":
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
try:
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
except:
|
||||
v = 0.0
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "discharge":
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||
try:
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||
except:
|
||||
v = 0.0
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "velocity":
|
||||
q = self._lst[row].get_ts_key(self._timestamp, "Q")
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "V")
|
||||
try:
|
||||
v = self._lst[row].get_ts_key(self._timestamp, "V")
|
||||
except:
|
||||
v = 0.0
|
||||
return f"{v:.4f}"
|
||||
elif self._headers[column] == "width":
|
||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||
|
||||
@@ -438,6 +438,7 @@ class ResultsWindow(PamhyrWindow):
|
||||
self.update_table_selection_profile(profile_id)
|
||||
|
||||
if solver_id is not None:
|
||||
self._current_results = solver_id
|
||||
self.plot_xy.set_result(solver_id)
|
||||
self.plot_ac.set_result(solver_id)
|
||||
self.plot_rkc.set_result(solver_id)
|
||||
@@ -917,10 +918,4 @@ class ResultsWindow(PamhyrWindow):
|
||||
return my_dict
|
||||
|
||||
def get_timestamps(self):
|
||||
if len(self._results) == 1:
|
||||
self._timestamps = sorted(list(self._results[0].get("timestamps")))
|
||||
else: # len(self._results) == 2:
|
||||
self._timestamps = sorted(list(
|
||||
self._results[0].get("timestamps").intersection(
|
||||
self._results[1].get("timestamps"))
|
||||
))
|
||||
self._timestamps = sorted(list(self._results[0].get("timestamps")))
|
||||
Reference in new issue
Block a user