diff --git a/src/Model/Results/ResultsAdisTS.py b/src/Model/Results/ResultsAdisTS.py index a55f2162..fccfc27e 100644 --- a/src/Model/Results/ResultsAdisTS.py +++ b/src/Model/Results/ResultsAdisTS.py @@ -47,12 +47,7 @@ class Results(object): for el in glob.glob(repertory_results + "/*.bin") ] - self.type_pol = type_pol - - if type_pol == 7: - self._phys_var_list = ["C", "G", "M", "D", "L", "N", "R"] - else: - self._phys_var_list = ["C"] + self._phys_var_list = ["C", "G", "M", "D", "L", "N", "R"] @property def date(self): @@ -75,6 +70,10 @@ class Results(object): def phys_var_list(self): return self._phys_var_list + @property + def nb_pollutants(self): + return len(self._pollutants_list) + def set(self, key, value): self._meta_data[key] = value diff --git a/src/View/Results/PlotSedAdisDt.py b/src/View/Results/PlotSedAdisDt.py index 4b19d3e7..bbc1f2df 100644 --- a/src/View/Results/PlotSedAdisDt.py +++ b/src/View/Results/PlotSedAdisDt.py @@ -184,10 +184,10 @@ class PlotAdis_dt(PamhyrPlot): self.canvas.axes.get_ylim() ) - self.hide_current + self.hide_current() self.canvas.axes.relim(visible_only=True) self.canvas.axes.autoscale_view() - self.show_current + self.show_current() def update_current(self): self._current.set_data( diff --git a/src/View/Results/PlotSedAdisDx.py b/src/View/Results/PlotSedAdisDx.py index 77530ff6..b1b872c8 100644 --- a/src/View/Results/PlotSedAdisDx.py +++ b/src/View/Results/PlotSedAdisDx.py @@ -218,10 +218,10 @@ class PlotAdis_dx(PamhyrPlot): self.update_current() - self.hide_current + self.hide_current() self.canvas.axes.relim(visible_only=True) self.canvas.axes.autoscale_view() - self.show_current + self.show_current() def update_current(self): reach = self.results.river.reach(self._current_reach_id) diff --git a/src/View/Results/TableAdisTS.py b/src/View/Results/TableAdisTS.py index e6c4cc70..fef91191 100644 --- a/src/View/Results/TableAdisTS.py +++ b/src/View/Results/TableAdisTS.py @@ -58,7 +58,6 @@ class TableModel(PamhyrTableModel): self._lst = _river.reach(0).profiles elif self._opt_data == "pollutants": tmp_list = self._data.pollutants_list.copy() - tmp_list.remove("total_sediment") ###print(type(tmp_list)) #tmp_list.insert(len(tmp_list), "total_sediment") self._lst = tmp_list diff --git a/src/View/Results/WindowAdisTS.py b/src/View/Results/WindowAdisTS.py index 3b003a71..fd163e8a 100644 --- a/src/View/Results/WindowAdisTS.py +++ b/src/View/Results/WindowAdisTS.py @@ -85,12 +85,10 @@ class ResultsWindowAdisTS(PamhyrWindow): parent=None): self._solver = solver self._results = results - self._type_pol = results.type_pol ##### pollutants_headers = self._results.pollutants_list.copy() - print("***///---+++///***---+++pollutants translate: ", pollutants_headers) - trad = ResultsTranslate(pollutants_headers, self._type_pol) + trad = ResultsTranslate(pollutants_headers) name = ( trad[self._pamhyr_name] + " - " + study.name + " - " @@ -109,38 +107,42 @@ class ResultsWindowAdisTS(PamhyrWindow): self._hash_data.append(self._results) self._additional_plot = {} + self._pol_id = 0 + self._reach_id = 0 + self._profile_id = 0 + try: - # print("timestamps results: ", self._results) self._timestamps = sorted(list(self._results.get("timestamps"))) - - print("setup table adists results") - + self.set_type_pol() self.setup_slider() - print("///setup slider correct") self.setup_table() - print("///setup table correct") self.setup_plots() - print("///setup plots correct") self.setup_statusbar() - print("///setup status bar correct") self.setup_connections() - print("///setup connections correct") - self.update_table_selection_reach(0) - self.update_table_selection_profile(0) - self.update_table_selection_pol(0) + self.update_table_selection_reach(self._reach_id) + self.update_table_selection_profile(self._profile_id) + self.update_table_selection_pol(self._pol_id) except Exception as e: logger_exception(e) 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): - 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 = {} for t in ["reach", "profile", "pollutants", "raw_data"]: - print("t: ", t) table = self.find(QTableView, f"tableView_{t}") self._table[t] = TableModel( self._type_pol, @@ -192,9 +194,9 @@ class ResultsWindowAdisTS(PamhyrWindow): self.plot_c_dt = PlotAdis_dt( canvas=self.canvas_dt, results=self._results, - reach_id=0, - profile_id=0, - pol_id=0, + reach_id=self._reach_id, + profile_id=self._profile_id, + pol_id=self._pol_id, key="C", trad=self._trad, toolbar=self.toolbar_dt @@ -217,48 +219,54 @@ class ResultsWindowAdisTS(PamhyrWindow): self.plot_c_dx = PlotAdis_dx( canvas=self.canvas_dx, results=self._results, - reach_id=0, - profile_id=0, - pol_id=0, + reach_id=self._reach_id, + profile_id=self._profile_id, + pol_id=self._pol_id, key="C", trad=self._trad, toolbar=self.toolbar_dx ) 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.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) + #self.plot_m = PlotM( + #canvas=self.canvas_3, + #results=self._results, + #reach_id=self._reach_id, + #profile_id=self._profile_id, + #pol_id=self._pol_id, + #trad=self._trad, + #toolbar=self.toolbar_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.setObjectName("canvas_2") @@ -276,8 +284,8 @@ class ResultsWindowAdisTS(PamhyrWindow): self.plot_tot_c = PlotTotSedC( canvas=self.canvas_2, results=self._results, - reach_id=0, - profile_id=0, + reach_id=self._reach_id, + profile_id=self._profile_id, pol_id=self._results.pollutants_list.index("total_sediment"), trad=self._trad, toolbar=self.toolbar_2 @@ -301,8 +309,8 @@ class ResultsWindowAdisTS(PamhyrWindow): self.plot_tot_eg = PlotTotSedEG( canvas=self.canvas_1, results=self._results, - reach_id=0, - profile_id=0, + reach_id=self._reach_id, + profile_id=self._profile_id, pol_id=self._results.pollutants_list.index("total_sediment"), trad=self._trad, toolbar=self.toolbar_1 @@ -326,8 +334,8 @@ class ResultsWindowAdisTS(PamhyrWindow): self.plot_tot_em = PlotTotSedEM( canvas=self.canvas_0, results=self._results, - reach_id=0, - profile_id=0, + reach_id=self._reach_id, + profile_id=self._profile_id, pol_id=self._results.pollutants_list.index("total_sediment"), trad=self._trad, toolbar=self.toolbar_0 @@ -346,15 +354,13 @@ class ResultsWindowAdisTS(PamhyrWindow): self.plot_layout_5 = self.find( QVBoxLayout, "verticalLayout_tot_right") self.plot_layout_5.addWidget(self.toolbar_5) - print("///***---+++///+++add toolbar correct") self.plot_layout_5.addWidget(self.canvas_5) - print("///***---+++///+++add canvas correct") self.plot_tot_ed = PlotTotSedED( canvas=self.canvas_5, results=self._results, - reach_id=0, - profile_id=0, + reach_id=self._reach_id, + profile_id=self._profile_id, pol_id=self._results.pollutants_list.index("total_sediment"), trad=self._trad, toolbar=self.toolbar_5 @@ -507,7 +513,8 @@ class ResultsWindowAdisTS(PamhyrWindow): if reach_id is not None: self.plot_c_dt.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_eg.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: self.plot_c_dt.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_eg.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) - print("--**//++update pol_id before None: ", pol_id) - if pol_id is not None: - print("--**//++//**//** update pol_id: ", pol_id) - self.plot_c_dt.set_pollutant(pol_id) - self.plot_c_dx.set_pollutant(pol_id) - #self.plot_m.set_pollutant(pol_id) + self._pol_id = pol_id + self.plot_c_dt.set_pollutant(self._pol_id) + self.plot_c_dx.set_pollutant(self._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: self.plot_c_dt.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_eg.set_timestamp(timestamp) #self.plot_tot_em.set_timestamp(timestamp) @@ -570,8 +581,7 @@ class ResultsWindowAdisTS(PamhyrWindow): if len(indexes) == 0: return - ind = indexes[0].row() - self.update(profile_id=ind) + self.update(profile_id=indexes[0].row()) ###self._slider_profile.setValue(ind) def _set_current_pol(self): @@ -580,9 +590,7 @@ class ResultsWindowAdisTS(PamhyrWindow): if len(indexes) == 0: return - ind = indexes[0].row() - print("set pol id: ", ind) - self.update(pol_id=ind) + self.update(pol_id=indexes[0].row()) def _set_current_profile_raw_data(self): table = self.find(QTableView, f"tableView_raw_data") @@ -605,7 +613,8 @@ class ResultsWindowAdisTS(PamhyrWindow): def _reload_plots(self): self.plot_c_dt.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_eg.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_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_eg.draw() self.plot_tot_em.draw() diff --git a/src/View/Results/translate.py b/src/View/Results/translate.py index 07751956..b0573be9 100644 --- a/src/View/Results/translate.py +++ b/src/View/Results/translate.py @@ -24,7 +24,7 @@ _translate = QCoreApplication.translate class ResultsTranslate(MainTranslate): - def __init__(self, pollutants=None, type_pol=None): + def __init__(self, pollutants=None): if pollutants is not None: self.pollutants = pollutants if "total_sediment" in self.pollutants: @@ -32,8 +32,6 @@ class ResultsTranslate(MainTranslate): else: self.pollutants = pollutants - self._type_pol = type_pol - super(ResultsTranslate, self).__init__() self._dict["Results"] = _translate("Results", "Results") @@ -104,12 +102,9 @@ class ResultsTranslate(MainTranslate): self._sub_dict["table_headers_raw_data"] = { "name": _translate("Results", "Profile"), } - for pol in 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 + " Mass"] = pol + "\n Mass" - else: - self._sub_dict["table_headers_raw_data"][pol + " Concentration"] = pol + "\n Concentration" + for i, pol in enumerate(self.pollutants): + self._sub_dict["table_headers_raw_data"][pol + " Concentration"] = pol + "\n Concentration" + self._sub_dict["table_headers_raw_data"][pol + " Mass"] = pol + "\n Mass" else: self._sub_dict["table_headers_raw_data"] = { "name": _translate("Results", "Profile"),