acoused/View/plot_noise_window.py

181 lines
10 KiB
Python

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]):
eval("self.ax" + str(i) + "[" + str(freq_ind) + "]" + ".cla()")
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")
# ----------------------------------------------------------