Commit 065d94eb authored by Pierre-Antoine Rouby's avatar Pierre-Antoine Rouby
Browse files

Results: Add 'raw_data' tab and delete sediment tab.

Showing with 139 additions and 118 deletions
+139 -118
...@@ -47,10 +47,13 @@ class TableModel(PamhyrTableModel): ...@@ -47,10 +47,13 @@ class TableModel(PamhyrTableModel):
_river = self._data.river _river = self._data.river
if self._opt_data == "reach": if self._opt_data == "reach":
self._lst = _river.reachs self._lst = _river.reachs
else: elif self._opt_data == "profile":
self._lst = _river.reach(0).profiles
elif self._opt_data == "raw_data":
self._lst = _river.reach(0).profiles self._lst = _river.reach(0).profiles
def __init__(self, **kwargs): def __init__(self, **kwargs):
self._timestamp = 0.0
super(TableModel, self).__init__(**kwargs) super(TableModel, self).__init__(**kwargs)
def data(self, index, role=Qt.DisplayRole): def data(self, index, role=Qt.DisplayRole):
...@@ -64,13 +67,25 @@ class TableModel(PamhyrTableModel): ...@@ -64,13 +67,25 @@ class TableModel(PamhyrTableModel):
if self._headers[column] == "name": if self._headers[column] == "name":
v = self._lst[row].name v = self._lst[row].name
return str(v) return str(v)
else: elif self._opt_data == "profile":
if self._headers[column] == "name": if self._headers[column] == "name":
v = self._lst[row].name v = self._lst[row].name
return str(v) return str(v)
elif self._headers[column] == "kp": elif self._headers[column] == "kp":
v = self._lst[row].kp v = self._lst[row].kp
return f"{v:.4f}" return f"{v:.4f}"
elif self._opt_data == "raw_data":
p = self._lst[row]
if self._headers[column] == "name":
if p.name == "":
return f"{p.kp:.4f}"
return f"{p.name}"
elif self._headers[column] == "water_elevation":
v = self._lst[row].get_ts_key(self._timestamp, "Z")
return f"{v:.4f}"
elif self._headers[column] == "discharge":
v = self._lst[row].get_ts_key(self._timestamp, "Q")
return f"{v:.4f}"
return QVariant() return QVariant()
...@@ -79,7 +94,16 @@ class TableModel(PamhyrTableModel): ...@@ -79,7 +94,16 @@ class TableModel(PamhyrTableModel):
if self._opt_data == "reach": if self._opt_data == "reach":
self._lst = _river.reachs self._lst = _river.reachs
else: elif self._opt_data == "profile" or self._opt_data == "raw_data":
self._lst = _river.reach(reach).profiles self._lst = _river.reach(reach).profiles
self.layoutChanged.emit() self.layoutChanged.emit()
@property
def timestamp(self):
return self._timestamp
@timestamp.setter
def timestamp(self, timestamp):
self._timestamp = timestamp
self.layoutChanged.emit()
...@@ -118,7 +118,7 @@ class ResultsWindow(PamhyrWindow): ...@@ -118,7 +118,7 @@ class ResultsWindow(PamhyrWindow):
def setup_table(self): def setup_table(self):
self._table = {} self._table = {}
for t in ["reach", "profile"]: for t in ["reach", "profile", "raw_data"]:
table = self.find(QTableView, f"tableView_{t}") table = self.find(QTableView, f"tableView_{t}")
self._table[t] = TableModel( self._table[t] = TableModel(
table_view=table, table_view=table,
...@@ -230,44 +230,44 @@ class ResultsWindow(PamhyrWindow): ...@@ -230,44 +230,44 @@ class ResultsWindow(PamhyrWindow):
) )
self.plot_h.draw() self.plot_h.draw()
self.canvas_5 = MplCanvas(width=5, height=4, dpi=100) # self.canvas_5 = MplCanvas(width=5, height=4, dpi=100)
self.canvas_5.setObjectName("canvas_5") # self.canvas_5.setObjectName("canvas_5")
self.toolbar_5 = PamhyrPlotToolbar( # self.toolbar_5 = PamhyrPlotToolbar(
self.canvas_5, self # self.canvas_5, self
) # )
self.plot_layout_5 = self.find(QVBoxLayout, "verticalLayout_sed_reach") # self.plot_layout_5 = self.find(QVBoxLayout, "verticalLayout_sed_reach")
self.plot_layout_5.addWidget(self.toolbar_5) # self.plot_layout_5.addWidget(self.toolbar_5)
self.plot_layout_5.addWidget(self.canvas_5) # self.plot_layout_5.addWidget(self.canvas_5)
if self._study.river.has_sediment(): # if self._study.river.has_sediment():
self.plot_sed_reach = PlotSedReach( # self.plot_sed_reach = PlotSedReach(
canvas=self.canvas_5, # canvas=self.canvas_5,
results=self._results, # results=self._results,
reach_id=0, # reach_id=0,
profile_id=0, # profile_id=0,
toolbar=self.toolbar_5 # toolbar=self.toolbar_5
) # )
self.plot_sed_reach.draw() # self.plot_sed_reach.draw()
self.canvas_6 = MplCanvas(width=5, height=4, dpi=100) # self.canvas_6 = MplCanvas(width=5, height=4, dpi=100)
self.canvas_6.setObjectName("canvas_6") # self.canvas_6.setObjectName("canvas_6")
self.toolbar_6 = PamhyrPlotToolbar( # self.toolbar_6 = PamhyrPlotToolbar(
self.canvas_6, self # self.canvas_6, self
) # )
self.plot_layout_6 = self.find( # self.plot_layout_6 = self.find(
QVBoxLayout, "verticalLayout_sed_profile") # QVBoxLayout, "verticalLayout_sed_profile")
self.plot_layout_6.addWidget(self.toolbar_6) # self.plot_layout_6.addWidget(self.toolbar_6)
self.plot_layout_6.addWidget(self.canvas_6) # self.plot_layout_6.addWidget(self.canvas_6)
if self._study.river.has_sediment(): # if self._study.river.has_sediment():
self.plot_sed_profile = PlotSedProfile( # self.plot_sed_profile = PlotSedProfile(
canvas=self.canvas_6, # canvas=self.canvas_6,
results=self._results, # results=self._results,
reach_id=0, # reach_id=0,
profile_id=0, # profile_id=0,
toolbar=self.toolbar_6 # toolbar=self.toolbar_6
) # )
self.plot_sed_profile.draw() # self.plot_sed_profile.draw()
def closeEvent(self, event): def closeEvent(self, event):
try: try:
...@@ -335,9 +335,10 @@ class ResultsWindow(PamhyrWindow): ...@@ -335,9 +335,10 @@ class ResultsWindow(PamhyrWindow):
fun = { fun = {
"reach": self._set_current_reach, "reach": self._set_current_reach,
"profile": self._set_current_profile, "profile": self._set_current_profile,
"raw_data": self._set_current_profile,
} }
for t in ["reach", "profile"]: for t in ["reach", "profile", "raw_data"]:
table = self.find(QTableView, f"tableView_{t}") table = self.find(QTableView, f"tableView_{t}")
table.selectionModel()\ table.selectionModel()\
...@@ -371,6 +372,7 @@ class ResultsWindow(PamhyrWindow): ...@@ -371,6 +372,7 @@ class ResultsWindow(PamhyrWindow):
table.scrollTo(index) table.scrollTo(index)
self._table["profile"].update(ind) self._table["profile"].update(ind)
self._table["raw_data"].update(ind)
def update_table_selection_profile(self, ind): def update_table_selection_profile(self, ind):
table = self.find(QTableView, f"tableView_profile") table = self.find(QTableView, f"tableView_profile")
...@@ -430,6 +432,8 @@ class ResultsWindow(PamhyrWindow): ...@@ -430,6 +432,8 @@ class ResultsWindow(PamhyrWindow):
for plot in self._additional_plot: for plot in self._additional_plot:
self._additional_plot[plot].set_timestamp(timestamp) self._additional_plot[plot].set_timestamp(timestamp)
self._table["raw_data"].timestamp = timestamp
self.update_statusbar() self.update_statusbar()
def _get_current_reach(self): def _get_current_reach(self):
......
...@@ -46,3 +46,9 @@ class ResultsTranslate(PamhyrTranslate): ...@@ -46,3 +46,9 @@ class ResultsTranslate(PamhyrTranslate):
"name": _translate("Results", "Name"), "name": _translate("Results", "Name"),
"kp": _translate("Results", "KP (m)"), "kp": _translate("Results", "KP (m)"),
} }
self._sub_dict["table_headers_raw_data"] = {
"name": _translate("Results", "Profile"),
"water_elevation": _translate("Results", "Water elevation (m)"),
"discharge": _translate("Results", "Discharge (m³/s)"),
}
...@@ -57,81 +57,6 @@ ...@@ -57,81 +57,6 @@
</widget> </widget>
<widget class="QWidget" name="layoutWidget"> <widget class="QWidget" name="layoutWidget">
<layout class="QGridLayout" name="gridLayout_2"> <layout class="QGridLayout" name="gridLayout_2">
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Geometry</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QSplitter" name="splitter_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"/>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_2">
<layout class="QVBoxLayout" name="verticalLayout_2"/>
</widget>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_3">
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Hydrograph</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_hydrograph"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_3">
<property name="enabled">
<bool>true</bool>
</property>
<attribute name="title">
<string>Sediment</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QSplitter" name="splitter_5">
<property name="enabled">
<bool>true</bool>
</property>
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QWidget" name="verticalLayoutWidget_4">
<layout class="QVBoxLayout" name="verticalLayout_sed_reach"/>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_5">
<layout class="QVBoxLayout" name="verticalLayout_sed_profile"/>
</widget>
</widget>
</item>
</layout>
</widget>
</widget>
</item>
<item row="1" column="0"> <item row="1" column="0">
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
<item> <item>
...@@ -217,6 +142,65 @@ ...@@ -217,6 +142,65 @@
</item> </item>
</layout> </layout>
</item> </item>
<item row="0" column="0">
<widget class="QTabWidget" name="tabWidget">
<property name="currentIndex">
<number>1</number>
</property>
<widget class="QWidget" name="tab_4">
<attribute name="title">
<string>Raw data</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_5">
<item row="0" column="0">
<widget class="QTableView" name="tableView_raw_data"/>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab">
<attribute name="title">
<string>Water elevation</string>
</attribute>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QSplitter" name="splitter_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<widget class="QSplitter" name="splitter">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QWidget" name="verticalLayoutWidget">
<layout class="QVBoxLayout" name="verticalLayout"/>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_2">
<layout class="QVBoxLayout" name="verticalLayout_2"/>
</widget>
</widget>
<widget class="QWidget" name="verticalLayoutWidget_3">
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<widget class="QWidget" name="tab_2">
<attribute name="title">
<string>Hydrograph</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="0">
<layout class="QVBoxLayout" name="verticalLayout_hydrograph"/>
</item>
</layout>
</widget>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</widget> </widget>
...@@ -235,6 +219,9 @@ ...@@ -235,6 +219,9 @@
</widget> </widget>
<widget class="QStatusBar" name="statusbar"/> <widget class="QStatusBar" name="statusbar"/>
<widget class="QToolBar" name="toolBar"> <widget class="QToolBar" name="toolBar">
<property name="enabled">
<bool>true</bool>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>toolBar</string> <string>toolBar</string>
</property> </property>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment