Compare commits

..

No commits in common. "11ced0a263ca657902256000c9236adc90046d21" and "571ac20d37fb441431f222589aa267bda8a6d696" have entirely different histories.

11 changed files with 299 additions and 436 deletions

View File

@ -31,13 +31,13 @@ class AboutWindow(QDialog):
super().__init__() super().__init__()
self.logo_path = "./logos" self.logo_path = "./Logo"
self.logo_AcouSed = QPixmap(self.logo_path + "/" + "AcouSed.png") self.logo_AcouSed = QPixmap(self.logo_path + "/" + "Logo_AcouSed_AboutAcouSedWindow.png")
self.logo_AcouSed.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation) self.logo_AcouSed.scaled(16, 16, Qt.KeepAspectRatio, Qt.SmoothTransformation)
self.logo_INRAE = QPixmap(self.logo_path + "/" + "BlocMarque-INRAE-Inter.jpg") self.logo_INRAE = QPixmap(self.logo_path + "/" + "BlocMarque-INRAE-Inter.jpg")
self.setGeometry(400, 200, 350, 200) self.setGeometry(400, 200, 300, 200)
self.setWindowTitle("About AcouSed") self.setWindowTitle("About AcouSed")
@ -51,7 +51,7 @@ class AboutWindow(QDialog):
self.label_logo_AcouSed = QLabel() self.label_logo_AcouSed = QLabel()
self.label_logo_AcouSed.setPixmap(self.logo_AcouSed.scaledToHeight(128, Qt.SmoothTransformation)) self.label_logo_AcouSed.setPixmap(self.logo_AcouSed.scaledToHeight(128, Qt.SmoothTransformation))
self.gridLayout.addWidget(self.label_logo_AcouSed, 0, 0, 5, 1, Qt.AlignCenter) self.gridLayout.addWidget(self.label_logo_AcouSed, 0, 0, 3, 1, Qt.AlignCenter)
self.label_acoused = QLabel() self.label_acoused = QLabel()
self.label_acoused.setText("Acoused 2.0") self.label_acoused.setText("Acoused 2.0")
@ -70,13 +70,7 @@ class AboutWindow(QDialog):
self.label_contact = QLabel() self.label_contact = QLabel()
self.label_contact.setText("Contact : celine.berni@inrae.fr \n" self.label_contact.setText("Contact : celine.berni@inrae.fr \n"
" jerome.lecoz@inrae.fr") " jerome.lecoz@inrae.fr")
self.gridLayout.addWidget(self.label_contact, 3, 1, 1, 1, Qt.AlignCenter) self.gridLayout.addWidget(self.label_contact, 3, 1, 1, 1, Qt.AlignLeft)
self.label_link = QLabel()
self.label_link.setText("< a href = https://forgemia.inra.fr/theophile.terraz/acoused > "
"https://forgemia.inra.fr/theophile.terraz/acoused </a>")
self.label_link.setOpenExternalLinks(True)
self.gridLayout.addWidget(self.label_link, 4, 1, 1, 1, Qt.AlignCenter)
# ---------------------------------------------------------- # ----------------------------------------------------------
@ -185,7 +179,7 @@ class Support(QDialog):
super().__init__() super().__init__()
self.logo_path = "./logos" self.logo_path = "./Logo"
self.logo_OSR = QPixmap(self.logo_path + '/' + "OSR.png") self.logo_OSR = QPixmap(self.logo_path + '/' + "OSR.png")
self.logo_CNR = QPixmap(self.logo_path + '/' + "CNR.png") self.logo_CNR = QPixmap(self.logo_path + '/' + "CNR.png")

View File

@ -626,19 +626,17 @@ class AcousticDataTab(QWidget):
self.delBtn.clicked.connect(self.remove_file_from_ListWidget) self.delBtn.clicked.connect(self.remove_file_from_ListWidget)
self.clearBtn.clicked.connect(self.clear_files_from_ListWidget) self.clearBtn.clicked.connect(self.clear_files_from_ListWidget)
self.fileListWidget.itemSelectionChanged.connect(self.fileListWidget_event) self.fileListWidget.itemSelectionChanged.connect(self.print_selected_file)
self.fileListWidget.itemSelectionChanged.connect(self.fill_measurements_information_groupbox)
# self.fileListWidget.itemSelectionChanged.connect(self.print_selected_file) self.fileListWidget.itemSelectionChanged.connect(self.fill_table)
# self.fileListWidget.itemSelectionChanged.connect(self.fill_measurements_information_groupbox) self.fileListWidget.itemSelectionChanged.connect(self.compute_tmin_tmax)
# self.fileListWidget.itemSelectionChanged.connect(self.fill_table) self.fileListWidget.itemSelectionChanged.connect(self.compute_rmin_rmax)
# self.fileListWidget.itemSelectionChanged.connect(self.compute_tmin_tmax) self.fileListWidget.itemSelectionChanged.connect(self.update_frequency_combobox)
# self.fileListWidget.itemSelectionChanged.connect(self.compute_rmin_rmax) # self.fileListWidget.itemSelectionChanged.connect(self.plot_backscattered_acoustic_signal_recording)
# self.fileListWidget.itemSelectionChanged.connect(self.update_frequency_combobox) self.fileListWidget.itemSelectionChanged.connect(self.plot_profile)
# # self.fileListWidget.itemSelectionChanged.connect(self.plot_backscattered_acoustic_signal_recording) self.fileListWidget.itemSelectionChanged.connect(self.update_plot_backscattered_acoustic_signal_recording)
# # self.fileListWidget.itemSelectionChanged.connect(self.plot_profile) self.fileListWidget.itemSelectionChanged.connect(self.update_plot_profile)
# self.fileListWidget.itemSelectionChanged.connect(self.update_plot_backscattered_acoustic_signal_recording) self.fileListWidget.itemSelectionChanged.connect(self.set_range_for_spinboxes_bathymetry)
# self.fileListWidget.itemSelectionChanged.connect(self.update_plot_profile)
# self.fileListWidget.itemSelectionChanged.connect(self.set_range_for_spinboxes_bathymetry)
self.combobox_ABS_name.currentIndexChanged.connect(self.fill_measurements_information_groupbox) self.combobox_ABS_name.currentIndexChanged.connect(self.fill_measurements_information_groupbox)
@ -746,20 +744,6 @@ class AcousticDataTab(QWidget):
self.groupbox_transect_2Dplot_raw_BS_data.setTitle(_translate("CONSTANT_STRING", cs.RAW_ACOUSTIC_DATA_2D_FIELD)) self.groupbox_transect_2Dplot_raw_BS_data.setTitle(_translate("CONSTANT_STRING", cs.RAW_ACOUSTIC_DATA_2D_FIELD))
def fileListWidget_event(self):
self.print_selected_file()
self.fill_measurements_information_groupbox()
self.fill_table()
self.compute_tmin_tmax()
self.compute_rmin_rmax()
self.update_frequency_combobox()
# self.fileListWidget.itemSelectionChanged.connect(self.plot_backscattered_acoustic_signal_recording)
# self.fileListWidget.itemSelectionChanged.connect(self.plot_profile)
self.update_plot_backscattered_acoustic_signal_recording()
self.update_plot_profile()
self.set_range_for_spinboxes_bathymetry()
def print_selected_file(self): def print_selected_file(self):
print(f"Selected file in list widget : {self.fileListWidget.selectedItems()}") print(f"Selected file in list widget : {self.fileListWidget.selectedItems()}")
print("self.fileListWidget.selectedItems()[1:] : ", self.fileListWidget.selectedItems()[1:]) print("self.fileListWidget.selectedItems()[1:] : ", self.fileListWidget.selectedItems()[1:])
@ -1343,12 +1327,8 @@ class AcousticDataTab(QWidget):
self.fill_measurements_information_groupbox() self.fill_measurements_information_groupbox()
self.fill_table() self.fill_table()
self.plot_backscattered_acoustic_signal_recording() self.plot_backscattered_acoustic_signal_recording()
self.plot_profile()
self.update_frequency_combobox() self.update_frequency_combobox()
self.water_attenuation() self.water_attenuation()
self.compute_tmin_tmax()
self.compute_rmin_rmax()
self.set_range_for_spinboxes_bathymetry()
stg.acoustic_data = list( stg.acoustic_data = list(
range( range(
@ -1381,39 +1361,26 @@ class AcousticDataTab(QWidget):
del current_item del current_item
# --- Clear variables --- # --- Clear variables ---
list_to_pop1 = [ list_to_pop1 = ["stg.acoustic_data", "stg.date", "stg.hour", "stg.freq", "stg.freq_text", "stg.temperature",
"stg.acoustic_data", "stg.date", "stg.hour", "stg.nb_profiles", "stg.nb_profiles_per_sec", "stg.nb_cells", "stg.cell_size",
"stg.freq", "stg.freq_text", "stg.pulse_length", "stg.nb_pings_per_sec", "stg.nb_pings_averaged_per_profile",
"stg.nb_profiles", "stg.nb_profiles_per_sec",
"stg.nb_cells", "stg.cell_size",
"stg.pulse_length", "stg.nb_pings_per_sec",
"stg.nb_pings_averaged_per_profile",
"stg.kt_read", "stg.kt_corrected", "stg.gain_rx", "stg.gain_tx", "stg.kt_read", "stg.kt_corrected", "stg.gain_rx", "stg.gain_tx",
"stg.filename_BS_raw_data", "stg.path_BS_raw_data", "stg.filename_BS_raw_data", "stg.path_BS_raw_data",
"stg.BS_raw_data", "stg.time", "stg.depth", "stg.BS_raw_data", "stg.time", "stg.depth",
"stg.BS_raw_data_reshape", "stg.time_reshape", "stg.depth_reshape" "stg.BS_raw_data_reshape", "stg.time_reshape", "stg.depth_reshape"]
]
for p in list_to_pop1: for p in list_to_pop1:
if isinstance(eval(p), list): if isinstance(p, list):
exec(p + ".pop(current_row)") exec(p + ".pop(current_row)")
if stg.BS_cross_section: if stg.BS_cross_section:
list_to_pop2 = ["stg.rmin", "stg.rmax", "stg.tmin", "stg.tmax", list_to_pop2 = ["stg.rmin", "stg.rmax", "stg.tmin", "stg.tmax",
"stg.time_cross_section", "stg.depth_cross_section", "stg.BS_cross_section"] "stg.time_cross_section", "stg.BS_cross_section"]
for k in list_to_pop2: for k in list_to_pop2:
exec(k + ".pop(current_row)") exec(k + ".pop(current_row)")
if stg.BS_stream_bed:
list_to_pop3 = ["stg.BS_stream_bed", "stg.depth_bottom",
"stg.val_bottom", "stg.ind_bottom", "stg.freq_bottom_detection"]
for s in list_to_pop3:
exec(s + ".pop(current_row)")
if self.fileListWidget.count() == 0: if self.fileListWidget.count() == 0:
# --- Clear measurements information --- # --- Clear measurements information ---
@ -1492,26 +1459,24 @@ class AcousticDataTab(QWidget):
list_to_clear = [ list_to_clear = [
"stg.acoustic_data", "stg.date", "stg.hour", "stg.acoustic_data", "stg.date", "stg.hour",
"stg.freq", "stg.freq_text", "stg.freq", "stg.freq_text", "stg.temperature",
"stg.nb_profiles", "stg.nb_profiles_per_sec", "stg.nb_profiles", "stg.nb_profiles_per_sec",
"stg.nb_cells", "stg.cell_size", "stg.nb_cells", "stg.cell_size",
"stg.pulse_length", "stg.nb_pings_per_sec", "stg.pulse_length", "stg.nb_pings_per_sec",
"stg.nb_pings_averaged_per_profile", "stg.nb_pings_averaged_per_profile",
"stg.kt_read", "stg.kt_corrected", "stg.gain_rx", "stg.gain_tx", "stg.kt_read", "stg.kt_corrected", "stg.gain_rx", "stg.gain_tx",
"stg.filename_BS_raw_data", "stg.path_BS_raw_data",
"stg.BS_raw_data", "stg.time", "stg.depth", "stg.BS_raw_data", "stg.time", "stg.depth",
"stg.BS_raw_data_reshape", "stg.time_reshape", "stg.depth_reshape", "stg.BS_raw_data_reshape", "stg.time_reshape", "stg.depth_reshape",
"stg.rmin", "stg.rmax", "stg.tmin", "stg.tmax", "stg.rmin", "stg.rmax", "stg.tmin", "stg.tmax",
"stg.time_cross_section", "stg.depth_cross_section", "stg.time_cross_section", "stg.depth_cross_section",
"stg.BS_cross_section", "stg.BS_stream_bed" "stg.BS_cross_section"
] ]
for k in list_to_clear: for k in list_to_clear:
if isinstance(eval(k), list): if isinstance(k, list):
exec(k + ".clear()") exec(k + ".clear()")
self.fileListWidget.clear() self.fileListWidget.clear()
# self.fileListWidget.takeItem(0)
if self.fileListWidget.count() == 0: if self.fileListWidget.count() == 0:
# --- Clear measurmeents information --- # --- Clear measurmeents information ---
@ -1718,13 +1683,9 @@ class AcousticDataTab(QWidget):
self.fill_measurements_information_groupbox_kt() self.fill_measurements_information_groupbox_kt()
def fill_measurements_information_groupbox_datetime(self): def fill_measurements_information_groupbox_datetime(self):
file_id = self.fileListWidget.currentRow()
print("file_id ", file_id)
print("stg.date ", stg.date)
self.label_date_acoustic_file.clear() self.label_date_acoustic_file.clear()
self.label_date_acoustic_file.setText( self.label_date_acoustic_file.setText(
"Date: " + str(stg.date[file_id]) "Date: " + str(stg.date[self.fileListWidget.currentRow()])
) )
self.gridLayout_groupbox_info.addWidget( self.gridLayout_groupbox_info.addWidget(
self.label_date_acoustic_file, self.label_date_acoustic_file,
@ -1734,7 +1695,7 @@ class AcousticDataTab(QWidget):
self.label_hour_acoustic_file.clear() self.label_hour_acoustic_file.clear()
self.label_hour_acoustic_file.setText( self.label_hour_acoustic_file.setText(
"Hour: " + str(stg.hour[file_id]) "Hour: " + str(stg.hour[self.fileListWidget.currentRow()])
) )
self.gridLayout_groupbox_info.addWidget( self.gridLayout_groupbox_info.addWidget(
self.label_hour_acoustic_file, self.label_hour_acoustic_file,
@ -2051,8 +2012,7 @@ class AcousticDataTab(QWidget):
) )
def fill_table(self): def fill_table(self):
# if self.fileListWidget.currentRow() != -1: if self.fileListWidget.currentRow() != -1:
if self.fileListWidget.selectedItems() != []:
file_id = self.fileListWidget.currentRow() file_id = self.fileListWidget.currentRow()
header_list = [] header_list = []

View File

@ -39,7 +39,6 @@ from View.about_window import AboutWindow
import settings as stg import settings as stg
import numpy as np import numpy as np
import pandas as pd
from subprocess import Popen from subprocess import Popen
import time import time
@ -326,21 +325,23 @@ class Ui_MainWindow(object):
self.open_doc_file('Tutorial_AQUAscat_software.pdf') self.open_doc_file('Tutorial_AQUAscat_software.pdf')
def export_table_of_acoustic_BS_values_to_excel_or_libreOfficeCalc_file(self): def export_table_of_acoustic_BS_values_to_excel_or_libreOfficeCalc_file(self):
if len(stg.BS_raw_data_reshape) != 0: if len(stg.BS_raw_data_reshape) != 0:
name = QtWidgets.QFileDialog.getExistingDirectory(
caption="Select Directory - Acoustic BS raw data Table" # --- Open file dialog to select the directory ---
)
name = QtWidgets.QFileDialog.getExistingDirectory(caption="Select Directory - Acoustic BS raw data Table")
print("name table to save ", name) print("name table to save ", name)
# --- Save the raw acoustic backscatter data from a # --- Save the raw acoustic backscatter data from a Dataframe to csv file ---
# --- Dataframe to csv file ---
t0 = time.time() t0 = time.time()
print("len(stg.BS_raw_data_reshape) ", print("len(stg.BS_raw_data_reshape) ", len(stg.BS_raw_data_reshape))
len(stg.BS_raw_data_reshape))
if name: if name:
for i in range(len(stg.BS_raw_data_reshape)): for i in range(len(stg.BS_raw_data_reshape)):
header_list = [] header_list = []
header_list.clear() header_list.clear()
table_data = np.array([[]]) table_data = np.array([[]])
@ -350,42 +351,27 @@ class Ui_MainWindow(object):
header_list.append("BS - " + freq_value) header_list.append("BS - " + freq_value)
if freq_ind == 0: if freq_ind == 0:
table_data = np.vstack( table_data = np.vstack((np.vstack((stg.time_reshape[i][:, freq_ind],
(
np.vstack(
(stg.time_reshape[i][:, freq_ind],
stg.depth_reshape[i][:, freq_ind])), stg.depth_reshape[i][:, freq_ind])),
stg.BS_raw_data_reshape[i][:, freq_ind] stg.BS_raw_data_reshape[i][:, freq_ind]))
)
)
else: else:
table_data = np.vstack( table_data = np.vstack((table_data,
( np.vstack((np.vstack(
table_data, (stg.time_reshape[i][:, freq_ind],
np.vstack(( stg.depth_reshape[i][:, freq_ind])),
np.vstack(( stg.BS_raw_data_reshape[i][:, freq_ind]))
stg.time_reshape[i][:, freq_ind],
stg.depth_reshape[i][:, freq_ind]
)),
stg.BS_raw_data_reshape[i][:, freq_ind]
)) ))
)
)
DataFrame_acoustic = pd.DataFrame(None) exec("DataFrame_acoustic_" + str(i) + "= pd.DataFrame(None)")
DataFrame_acoustic = pd.DataFrame( exec("DataFrame_acoustic_" + str(i) + "= pd.DataFrame(data=table_data.transpose(), columns=header_list)")
data=table_data.transpose(), columns=header_list
)
DataFrame_acoustic.to_csv( exec("DataFrame_acoustic_" + str(i) + ".to_csv(" +
path_or_buf=os.path.join( "path_or_buf=" +
name, "'" + name + "/" + "Table_" +
f"Table_{str(stg.filename_BS_raw_data[i][:-4])}.csv" str(stg.filename_BS_raw_data[i][:-4]) + ".csv'" + ", " +
), "sep=" + "',' " + ", " +
header=DataFrame_acoustic.columns, "header=DataFrame_acoustic_" + str(i) + ".columns" + ")")
sep=',',
)
t1 = time.time() - t0 t1 = time.time() - t0
print("time duration export BS ", t1) print("time duration export BS ", t1)

View File

@ -1716,21 +1716,6 @@ class SedimentCalibrationTab(QWidget):
self.animaiton_groupbox_compute.start() self.animaiton_groupbox_compute.start()
def import_calibration_file(self): def import_calibration_file(self):
if self.combobox_acoustic_data_choice.count() == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Calibration import error")
msgBox.setIconPixmap(
QPixmap(
self._path_icon("no_approved.png")
).scaledToHeight(32, Qt.SmoothTransformation)
)
msgBox.setText("Update data before importing calibration")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
else:
filename = QFileDialog.getOpenFileName( filename = QFileDialog.getOpenFileName(
self, "Open calibration", self, "Open calibration",
[ [
@ -1799,14 +1784,26 @@ class SedimentCalibrationTab(QWidget):
) )
def read_calibration_file_and_fill_parameter(self): def read_calibration_file_and_fill_parameter(self):
if self.combobox_acoustic_data_choice.count() == 0:
if stg.filename_calibration_file == "": msgBox = QMessageBox()
msgBox.setWindowTitle("Calibration import error")
pass msgBox.setIconPixmap(
QPixmap(
self._path_icon("no_approved.png")
).scaledToHeight(32, Qt.SmoothTransformation)
)
msgBox.setText("Update data before importing calibration")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
else: else:
# --- Read calibration file --- # --- Read calibration file ---
data = pd.read_csv(os.path.join(stg.path_calibration_file, stg.filename_calibration_file), header=0, index_col=0) data = pd.read_csv(
os.path.join(
stg.path_calibration_file,
stg.filename_calibration_file
),
header=0, index_col=0
)
# --- Fill spinboxes of calibration parameter --- # --- Fill spinboxes of calibration parameter ---
self.label_temperature.clear() self.label_temperature.clear()
@ -2000,20 +1997,6 @@ class SedimentCalibrationTab(QWidget):
def function_pushbutton_compute_calibration(self): def function_pushbutton_compute_calibration(self):
if self.combobox_acoustic_data_choice.count() == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Calibration computation error")
msgBox.setIconPixmap(
QPixmap(
self._path_icon("no_approved.png")
).scaledToHeight(32, Qt.SmoothTransformation)
)
msgBox.setText("Update data before importing calibration")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
else:
self.label_temperature.clear() self.label_temperature.clear()
self.label_temperature.setText("T = " + str(stg.temperature) + " °C") self.label_temperature.setText("T = " + str(stg.temperature) + " °C")
@ -2076,11 +2059,11 @@ class SedimentCalibrationTab(QWidget):
stg.sv = [sv_freq1, sv_freq2] stg.sv = [sv_freq1, sv_freq2]
logger.debug( print(
f"sv for frequency of {stg.freq[data_id][self.combobox_freq1.currentIndex()]}" f"sv for frequency of {stg.freq[data_id][self.combobox_freq1.currentIndex()]}"
+ f" : {sv_freq1:.8f} /m \n" + f" : {sv_freq1:.8f} /m \n"
) )
logger.debug( print(
f"sv for frequency of {stg.freq[data_id][self.combobox_freq2.currentIndex()]}" f"sv for frequency of {stg.freq[data_id][self.combobox_freq2.currentIndex()]}"
+ f" : {sv_freq2:.8f} /m" + f" : {sv_freq2:.8f} /m"
) )
@ -2103,7 +2086,7 @@ class SedimentCalibrationTab(QWidget):
stg.X_exponent.clear() stg.X_exponent.clear()
stg.X_exponent.append(X_exponent) stg.X_exponent.append(X_exponent)
logger.debug(f"Exponent X = {X_exponent:.2f}\n") print(f"Exponent X = {X_exponent:.2f}\n")
self.lineEdit_X.setText(str("%.2f" % X_exponent)) self.lineEdit_X.setText(str("%.2f" % X_exponent))
@ -2154,7 +2137,6 @@ class SedimentCalibrationTab(QWidget):
] ]
for i in range(self.combobox_acoustic_data_choice.count()): for i in range(self.combobox_acoustic_data_choice.count()):
J_cross_section_freq1 = np.array([]) J_cross_section_freq1 = np.array([])
J_cross_section_freq2 = np.array([]) J_cross_section_freq2 = np.array([])
@ -2228,8 +2210,8 @@ class SedimentCalibrationTab(QWidget):
stg.alpha_s = [alpha_s_freq1, alpha_s_freq2] stg.alpha_s = [alpha_s_freq1, alpha_s_freq2]
logger.debug(f"\u03B1s for frequency of freq1 : {alpha_s_freq1:.2f} /m \n") print(f"\u03B1s for frequency of freq1 : {alpha_s_freq1:.2f} /m \n")
logger.debug(f"\u03B1s for frequency of freq2 : {alpha_s_freq2:.2f} /m") print(f"\u03B1s for frequency of freq2 : {alpha_s_freq2:.2f} /m")
self.lineEdit_alphas_freq1.clear() self.lineEdit_alphas_freq1.clear()
self.lineEdit_alphas_freq1.setText(str("%.5f" % alpha_s_freq1)) self.lineEdit_alphas_freq1.setText(str("%.5f" % alpha_s_freq1))
@ -2238,19 +2220,25 @@ class SedimentCalibrationTab(QWidget):
self.lineEdit_alphas_freq2.setText(str("%.5f" % alpha_s_freq2)) self.lineEdit_alphas_freq2.setText(str("%.5f" % alpha_s_freq2))
if (alpha_s_freq1 < 0) or (alpha_s_freq2 < 0): if (alpha_s_freq1 < 0) or (alpha_s_freq2 < 0):
msgBox = QMessageBox() msgBox = QMessageBox()
msgBox.setWindowTitle("Alpha computation error") msgBox.setWindowTitle("Alpha computation error")
msgBox.setIconPixmap(QPixmap(self._path_icon("no_approved.png")).scaledToHeight(32, Qt.SmoothTransformation)) msgBox.setIconPixmap(
QPixmap(
self._path_icon("no_approved.png")
).scaledToHeight(32, Qt.SmoothTransformation)
)
msgBox.setText("Sediment sound attenuation is negative !") msgBox.setText("Sediment sound attenuation is negative !")
msgBox.setStandardButtons(QMessageBox.Ok) msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec() msgBox.exec()
else: else:
msgBox = QMessageBox() msgBox = QMessageBox()
msgBox.setWindowTitle("Alpha computation validation") msgBox.setWindowTitle("Alpha computation validation")
msgBox.setIconPixmap(QPixmap(self._path_icon("approved.png")).scaledToHeight(32, Qt.SmoothTransformation)) msgBox.setIconPixmap(
QPixmap(
self._path_icon("approved.png")
).scaledToHeight(32, Qt.SmoothTransformation)
)
msgBox.setText("Sediment sound attenuation is positive.") msgBox.setText("Sediment sound attenuation is positive.")
msgBox.setStandardButtons(QMessageBox.Ok) msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec() msgBox.exec()
@ -2292,8 +2280,8 @@ class SedimentCalibrationTab(QWidget):
stg.zeta = [zeta_freq1, zeta_freq2] stg.zeta = [zeta_freq1, zeta_freq2]
logger.debug(f"\u03B6 for frequency of freq1 : {zeta_freq1:.3f} /m \n") print(f"\u03B6 for frequency of freq1 : {zeta_freq1:.3f} /m \n")
logger.debug(f"\u03B6 for frequency of freq2 : {zeta_freq2:.3f} /m") print(f"\u03B6 for frequency of freq2 : {zeta_freq2:.3f} /m")
self.lineEdit_zeta_freq1.clear() self.lineEdit_zeta_freq1.clear()
self.lineEdit_zeta_freq1.setText(str("%.5f" % zeta_freq1)) self.lineEdit_zeta_freq1.setText(str("%.5f" % zeta_freq1))
@ -2751,4 +2739,3 @@ class SedimentCalibrationTab(QWidget):
self.lineEdit_slider_FCB.setText( self.lineEdit_slider_FCB.setText(
str(stg.time[self.combobox_acoustic_data_choice.currentIndex()][ str(stg.time[self.combobox_acoustic_data_choice.currentIndex()][
self.combobox_frequency_FCB.currentIndex(), self.slider_FCB.value()-1])) self.combobox_frequency_FCB.currentIndex(), self.slider_FCB.value()-1]))

View File

@ -447,8 +447,8 @@ class SignalProcessingTab(QWidget):
# -------------------------------------------------------------------------------------------------------------- # --------------------------------------------------------------------------------------------------------------
self.pushbutton_update.clicked.connect(self.update_SignalPreprocessingTab) self.pushbutton_update.clicked.connect(self.update_SignalPreprocessingTab)
# self.pushbutton_update.clicked.connect(self.compute_average_profile_tail) self.pushbutton_update.clicked.connect(self.compute_average_profile_tail)
# self.pushbutton_update.clicked.connect(self.plot_averaged_profile_tail) self.pushbutton_update.clicked.connect(self.plot_averaged_profile_tail)
self.combobox_acoustic_data_choice.currentIndexChanged.connect(self.combobox_acoustic_data_choice_change_index) self.combobox_acoustic_data_choice.currentIndexChanged.connect(self.combobox_acoustic_data_choice_change_index)
@ -501,16 +501,6 @@ class SignalProcessingTab(QWidget):
- the user remove a file (in the list widget) in the first tab (Acoustic data), so that the combobox - the user remove a file (in the list widget) in the first tab (Acoustic data), so that the combobox
of data to be processed is updated, of data to be processed is updated,
- the user change the limits of one or all the records in the first tab (Acoustic data) """ - the user change the limits of one or all the records in the first tab (Acoustic data) """
if len(stg.filename_BS_raw_data) == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Compute noise from profile tail error")
msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Download acoustic data in previous tab before updating data")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
else:
self.combobox_acoustic_data_choice.clear() self.combobox_acoustic_data_choice.clear()
self.combobox_acoustic_data_choice.addItems(stg.filename_BS_raw_data) self.combobox_acoustic_data_choice.addItems(stg.filename_BS_raw_data)
@ -532,9 +522,6 @@ class SignalProcessingTab(QWidget):
self.combobox_acoustic_data_choice.currentIndexChanged.connect(self.combobox_acoustic_data_choice_change_index) self.combobox_acoustic_data_choice.currentIndexChanged.connect(self.combobox_acoustic_data_choice_change_index)
self.compute_average_profile_tail()
self.plot_averaged_profile_tail()
def activate_list_of_pre_processed_data(self): def activate_list_of_pre_processed_data(self):
for i in range(self.combobox_acoustic_data_choice.count()): for i in range(self.combobox_acoustic_data_choice.count()):
eval("self.lineEdit_list_pre_processed_data_" + str(i) + ".setDisabled(True)") eval("self.lineEdit_list_pre_processed_data_" + str(i) + ".setDisabled(True)")
@ -667,26 +654,6 @@ class SignalProcessingTab(QWidget):
# --- Plot averaged signal --- # --- Plot averaged signal ---
if len(stg.filename_BS_raw_data) == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Compute noise from profile tail error")
msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Download acoustic data in previous tab before computing noise from profile tail")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
elif self.combobox_acoustic_data_choice.count() == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Compute noise from profile tail error")
msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Refresh acoustic data before computing noise from profile tail")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
else:
if stg.BS_mean[self.combobox_acoustic_data_choice.currentIndex()].shape != (0,): if stg.BS_mean[self.combobox_acoustic_data_choice.currentIndex()].shape != (0,):
self.verticalLayout_groupbox_plot_profile_tail.removeWidget(self.canvas_profile_tail) self.verticalLayout_groupbox_plot_profile_tail.removeWidget(self.canvas_profile_tail)
@ -755,18 +722,13 @@ class SignalProcessingTab(QWidget):
def clear_noise_data(self): def clear_noise_data(self):
if len(stg.filename_BS_raw_data) == 0:
pass
else:
stg.BS_noise_raw_data[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.BS_noise_raw_data[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.BS_noise_averaged_data[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.BS_noise_averaged_data[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.SNR_raw_data[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.SNR_raw_data[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.SNR_cross_section[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.SNR_cross_section[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.SNR_stream_bed[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.SNR_stream_bed[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.time_noise[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.time_noise[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.noise_method[self.combobox_acoustic_data_choice.currentIndex()] = 0
stg.SNR_filter_value[self.combobox_acoustic_data_choice.currentIndex()] = 0 stg.SNR_filter_value[self.combobox_acoustic_data_choice.currentIndex()] = 0
stg.BS_raw_data_pre_process_SNR[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.BS_raw_data_pre_process_SNR[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
@ -777,7 +739,7 @@ class SignalProcessingTab(QWidget):
stg.BS_stream_bed_pre_process_SNR[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.BS_stream_bed_pre_process_SNR[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
stg.BS_stream_bed_pre_process_average[self.combobox_acoustic_data_choice.currentIndex()] = np.array([]) stg.BS_stream_bed_pre_process_average[self.combobox_acoustic_data_choice.currentIndex()] = np.array([])
print("stg.noise_method[self.combobox_acoustic_data_choice.currentIndex()]", stg.noise_method[self.combobox_acoustic_data_choice.currentIndex()])
if stg.noise_method[self.combobox_acoustic_data_choice.currentIndex()] == 0: if stg.noise_method[self.combobox_acoustic_data_choice.currentIndex()] == 0:
self.lineEdit_noise_file.clear() self.lineEdit_noise_file.clear()
@ -1259,19 +1221,11 @@ class SignalProcessingTab(QWidget):
def remove_point_with_snr_filter(self): def remove_point_with_snr_filter(self):
if len(stg.filename_BS_raw_data) == 0: if len(stg.BS_noise_raw_data) == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Compute noise from profile tail error")
msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Download acoustic data in previous tab before applying SNR filter")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
elif len(stg.BS_noise_raw_data) == 0:
msgBox = QMessageBox() msgBox = QMessageBox()
msgBox.setWindowTitle("SNR filter Error") msgBox.setWindowTitle("SNR filter Error")
msgBox.setIcon(QMessageBox.Warning) msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Define noise data (file or profile tail) before using SNR filter") msgBox.setText("Load Noise data from acoustic data tab before using SNR filter")
msgBox.setStandardButtons(QMessageBox.Ok) msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec() msgBox.exec()
@ -1550,24 +1504,6 @@ class SignalProcessingTab(QWidget):
def compute_averaged_BS_data(self): def compute_averaged_BS_data(self):
if len(stg.filename_BS_raw_data) == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("Compute noise from profile tail error")
msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Download acoustic data in previous tab before applying SNR filter")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
elif len(stg.BS_noise_raw_data) == 0:
msgBox = QMessageBox()
msgBox.setWindowTitle("SNR filter Error")
msgBox.setIcon(QMessageBox.Warning)
msgBox.setText("Define noise data (file or profile tail) before using SNR filter")
msgBox.setStandardButtons(QMessageBox.Ok)
msgBox.exec()
else:
kernel_avg = np.ones(2 * int(float(self.lineEdit_horizontal_average.text().replace(",", "."))) + 1) kernel_avg = np.ones(2 * int(float(self.lineEdit_horizontal_average.text().replace(",", "."))) + 1)
print(kernel_avg) print(kernel_avg)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB