work on results, type_pol

adists_release
Theophile Terraz 2024-12-03 14:59:38 +01:00
parent a1ae3f42f4
commit b85962bfcd
6 changed files with 105 additions and 102 deletions

View File

@ -47,12 +47,7 @@ class Results(object):
for el in glob.glob(repertory_results + "/*.bin") for el in glob.glob(repertory_results + "/*.bin")
] ]
self.type_pol = type_pol self._phys_var_list = ["C", "G", "M", "D", "L", "N", "R"]
if type_pol == 7:
self._phys_var_list = ["C", "G", "M", "D", "L", "N", "R"]
else:
self._phys_var_list = ["C"]
@property @property
def date(self): def date(self):
@ -75,6 +70,10 @@ class Results(object):
def phys_var_list(self): def phys_var_list(self):
return self._phys_var_list return self._phys_var_list
@property
def nb_pollutants(self):
return len(self._pollutants_list)
def set(self, key, value): def set(self, key, value):
self._meta_data[key] = value self._meta_data[key] = value

View File

@ -184,10 +184,10 @@ class PlotAdis_dt(PamhyrPlot):
self.canvas.axes.get_ylim() self.canvas.axes.get_ylim()
) )
self.hide_current self.hide_current()
self.canvas.axes.relim(visible_only=True) self.canvas.axes.relim(visible_only=True)
self.canvas.axes.autoscale_view() self.canvas.axes.autoscale_view()
self.show_current self.show_current()
def update_current(self): def update_current(self):
self._current.set_data( self._current.set_data(

View File

@ -218,10 +218,10 @@ class PlotAdis_dx(PamhyrPlot):
self.update_current() self.update_current()
self.hide_current self.hide_current()
self.canvas.axes.relim(visible_only=True) self.canvas.axes.relim(visible_only=True)
self.canvas.axes.autoscale_view() self.canvas.axes.autoscale_view()
self.show_current self.show_current()
def update_current(self): def update_current(self):
reach = self.results.river.reach(self._current_reach_id) reach = self.results.river.reach(self._current_reach_id)

View File

@ -58,7 +58,6 @@ class TableModel(PamhyrTableModel):
self._lst = _river.reach(0).profiles self._lst = _river.reach(0).profiles
elif self._opt_data == "pollutants": elif self._opt_data == "pollutants":
tmp_list = self._data.pollutants_list.copy() tmp_list = self._data.pollutants_list.copy()
tmp_list.remove("total_sediment")
###print(type(tmp_list)) ###print(type(tmp_list))
#tmp_list.insert(len(tmp_list), "total_sediment") #tmp_list.insert(len(tmp_list), "total_sediment")
self._lst = tmp_list self._lst = tmp_list

View File

@ -85,12 +85,10 @@ class ResultsWindowAdisTS(PamhyrWindow):
parent=None): parent=None):
self._solver = solver self._solver = solver
self._results = results self._results = results
self._type_pol = results.type_pol #####
pollutants_headers = self._results.pollutants_list.copy() pollutants_headers = self._results.pollutants_list.copy()
print("***///---+++///***---+++pollutants translate: ", pollutants_headers)
trad = ResultsTranslate(pollutants_headers, self._type_pol) trad = ResultsTranslate(pollutants_headers)
name = ( name = (
trad[self._pamhyr_name] + " - " trad[self._pamhyr_name] + " - "
+ study.name + " - " + study.name + " - "
@ -109,38 +107,42 @@ class ResultsWindowAdisTS(PamhyrWindow):
self._hash_data.append(self._results) self._hash_data.append(self._results)
self._additional_plot = {} self._additional_plot = {}
self._pol_id = 0
self._reach_id = 0
self._profile_id = 0
try: try:
# print("timestamps results: ", self._results)
self._timestamps = sorted(list(self._results.get("timestamps"))) self._timestamps = sorted(list(self._results.get("timestamps")))
self.set_type_pol()
print("setup table adists results")
self.setup_slider() self.setup_slider()
print("///setup slider correct")
self.setup_table() self.setup_table()
print("///setup table correct")
self.setup_plots() self.setup_plots()
print("///setup plots correct")
self.setup_statusbar() self.setup_statusbar()
print("///setup status bar correct")
self.setup_connections() self.setup_connections()
print("///setup connections correct") self.update_table_selection_reach(self._reach_id)
self.update_table_selection_reach(0) self.update_table_selection_profile(self._profile_id)
self.update_table_selection_profile(0) self.update_table_selection_pol(self._pol_id)
self.update_table_selection_pol(0)
except Exception as e: except Exception as e:
logger_exception(e) logger_exception(e)
return return
def set_type_pol(self):
self._type_pol = []
tmp_list = self._results.river.reach(0).profiles
print(self._results.pollutants_list)
for pol_index in range(self._results.nb_pollutants):
if self._results.pollutants_list[pol_index] == "total_sediment":
self._type_pol.append(-1)
else:
self._type_pol.append(len(
tmp_list[0].get_ts_key(
self._timestamps[0], "pols")[pol_index])
)
def setup_table(self): def setup_table(self):
print("setup table adists results")
print("results study name: ", self._results.study.name)
print("results study river: ", self._results.study.river)
print("*********files names resultats from Results Window: ", self._results.pollutants_list)
self._table = {} self._table = {}
for t in ["reach", "profile", "pollutants", "raw_data"]: for t in ["reach", "profile", "pollutants", "raw_data"]:
print("t: ", t)
table = self.find(QTableView, f"tableView_{t}") table = self.find(QTableView, f"tableView_{t}")
self._table[t] = TableModel( self._table[t] = TableModel(
self._type_pol, self._type_pol,
@ -192,9 +194,9 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_c_dt = PlotAdis_dt( self.plot_c_dt = PlotAdis_dt(
canvas=self.canvas_dt, canvas=self.canvas_dt,
results=self._results, results=self._results,
reach_id=0, reach_id=self._reach_id,
profile_id=0, profile_id=self._profile_id,
pol_id=0, pol_id=self._pol_id,
key="C", key="C",
trad=self._trad, trad=self._trad,
toolbar=self.toolbar_dt toolbar=self.toolbar_dt
@ -217,48 +219,54 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_c_dx = PlotAdis_dx( self.plot_c_dx = PlotAdis_dx(
canvas=self.canvas_dx, canvas=self.canvas_dx,
results=self._results, results=self._results,
reach_id=0, reach_id=self._reach_id,
profile_id=0, profile_id=self._profile_id,
pol_id=0, pol_id=self._pol_id,
key="C", key="C",
trad=self._trad, trad=self._trad,
toolbar=self.toolbar_dx toolbar=self.toolbar_dx
) )
self.plot_c_dx.draw() self.plot_c_dx.draw()
print("///plot c adists correct") self.canvas_3 = MplCanvas(width=5, height=4, dpi=100)
self.canvas_3.setObjectName("canvas_3")
self.toolbar_3 = PamhyrPlotToolbar(
self.canvas_3, self, items=[
"home", "move", "zoom", "save",
"iso", "back/forward"
]
)
self.plot_layout_3 = self.find(
QVBoxLayout, "verticalLayout_mass")
self.plot_layout_3.addWidget(self.toolbar_3)
self.plot_layout_3.addWidget(self.canvas_3)
if self._type_pol == 7: #self.plot_m = PlotM(
self.canvas_3 = MplCanvas(width=5, height=4, dpi=100) #canvas=self.canvas_3,
self.canvas_3.setObjectName("canvas_3") #results=self._results,
self.toolbar_3 = PamhyrPlotToolbar( #reach_id=self._reach_id,
self.canvas_3, self, items=[ #profile_id=self._profile_id,
"home", "move", "zoom", "save", #pol_id=self._pol_id,
"iso", "back/forward" #trad=self._trad,
] #toolbar=self.toolbar_3
) #)
self.plot_layout_3 = self.find(
QVBoxLayout, "verticalLayout_mass")
self.plot_layout_3.addWidget(self.toolbar_3)
self.plot_layout_3.addWidget(self.canvas_3)
self.plot_m = PlotM(
canvas=self.canvas_3,
results=self._results,
reach_id=0,
profile_id=0,
pol_id=0,
trad=self._trad,
toolbar=self.toolbar_3
)
self.plot_m.draw()
else:
print("hear -------------------------------------------------------------------------------")
#self.find(QVBoxLayout, "verticalLayout_mass").setDisabled(True)
self.find(QTabWidget, "tabWidget").setTabVisible(3, False) ###setTabEnabled(2, False) self.plot_m = PlotAdis_dx(
canvas=self.canvas_3,
results=self._results,
reach_id=self._reach_id,
profile_id=self._profile_id,
pol_id=self._pol_id,
key="M",
trad=self._trad,
toolbar=self.toolbar_3
)
print("///plot m adists correct") self.plot_m.draw()
if self._type_pol[self._pol_id] != 7:
self.find(QTabWidget, "tabWidget").setTabVisible(3, False)
self.canvas_2 = MplCanvas(width=5, height=4, dpi=100) self.canvas_2 = MplCanvas(width=5, height=4, dpi=100)
self.canvas_2.setObjectName("canvas_2") self.canvas_2.setObjectName("canvas_2")
@ -276,8 +284,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_tot_c = PlotTotSedC( self.plot_tot_c = PlotTotSedC(
canvas=self.canvas_2, canvas=self.canvas_2,
results=self._results, results=self._results,
reach_id=0, reach_id=self._reach_id,
profile_id=0, profile_id=self._profile_id,
pol_id=self._results.pollutants_list.index("total_sediment"), pol_id=self._results.pollutants_list.index("total_sediment"),
trad=self._trad, trad=self._trad,
toolbar=self.toolbar_2 toolbar=self.toolbar_2
@ -301,8 +309,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_tot_eg = PlotTotSedEG( self.plot_tot_eg = PlotTotSedEG(
canvas=self.canvas_1, canvas=self.canvas_1,
results=self._results, results=self._results,
reach_id=0, reach_id=self._reach_id,
profile_id=0, profile_id=self._profile_id,
pol_id=self._results.pollutants_list.index("total_sediment"), pol_id=self._results.pollutants_list.index("total_sediment"),
trad=self._trad, trad=self._trad,
toolbar=self.toolbar_1 toolbar=self.toolbar_1
@ -326,8 +334,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_tot_em = PlotTotSedEM( self.plot_tot_em = PlotTotSedEM(
canvas=self.canvas_0, canvas=self.canvas_0,
results=self._results, results=self._results,
reach_id=0, reach_id=self._reach_id,
profile_id=0, profile_id=self._profile_id,
pol_id=self._results.pollutants_list.index("total_sediment"), pol_id=self._results.pollutants_list.index("total_sediment"),
trad=self._trad, trad=self._trad,
toolbar=self.toolbar_0 toolbar=self.toolbar_0
@ -346,15 +354,13 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_layout_5 = self.find( self.plot_layout_5 = self.find(
QVBoxLayout, "verticalLayout_tot_right") QVBoxLayout, "verticalLayout_tot_right")
self.plot_layout_5.addWidget(self.toolbar_5) self.plot_layout_5.addWidget(self.toolbar_5)
print("///***---+++///+++add toolbar correct")
self.plot_layout_5.addWidget(self.canvas_5) self.plot_layout_5.addWidget(self.canvas_5)
print("///***---+++///+++add canvas correct")
self.plot_tot_ed = PlotTotSedED( self.plot_tot_ed = PlotTotSedED(
canvas=self.canvas_5, canvas=self.canvas_5,
results=self._results, results=self._results,
reach_id=0, reach_id=self._reach_id,
profile_id=0, profile_id=self._profile_id,
pol_id=self._results.pollutants_list.index("total_sediment"), pol_id=self._results.pollutants_list.index("total_sediment"),
trad=self._trad, trad=self._trad,
toolbar=self.toolbar_5 toolbar=self.toolbar_5
@ -507,7 +513,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
if reach_id is not None: if reach_id is not None:
self.plot_c_dt.set_reach(reach_id) self.plot_c_dt.set_reach(reach_id)
self.plot_c_dx.set_reach(reach_id) self.plot_c_dx.set_reach(reach_id)
#self.plot_m.set_reach(reach_id) if self._type_pol[self._pol_id] == 7:
self.plot_m.set_reach(reach_id)
self.plot_tot_c.set_reach(reach_id) self.plot_tot_c.set_reach(reach_id)
self.plot_tot_eg.set_reach(reach_id) self.plot_tot_eg.set_reach(reach_id)
self.plot_tot_em.set_reach(reach_id) self.plot_tot_em.set_reach(reach_id)
@ -520,7 +527,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
if profile_id is not None: if profile_id is not None:
self.plot_c_dt.set_profile(profile_id) self.plot_c_dt.set_profile(profile_id)
self.plot_c_dx.set_profile(profile_id) self.plot_c_dx.set_profile(profile_id)
#self.plot_m.set_profile(profile_id) if self._type_pol[self._pol_id] == 7:
self.plot_m.set_profile(profile_id)
self.plot_tot_c.set_profile(profile_id) self.plot_tot_c.set_profile(profile_id)
self.plot_tot_eg.set_profile(profile_id) self.plot_tot_eg.set_profile(profile_id)
self.plot_tot_em.set_profile(profile_id) self.plot_tot_em.set_profile(profile_id)
@ -528,20 +536,23 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.update_table_selection_profile(profile_id) self.update_table_selection_profile(profile_id)
print("--**//++update pol_id before None: ", pol_id)
if pol_id is not None: if pol_id is not None:
print("--**//++//**//** update pol_id: ", pol_id) self._pol_id = pol_id
self.plot_c_dt.set_pollutant(pol_id) self.plot_c_dt.set_pollutant(self._pol_id)
self.plot_c_dx.set_pollutant(pol_id) self.plot_c_dx.set_pollutant(self._pol_id)
#self.plot_m.set_pollutant(pol_id) if self._type_pol[self._pol_id] == 7:
self.find(QTabWidget, "tabWidget").setTabVisible(3, True)
self.plot_m.set_pollutant(self._pol_id)
else:
self.find(QTabWidget, "tabWidget").setTabVisible(3, False)
self.update_table_selection_pol(pol_id) self.update_table_selection_pol(self._pol_id)
if timestamp is not None: if timestamp is not None:
self.plot_c_dt.set_timestamp(timestamp) self.plot_c_dt.set_timestamp(timestamp)
self.plot_c_dx.set_timestamp(timestamp) self.plot_c_dx.set_timestamp(timestamp)
#self.plot_m.set_timestamp(timestamp) if self._type_pol[self._pol_id] == 7:
self.plot_m.set_timestamp(timestamp)
#self.plot_tot_c.set_timestamp(timestamp) #self.plot_tot_c.set_timestamp(timestamp)
#self.plot_tot_eg.set_timestamp(timestamp) #self.plot_tot_eg.set_timestamp(timestamp)
#self.plot_tot_em.set_timestamp(timestamp) #self.plot_tot_em.set_timestamp(timestamp)
@ -570,8 +581,7 @@ class ResultsWindowAdisTS(PamhyrWindow):
if len(indexes) == 0: if len(indexes) == 0:
return return
ind = indexes[0].row() self.update(profile_id=indexes[0].row())
self.update(profile_id=ind)
###self._slider_profile.setValue(ind) ###self._slider_profile.setValue(ind)
def _set_current_pol(self): def _set_current_pol(self):
@ -580,9 +590,7 @@ class ResultsWindowAdisTS(PamhyrWindow):
if len(indexes) == 0: if len(indexes) == 0:
return return
ind = indexes[0].row() self.update(pol_id=indexes[0].row())
print("set pol id: ", ind)
self.update(pol_id=ind)
def _set_current_profile_raw_data(self): def _set_current_profile_raw_data(self):
table = self.find(QTableView, f"tableView_raw_data") table = self.find(QTableView, f"tableView_raw_data")
@ -605,7 +613,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
def _reload_plots(self): def _reload_plots(self):
self.plot_c_dt.results = self._results self.plot_c_dt.results = self._results
self.plot_c_dx.results = self._results self.plot_c_dx.results = self._results
#self.plot_m.results = self._results if self._type_pol[self._pol_id] == 7:
self.plot_m.results = self._results
self.plot_tot_c.results = self._results self.plot_tot_c.results = self._results
self.plot_tot_eg.results = self._results self.plot_tot_eg.results = self._results
self.plot_tot_em.results = self._results self.plot_tot_em.results = self._results
@ -613,7 +622,8 @@ class ResultsWindowAdisTS(PamhyrWindow):
self.plot_c_dt.draw() self.plot_c_dt.draw()
self.plot_c_dx.draw() self.plot_c_dx.draw()
#self.plot_m.draw() if self._type_pol[self._pol_id] == 7:
self.plot_m.draw()
self.plot_tot_c.draw() self.plot_tot_c.draw()
self.plot_tot_eg.draw() self.plot_tot_eg.draw()
self.plot_tot_em.draw() self.plot_tot_em.draw()

View File

@ -24,7 +24,7 @@ _translate = QCoreApplication.translate
class ResultsTranslate(MainTranslate): class ResultsTranslate(MainTranslate):
def __init__(self, pollutants=None, type_pol=None): def __init__(self, pollutants=None):
if pollutants is not None: if pollutants is not None:
self.pollutants = pollutants self.pollutants = pollutants
if "total_sediment" in self.pollutants: if "total_sediment" in self.pollutants:
@ -32,8 +32,6 @@ class ResultsTranslate(MainTranslate):
else: else:
self.pollutants = pollutants self.pollutants = pollutants
self._type_pol = type_pol
super(ResultsTranslate, self).__init__() super(ResultsTranslate, self).__init__()
self._dict["Results"] = _translate("Results", "Results") self._dict["Results"] = _translate("Results", "Results")
@ -104,12 +102,9 @@ class ResultsTranslate(MainTranslate):
self._sub_dict["table_headers_raw_data"] = { self._sub_dict["table_headers_raw_data"] = {
"name": _translate("Results", "Profile"), "name": _translate("Results", "Profile"),
} }
for pol in self.pollutants: for i, pol in enumerate(self.pollutants):
if self._type_pol == 7: self._sub_dict["table_headers_raw_data"][pol + " Concentration"] = pol + "\n Concentration"
self._sub_dict["table_headers_raw_data"][pol + " Concentration"] = pol + "\n Concentration" self._sub_dict["table_headers_raw_data"][pol + " Mass"] = pol + "\n Mass"
self._sub_dict["table_headers_raw_data"][pol + " Mass"] = pol + "\n Mass"
else:
self._sub_dict["table_headers_raw_data"][pol + " Concentration"] = pol + "\n Concentration"
else: else:
self._sub_dict["table_headers_raw_data"] = { self._sub_dict["table_headers_raw_data"] = {
"name": _translate("Results", "Profile"), "name": _translate("Results", "Profile"),