import sys from PyQt5.QtGui import QIcon, QPixmap from PyQt5.QtWidgets import (QWidget, QLabel, QHBoxLayout, QVBoxLayout, QApplication, QMainWindow, QGridLayout, QDialog, QDialogButtonBox, QPushButton, QTextEdit, QFrame, QTabWidget, QScrollArea) from PyQt5.QtCore import Qt import numpy as np import matplotlib.pyplot as plt from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolBar from matplotlib.colors import LogNorm, BoundaryNorm import datetime import settings as stg from Translation.constant_string import HORIZONTAL from settings import depth_cross_section class PlotNoiseWindow(QDialog): def __init__(self, parent=None): super(PlotNoiseWindow, self).__init__(parent) self.setGeometry(400, 200, 700, 500) self.setWindowTitle("Noise field") self.verticalLayout_Main = QVBoxLayout() self.setLayout(self.verticalLayout_Main) self.tab = QTabWidget() self.verticalLayout_Main.addWidget(self.tab) for i in range(len(stg.filename_BS_raw_data)): exec("self.tab" + str(i) + "= QWidget()") exec("self.tab.addTab(self.tab" + str(i) + ", stg.filename_BS_raw_data[" + str(i) + "])") exec("self.verticalLayout_tab" + str(i) + "= QVBoxLayout()") exec("self.tab" + str(i) + ".setLayout(self.verticalLayout_tab" + str(i) + ")") exec("self.fig" + str(i) + ", self.ax" + str(i) + "= plt.subplots(nrows=stg.freq[" + str(i) + "].shape[0], ncols=1, layout='constrained')") if stg.BS_noise_raw_data[i].shape != (0,): for freq_ind, freq_val in enumerate(stg.freq[i]): val_min = np.nanmin(stg.BS_noise_raw_data[i][freq_ind, :, :]) val_max = np.nanmax(stg.BS_noise_raw_data[i][freq_ind, :, :]) print("val_min = ", val_min, "val_max = ", val_max) if val_min == val_max: exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + "stg.time[" + str(i) + "][" + str(freq_ind) + ", :]," + "-stg.depth[" + str(i) + "][" + str(freq_ind) + ", :]," + "stg.BS_noise_raw_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + "cmap='hsv')") else: val_min = 0 val_max = 1e-5 exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + "stg.time_noise[" + str(i) + "][" + str(freq_ind) + ", :]," + "-stg.depth_noise[" + str(i) + "][" + str(freq_ind) + ", :]," + "stg.BS_noise_raw_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + "cmap='hsv')") # , norm = LogNorm(vmin=val_min, vmax=val_max) # if stg.time_cross_section[i].shape != (0,): # # if depth_cross_section[i].shape != (0,): # if val_min == val_max: # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_raw_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis')" ) # else: # val_min = 0 # val_max = 1e-5 # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_raw_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis', norm=LogNorm(vmin=val_min, vmax=val_max))") # else: # if val_min == val_max: # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_raw_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis')" ) # else: # val_min = 0 # val_max = 1e-5 # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_averaged_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis', norm=LogNorm(vmin=val_min, vmax=val_max))") # # else: # # if depth_cross_section[i].shape != (0,): # if val_min == val_max: # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_averaged_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis')" ) # else: # val_min = 0 # val_max = 1e-5 # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth_cross_section[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_averaged_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis', norm=LogNorm(vmin=val_min, vmax=val_max))") # else: # if val_min == val_max: # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_averaged_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis')" ) # else: # val_min = 0 # val_max = 1e-5 # exec("pcm = self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".pcolormesh(" + # "stg.time[" + str(i) + "][" + str(freq_ind) + ", :]," + # "-stg.depth[" + str(i) + "][" + str(freq_ind) + ", :]," + # "stg.BS_noise_averaged_data[" + str(i) + "][" + str(freq_ind) + ", :, :]," + # "cmap='viridis')") # # , norm = LogNorm(vmin=val_min, vmax=val_max) eval("self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".text(1, .70, stg.freq_text[" + str(i) + "][" + str(freq_ind) + "]," + "fontsize=10, fontweight='bold', fontname='Ubuntu', c='black', alpha=0.5," + "horizontalalignment='right', verticalalignment='bottom'," + "transform=self.ax" + str(i) + "[" + str(freq_ind) + "].transAxes)") exec("self.fig" + str(i) + ".supxlabel('Time (sec)', fontsize=10)") exec("self.fig" + str(i) + ".supylabel('Depth (m)', fontsize=10)") exec("cbar = self.fig" + str(i) + ".colorbar(pcm, ax=self.ax" + str(i) + "[:] ," + "shrink=1, location='right')") eval("cbar.set_label(label='Noise signal (V)', rotation=270, labelpad=8)") exec("self.fig" + str(i) + ".canvas.draw_idle()") else: pass # self.axis_noise.tick_params(axis='both', which='minor', labelsize=10) exec("self.canvas" + str(i) + "= FigureCanvas(self.fig" + str(i) + ")") exec("self.toolbar" + str(i) + "= NavigationToolBar(self.canvas" + str(i) + ", self)") exec("self.scroll" + str(i) + "= QScrollArea()") exec("self.scroll" + str(i) + ".setWidget(self.canvas" + str(i) + ")") exec("self.verticalLayout_tab" + str(i) + ".addWidget(self.toolbar" + str(i) + ")") exec("self.verticalLayout_tab" + str(i) + ".addWidget(self.scroll" + str(i) + ")") # self.tab1 = QWidget() # self.tab.addTab(self.tab1, "Tab 1") # ----------------------------------------------------------