143 lines
7.5 KiB
Python
143 lines
7.5 KiB
Python
import sys
|
|
|
|
from PyQt5.QtWidgets import QWidget, QMainWindow, QApplication, QVBoxLayout, QHBoxLayout, QGroupBox
|
|
from PyQt5.QtCore import QCoreApplication
|
|
|
|
import numpy as np
|
|
import matplotlib.pyplot as plt
|
|
|
|
from matplotlib.colors import LogNorm, BoundaryNorm, CSS4_COLORS
|
|
from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas
|
|
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolBar
|
|
|
|
|
|
import Translation.constant_string as cs
|
|
|
|
_translate = QCoreApplication.translate
|
|
|
|
|
|
class AcousticInversionTab(QWidget):
|
|
|
|
''' This class generates the Acoustic Inversion Tab '''
|
|
|
|
def __init__(self, widget_tab):
|
|
super().__init__()
|
|
|
|
#
|
|
# self.verticalLayout_acoustic_inversion_tab = QVBoxLayout(widget_tab)
|
|
#
|
|
# self.horizontalLayout_Top_acousticInversionTab = QHBoxLayout()
|
|
#
|
|
# self.groupbox_AcousticInversionOption = QGroupBox()
|
|
# # self.groupbox_AcousticInversionOption.setTitle("Acoustic inversion option")
|
|
#
|
|
# self.horizontalLayout_Top_acousticInversionTab.addWidget(self.groupbox_AcousticInversionOption)
|
|
#
|
|
# self.verticalLayout_acoustic_inversion_tab.addLayout(self.horizontalLayout_Top_acousticInversionTab, 4)
|
|
#
|
|
# self.horizontalLayout_Bottom_acousticInversionTab = QHBoxLayout()
|
|
#
|
|
# self.groupbox_sediment_concentration_2Dplot = QGroupBox()
|
|
# # self.groupbox_sediment_concentration_2Dplot.setTitle("Fine and sand sediment concentration")
|
|
#
|
|
# self.verticalLayout_groupbox_sediment_concentration_2Dplot = QVBoxLayout(self.groupbox_sediment_concentration_2Dplot)
|
|
#
|
|
# self.figure_SSC_2Dplot, self.axis_SSC_2Dplot = plt.subplots(nrows=2, ncols=1)
|
|
# self.canvas_sediments2DPlot = FigureCanvas(self.figure_SSC_2Dplot)
|
|
# self.toolbar_concentration_2Dplot = NavigationToolBar(self.canvas_sediments2DPlot, self)
|
|
# self.plot_SSC_fine()
|
|
# self.plot_SSC_sand()
|
|
# # self.verticalLayout_groupbox_sediment_concentration_2Dplot.addWidget(self.toolbar_concentration_2Dplot)
|
|
# self.verticalLayout_groupbox_sediment_concentration_2Dplot.addWidget(self.canvas_sediments2DPlot)
|
|
#
|
|
# # self.horizontalLayout_Bottom_acousticInversionTab.addWidget(self.canvas_sediments2DPlot)
|
|
# self.horizontalLayout_Bottom_acousticInversionTab.addWidget(self.groupbox_sediment_concentration_2Dplot, 7)
|
|
#
|
|
# self.groupbox_sediment_concentration_sample_vs_measurement = QGroupBox()
|
|
# # self.groupbox_sediment_concentration_sample_vs_measurement.setTitle(
|
|
# # "Suspended sediment concentration plot : acoustic inversion theory VS measurements")
|
|
#
|
|
# self.verticalLayout_groupbox_sediment_concentration_sample_vs_measurement = QVBoxLayout(
|
|
# self.groupbox_sediment_concentration_sample_vs_measurement)
|
|
#
|
|
# self.figure_inverseSSC_vs_measuredSSC, self.axis_inverseSSC_vs_measuredSSC = plt.subplots(nrows=1, ncols=1)
|
|
# self.canvas_InverseSSC_vs_MeasuredSSC = FigureCanvas(self.figure_inverseSSC_vs_measuredSSC)
|
|
# self.toolbar_InverseSSC_vs_MeasuredSSC = NavigationToolBar(self.canvas_InverseSSC_vs_MeasuredSSC, self)
|
|
# # self.verticalLayout_groupbox_sediment_concentration_sample_vs_measurement.addWidget(
|
|
# # self.toolbar_InverseSSC_vs_MeasuredSSC)
|
|
# self.verticalLayout_groupbox_sediment_concentration_sample_vs_measurement.addWidget(
|
|
# self.canvas_InverseSSC_vs_MeasuredSSC, 3)
|
|
# # self.horizontalLayout_Bottom_acousticInversionTab.addWidget(self.canvas_InverseSSC_vs_MeasuredSSC)
|
|
#
|
|
# self.horizontalLayout_Bottom_acousticInversionTab.addWidget(
|
|
# self.groupbox_sediment_concentration_sample_vs_measurement)
|
|
#
|
|
# self.verticalLayout_acoustic_inversion_tab.addLayout(self.horizontalLayout_Bottom_acousticInversionTab, 6)
|
|
#
|
|
# self.retranslate_acoustic_inversion_tab()
|
|
#
|
|
# # ---------------------------------------------------------------------------------------------
|
|
# # -------------------- Functions --------------------
|
|
# # ---------------------------------------------------------------------------------------------
|
|
#
|
|
# def retranslate_acoustic_inversion_tab(self):
|
|
#
|
|
# self.groupbox_AcousticInversionOption.setTitle(_translate("CONSTANT_STRING", cs.ACOUSTIC_INVERSION_OPTIONS))
|
|
# self.groupbox_sediment_concentration_2Dplot.setTitle(_translate("CONSTANT_STRING", cs.FINE_AND_SAND_SEDIMENTS_CONCENTRATION_2D_FIELD))
|
|
# self.groupbox_sediment_concentration_sample_vs_measurement.setTitle(_translate("CONSTANT_STRING", cs.SUSPENDED_SEDIMENT_CONCENTRATION_PLOT))
|
|
#
|
|
# def plot_SSC_fine(self):
|
|
# frequency = 0
|
|
# val_min = 1e-2 #np.nanmin(self.model.SSC_fine[:, :]) #
|
|
# val_max = 15 #np.nanmax(self.model.SSC_fine[:, :]) #
|
|
# # print('val_min=', val_min)
|
|
# # print('val_max=', val_max)
|
|
# # if val_min == 0:
|
|
# # val_min = 0.5
|
|
# # print('val_min update =', val_min)
|
|
# pcm_SSC_fine = self.axis_SSC_2Dplot[0].pcolormesh(self.model.dist_BS_section, np.flipud(self.model.BS_averaged_cross_section.r),
|
|
# self.model.SSC_fine[:, :],
|
|
# cmap='rainbow', norm=LogNorm(vmin=val_min, vmax=val_max), shading='gouraud')
|
|
# self.axis_SSC_2Dplot[0].plot(self.model.dist_BS_section,
|
|
# np.max(self.model.r_bottom_cross_section) - self.model.r_bottom_cross_section
|
|
# + np.min(self.model.r_bottom_cross_section),
|
|
# color='k', linewidth=2)
|
|
# self.figure_SSC_2Dplot.supxlabel("Distance from left bank (m)", fontsize=10)
|
|
# self.figure_SSC_2Dplot.supylabel("Depth (m)", fontsize=10)
|
|
# self.figure_SSC_2Dplot.tight_layout()
|
|
#
|
|
# cbar_SSC_fine = self.figure_SSC_2Dplot.colorbar(pcm_SSC_fine, ax=self.axis_SSC_2Dplot[0], shrink=1, location='right')
|
|
# cbar_SSC_fine.set_label(label='Fine SSC (g/L', rotation=270, labelpad=15)
|
|
#
|
|
# def plot_SSC_sand(self):
|
|
# frequency = 0
|
|
# val_min = 1e-2 #np.nanmin(self.model.SSC_fine[:, :]) #
|
|
# val_max = 2 #np.nanmax(self.model.SSC_fine[:, :]) #
|
|
# # print('val_min=', val_min)
|
|
# # print('val_max=', val_max)
|
|
# # if val_min == 0:
|
|
# # val_min = 0.5
|
|
# # print('val_min update =', val_min)
|
|
# pcm_SSC_sand = self.axis_SSC_2Dplot[1].pcolormesh(self.model.dist_BS_section, np.flipud(self.model.BS_averaged_cross_section.r),
|
|
# self.model.SSC_sand[:, :],
|
|
# cmap='rainbow', norm=LogNorm(vmin=val_min, vmax=val_max), shading='gouraud')
|
|
# self.axis_SSC_2Dplot[1].plot(self.model.dist_BS_section,
|
|
# np.max(self.model.r_bottom_cross_section) - self.model.r_bottom_cross_section
|
|
# + np.min(self.model.r_bottom_cross_section),
|
|
# color='k', linewidth=2)
|
|
# self.figure_SSC_2Dplot.supxlabel("Distance from left bank (m)", fontsize=10)
|
|
# self.figure_SSC_2Dplot.supylabel("Depth (m)", fontsize=10)
|
|
# self.figure_SSC_2Dplot.tight_layout()
|
|
#
|
|
# cbar_SSC_sand = self.figure_SSC_2Dplot.colorbar(pcm_SSC_sand, ax=self.axis_SSC_2Dplot[1], shrink=1, location='right')
|
|
# cbar_SSC_sand.set_label(label='Sand SSC (g/L', rotation=270, labelpad=15)
|
|
#
|
|
# # if __name__ == "__main__":
|
|
# # app = QApplication(sys.argv)
|
|
# # print("class acoustic inversion tab :", AcousticInversionTab())
|
|
# # sys.exit(app.exec_())
|
|
#
|
|
#
|
|
|
|
|