mirror of https://gitlab.com/pamhyr/pamhyr2
debug compare results
parent
e3229c8183
commit
0fa3ca5fad
|
|
@ -168,7 +168,7 @@ class ProfileXYZ(Profile, SQLSubModel):
|
|||
lambda s: s.id == sl,
|
||||
data["sediment_layers_list"].sediment_layers
|
||||
)
|
||||
)
|
||||
, None)
|
||||
|
||||
data["profile"] = new
|
||||
new._points = PointXYZ._db_load(execute, data.copy())
|
||||
|
|
|
|||
|
|
@ -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")))
|
||||
|
|
|
|||
Binary file not shown.
Loading…
Reference in New Issue