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,
|
lambda s: s.id == sl,
|
||||||
data["sediment_layers_list"].sediment_layers
|
data["sediment_layers_list"].sediment_layers
|
||||||
)
|
)
|
||||||
)
|
, None)
|
||||||
|
|
||||||
data["profile"] = new
|
data["profile"] = new
|
||||||
new._points = PointXYZ._db_load(execute, data.copy())
|
new._points = PointXYZ._db_load(execute, data.copy())
|
||||||
|
|
|
||||||
|
|
@ -1627,6 +1627,8 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
solver3 = GenericSolver(solver1.name+" - "+solver2.name)
|
solver3 = GenericSolver(solver1.name+" - "+solver2.name)
|
||||||
|
solver4 = GenericSolver(solver1.name)
|
||||||
|
solver5 = GenericSolver(solver2.name)
|
||||||
|
|
||||||
result1 = solver1.results(
|
result1 = solver1.results(
|
||||||
self._study,
|
self._study,
|
||||||
|
|
@ -1657,27 +1659,54 @@ class ApplicationWindow(QMainWindow, ListedSubWindow, WindowToolKit):
|
||||||
# return [result1, result2]
|
# return [result1, result2]
|
||||||
|
|
||||||
result3 = Results(self._study, solver3)
|
result3 = Results(self._study, solver3)
|
||||||
|
result4 = Results(self._study, solver1)
|
||||||
|
result5 = Results(self._study, solver2)
|
||||||
result3.set("nb_reach", result1.get("nb_reach"))
|
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"))
|
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")))
|
ts = list(result1.get("timestamps").intersection(result2.get("timestamps")))
|
||||||
result3.set("timestamps", ts)
|
result3.set("timestamps", ts)
|
||||||
|
result4.set("timestamps", ts)
|
||||||
|
result5.set("timestamps", ts)
|
||||||
|
|
||||||
for i in range(int(result1.get("nb_reach"))):
|
for i in range(int(result1.get("nb_reach"))):
|
||||||
# Add reach to results reach list
|
# Add reach to results reach list
|
||||||
r = result3.river.add(i)
|
r = result3.river.add(i)
|
||||||
|
r = result4.river.add(i)
|
||||||
|
r = result5.river.add(i)
|
||||||
|
|
||||||
for timestamp in result3.get("timestamps"):
|
for timestamp in result3.get("timestamps"):
|
||||||
for r in range(int(result1.get("nb_reach"))):
|
for r in range(int(result1.get("nb_reach"))):
|
||||||
reach1 = result1.river.reach(r)
|
reach1 = result1.river.reach(r)
|
||||||
reach2 = result2.river.reach(r)
|
reach2 = result2.river.reach(r)
|
||||||
reach3 = result3.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 p, (profile1, profile2) in enumerate(zip(reach1.profiles, reach2.profiles)):
|
||||||
for key in ["Z", "Q", "V"]:
|
for key in ["Z", "Q", "V"]:
|
||||||
d1 = profile1.get_ts_key(timestamp, key)
|
d1 = profile1.get_ts_key(timestamp, key)
|
||||||
d2 = profile2.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):
|
def open_results_adists(self):
|
||||||
if self._study is None:
|
if self._study is None:
|
||||||
|
|
|
||||||
|
|
@ -144,7 +144,7 @@ class PlotAC(PamhyrPlot):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def set_result(self, res_id):
|
def set_result(self, res_id):
|
||||||
self._current_result_id = res_id
|
self._current_res_id = res_id
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def set_timestamp(self, timestamp):
|
def set_timestamp(self, timestamp):
|
||||||
|
|
|
||||||
|
|
@ -62,8 +62,8 @@ class PlotH(PamhyrPlot):
|
||||||
|
|
||||||
self._isometric_axis = False
|
self._isometric_axis = False
|
||||||
|
|
||||||
self._auto_relim_update = False
|
#self._auto_relim_update = False
|
||||||
self._autoscale_update = False
|
#self._autoscale_update = False
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def results(self):
|
def results(self):
|
||||||
|
|
@ -156,7 +156,7 @@ class PlotH(PamhyrPlot):
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def set_result(self, res_id):
|
def set_result(self, res_id):
|
||||||
self._current_result_id = res_id
|
self._current_res_id = res_id
|
||||||
self.draw()
|
self.draw()
|
||||||
|
|
||||||
def set_timestamp(self, timestamp):
|
def set_timestamp(self, timestamp):
|
||||||
|
|
|
||||||
|
|
@ -318,7 +318,7 @@ class PlotRKC(PamhyrPlot):
|
||||||
self.update_current()
|
self.update_current()
|
||||||
|
|
||||||
def set_result(self, res_id):
|
def set_result(self, res_id):
|
||||||
self._current_result_id = res_id
|
self._current_res_id = res_id
|
||||||
self.update()
|
self.update()
|
||||||
|
|
||||||
def set_timestamp(self, timestamp):
|
def set_timestamp(self, timestamp):
|
||||||
|
|
|
||||||
|
|
@ -166,6 +166,7 @@ class PlotXY(PamhyrPlot):
|
||||||
if reach.geometry.number_profiles == 0:
|
if reach.geometry.number_profiles == 0:
|
||||||
self._init = False
|
self._init = False
|
||||||
return
|
return
|
||||||
|
self.line_xy = []
|
||||||
# TODO uncomment to draw all the reaches
|
# TODO uncomment to draw all the reaches
|
||||||
# self.draw_other_profiles(reaches)
|
# self.draw_other_profiles(reaches)
|
||||||
for xy in zip(reach.geometry.get_x(),
|
for xy in zip(reach.geometry.get_x(),
|
||||||
|
|
@ -315,9 +316,8 @@ class PlotXY(PamhyrPlot):
|
||||||
self.update_idle()
|
self.update_idle()
|
||||||
|
|
||||||
def set_result(self, res_id):
|
def set_result(self, res_id):
|
||||||
self._current_result_id = res_id
|
self._current_res_id = res_id
|
||||||
self.update_profile()
|
self.update()
|
||||||
self.update_idle()
|
|
||||||
|
|
||||||
def set_timestamp(self, timestamp):
|
def set_timestamp(self, timestamp):
|
||||||
self._current_timestamp = timestamp
|
self._current_timestamp = timestamp
|
||||||
|
|
|
||||||
|
|
@ -89,15 +89,22 @@ class TableModel(PamhyrTableModel):
|
||||||
return f"{p.rk:.4f}"
|
return f"{p.rk:.4f}"
|
||||||
return f"{p.name}"
|
return f"{p.name}"
|
||||||
elif self._headers[column] == "water_elevation":
|
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}"
|
return f"{v:.4f}"
|
||||||
elif self._headers[column] == "discharge":
|
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}"
|
return f"{v:.4f}"
|
||||||
elif self._headers[column] == "velocity":
|
elif self._headers[column] == "velocity":
|
||||||
q = self._lst[row].get_ts_key(self._timestamp, "Q")
|
try:
|
||||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
v = self._lst[row].get_ts_key(self._timestamp, "V")
|
||||||
v = self._lst[row].get_ts_key(self._timestamp, "V")
|
except:
|
||||||
|
v = 0.0
|
||||||
return f"{v:.4f}"
|
return f"{v:.4f}"
|
||||||
elif self._headers[column] == "width":
|
elif self._headers[column] == "width":
|
||||||
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
z = self._lst[row].get_ts_key(self._timestamp, "Z")
|
||||||
|
|
|
||||||
|
|
@ -438,6 +438,7 @@ class ResultsWindow(PamhyrWindow):
|
||||||
self.update_table_selection_profile(profile_id)
|
self.update_table_selection_profile(profile_id)
|
||||||
|
|
||||||
if solver_id is not None:
|
if solver_id is not None:
|
||||||
|
self._current_results = solver_id
|
||||||
self.plot_xy.set_result(solver_id)
|
self.plot_xy.set_result(solver_id)
|
||||||
self.plot_ac.set_result(solver_id)
|
self.plot_ac.set_result(solver_id)
|
||||||
self.plot_rkc.set_result(solver_id)
|
self.plot_rkc.set_result(solver_id)
|
||||||
|
|
@ -917,10 +918,4 @@ class ResultsWindow(PamhyrWindow):
|
||||||
return my_dict
|
return my_dict
|
||||||
|
|
||||||
def get_timestamps(self):
|
def get_timestamps(self):
|
||||||
if len(self._results) == 1:
|
self._timestamps = sorted(list(self._results[0].get("timestamps")))
|
||||||
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"))
|
|
||||||
))
|
|
||||||
|
|
|
||||||
Binary file not shown.
Loading…
Reference in New Issue