Acoustic data: Refactoring.

dev-brahim
Pierre-Antoine 2025-03-12 15:51:44 +01:00
parent cb94bb3c5d
commit 5f0fb9ad53
1 changed files with 191 additions and 93 deletions

View File

@ -1811,7 +1811,6 @@ class AcousticDataTab(QWidget):
][1]
)
self.lineEdit_kt.setText(
str("%.4f" % stg.kt_corrected[freq_id])
)
@ -1835,76 +1834,124 @@ class AcousticDataTab(QWidget):
self.lineEdit_tx.returnPressed.connect(self.gain_tx_value)
def combobox_frequency_information_update(self):
if self.fileListWidget.count() > 0:
if self.fileListWidget.count() <= 0:
return
if stg.water_attenuation[self.fileListWidget.currentRow()]:
file_id = self.fileListWidget.currentRow()
freq_id = self.combobox_frequency_information.currentIndex()
self.lineEdit_sound_attenuation.setText(
str("%.6f" % stg.water_attenuation[self.fileListWidget.currentRow()][
self.combobox_frequency_information.currentIndex()]))
if stg.water_attenuation[file_id]:
self.lineEdit_sound_attenuation.setText(
str(
"%.6f"
% stg.water_attenuation[file_id][freq_id]
)
)
self.label_profiles_value.clear()
self.gridLayout_groupbox_info.removeWidget(self.label_profiles_value)
self.label_profiles_value.setText(str(stg.nb_profiles[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()]))
self.gridLayout_groupbox_info.addWidget(self.label_profiles_value, 8, 1, 1, 1, Qt.AlignLeft)
self.label_profiles_value.clear()
self.gridLayout_groupbox_info.removeWidget(
self.label_profiles_value
)
self.label_profiles_value.setText(
str(
stg.nb_profiles[file_id][freq_id]
)
)
self.gridLayout_groupbox_info.addWidget(
self.label_profiles_value,
8, 1, 1, 1, Qt.AlignLeft
)
self.label_profiles_per_sec_value.clear()
self.label_profiles_per_sec_value.setText(
str(stg.nb_profiles_per_sec[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()]) + " Hz")
self.gridLayout_groupbox_info.addWidget(self.label_profiles_per_sec_value, 9, 1, 1, 1, Qt.AlignLeft)
self.label_profiles_per_sec_value.clear()
self.label_profiles_per_sec_value.setText(
str(
stg.nb_profiles_per_sec[file_id][freq_id]
) + " Hz"
)
self.gridLayout_groupbox_info.addWidget(
self.label_profiles_per_sec_value,
9, 1, 1, 1, Qt.AlignLeft
)
self.label_cells_value.clear()
self.label_cells_value.setText(str(stg.nb_cells[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()]))
self.gridLayout_groupbox_info.addWidget(self.label_cells_value, 10, 1, 1, 1, Qt.AlignLeft)
self.label_cells_value.clear()
self.label_cells_value.setText(
str(
stg.nb_cells[file_id][freq_id]
)
)
self.gridLayout_groupbox_info.addWidget(
self.label_cells_value,
10, 1, 1, 1, Qt.AlignLeft
)
self.label_cell_size_value.clear()
self.gridLayout_groupbox_info.removeWidget(self.label_cell_size_value)
self.label_cell_size_value.setText(
str(100 * round(stg.cell_size[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()], 3)) + " cm")
self.gridLayout_groupbox_info.addWidget(self.label_cell_size_value, 11, 1, 1, 1, Qt.AlignLeft)
self.label_cell_size_value.clear()
self.gridLayout_groupbox_info.removeWidget(self.label_cell_size_value)
self.label_cell_size_value.setText(
str(
100 * round(stg.cell_size[file_id][freq_id], 3)
) + " cm"
)
self.gridLayout_groupbox_info.addWidget(
self.label_cell_size_value,
11, 1, 1, 1, Qt.AlignLeft
)
self.label_pulse_length_value.clear()
self.label_pulse_length_value.setText(
str(round(stg.pulse_length[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()], 6)) + " sec")
self.gridLayout_groupbox_info.addWidget(self.label_pulse_length_value, 12, 1, 1, 1, Qt.AlignLeft)
self.label_pulse_length_value.clear()
self.label_pulse_length_value.setText(
str(
round(stg.pulse_length[file_id][freq_id], 6)
) + " sec"
)
self.gridLayout_groupbox_info.addWidget(
self.label_pulse_length_value,
12, 1, 1, 1, Qt.AlignLeft
)
self.label_pings_per_sec_value.clear()
self.label_pings_per_sec_value.setText(str(stg.nb_pings_per_sec[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()]) + " Hz")
self.gridLayout_groupbox_info.addWidget(self.label_pings_per_sec_value, 13, 1, 1, 1, Qt.AlignLeft)
self.label_pings_per_sec_value.clear()
self.label_pings_per_sec_value.setText(
str(
stg.nb_pings_per_sec[file_id][freq_id]
) + " Hz"
)
self.gridLayout_groupbox_info.addWidget(
self.label_pings_per_sec_value,
13, 1, 1, 1, Qt.AlignLeft
)
self.label_pings_per_profile_value.clear()
self.label_pings_per_profile_value.setText(
str(stg.nb_pings_averaged_per_profile[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()]))
self.gridLayout_groupbox_info.addWidget(self.label_pings_per_profile_value, 14, 1, 1, 1, Qt.AlignLeft)
self.label_pings_per_profile_value.clear()
self.label_pings_per_profile_value.setText(
str(stg.nb_pings_averaged_per_profile[file_id][freq_id])
)
self.gridLayout_groupbox_info.addWidget(
self.label_pings_per_profile_value,
14, 1, 1, 1, Qt.AlignLeft
)
if self.checkbox_kt.isChecked():
if self.combobox_frequency_information.count() > 0:
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentIndex()]))
else:
self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[self.combobox_frequency_information.currentIndex()]))
if self.checkbox_kt.isChecked():
if self.combobox_frequency_information.count() > 0:
self.lineEdit_kt.setText(
str("%.4f" % stg.kt_corrected[freq_id])
)
else:
self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[freq_id]))
self.lineEdit_rx.setText(str(stg.gain_rx[self.fileListWidget.currentRow()][
self.combobox_frequency_information.currentIndex()]))
self.lineEdit_rx.setText(
str(stg.gain_rx[file_id][freq_id])
)
self.lineEdit_tx.setText(str(stg.gain_tx[self.fileListWidget.currentRow()][
self.combobox_frequency_information.currentIndex()]))
self.lineEdit_tx.setText(str(stg.gain_tx[file_id][freq_id]))
def activate_unactivate_spinbox_kt(self):
freq_id = self.combobox_frequency_information.currentIndex()
if self.checkbox_kt.isChecked():
self.lineEdit_kt.setEnabled(True)
if stg.kt_corrected:
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentIndex()]))
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[freq_id]))
else:
self.lineEdit_kt.setDisabled(True)
if stg.kt_read:
self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[self.combobox_frequency_information.currentIndex()]))
self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[freq_id]))
def activate_unactivate_spinbox_rx(self):
if self.checkbox_rx.isChecked():
@ -1919,33 +1966,48 @@ class AcousticDataTab(QWidget):
self.lineEdit_tx.setDisabled(True)
def kt_value(self):
if self.fileListWidget.count() <= 0:
return
if self.fileListWidget.count() > 0:
if self.checkbox_kt.isChecked():
if not self.checkbox_kt.isChecked():
return
if findall(r",", self.lineEdit_kt.text()):
stg.kt_corrected[self.combobox_frequency_information.currentIndex()] = (
float(self.lineEdit_kt.text().replace(',', '.')))
self.lineEdit_kt.setText("%.4f" % float(self.lineEdit_kt.text().replace(',', '.')))
else:
stg.kt_corrected[self.combobox_frequency_information.currentIndex()] = (
float(self.lineEdit_kt.text()))
self.lineEdit_kt.setText("%.4f" % float(self.lineEdit_kt.text()))
freq_id = self.combobox_frequency_information.currentIndex()
if findall(r",", self.lineEdit_kt.text()):
stg.kt_corrected[freq_id] = (
float(self.lineEdit_kt.text().replace(',', '.'))
)
self.lineEdit_kt.setText(
"%.4f" % float(
self.lineEdit_kt.text().replace(',', '.')
)
)
else:
stg.kt_corrected[freq_id] = (
float(self.lineEdit_kt.text())
)
self.lineEdit_kt.setText("%.4f" % float(self.lineEdit_kt.text()))
def gain_rx_value(self):
if self.fileListWidget.count() > 0:
stg.gain_rx[self.fileListWidget.currentRow()][self.combobox_frequency_information.currentIndex()] = (
float(self.lineEdit_rx.text()))
freq_id = self.combobox_frequency_information.currentIndex()
if self.fileListWidget.count() > 0:
stg.gain_rx[self.fileListWidget.currentRow()][freq_id] = (
float(self.lineEdit_rx.text())
)
def gain_tx_value(self):
freq_id = self.combobox_frequency_information.currentIndex()
if self.fileListWidget.count() > 0:
stg.gain_tx[self.fileListWidget.currentRow()][self.combobox_frequency_information.currentIndex()] = (
float(self.lineEdit_tx.text()))
stg.gain_tx[self.fileListWidget.currentRow()][freq_id] = (
float(self.lineEdit_tx.text())
)
def fill_table(self):
if self.fileListWidget.currentRow() != -1:
file_id = self.fileListWidget.currentRow()
header_list = []
header_list.clear()
@ -1956,19 +2018,37 @@ class AcousticDataTab(QWidget):
header_list.append("BS - " + freq_value)
if freq_ind == 0:
table_data = np.vstack((np.vstack((stg.time_reshape[self.fileListWidget.currentRow()][:, freq_ind],
stg.depth_reshape[self.fileListWidget.currentRow()][:, freq_ind])),
stg.BS_raw_data_reshape[self.fileListWidget.currentRow()][:, freq_ind]))
table_data = np.vstack(
(
np.vstack(
(
stg.time_reshape[file_id][:, freq_ind],
stg.depth_reshape[file_id][:, freq_ind]
)
),
stg.BS_raw_data_reshape[file_id][:, freq_ind]
)
)
else:
table_data = np.vstack((table_data,
np.vstack((np.vstack((stg.time_reshape[self.fileListWidget.currentRow()][:, freq_ind],
stg.depth_reshape[self.fileListWidget.currentRow()][:, freq_ind])),
stg.BS_raw_data_reshape[self.fileListWidget.currentRow()][:, freq_ind]))
))
table_data = np.vstack((
table_data,
np.vstack(
(
np.vstack(
(
stg.time_reshape[file_id][:, freq_ind],
stg.depth_reshape[file_id][:, freq_ind]
)
),
stg.BS_raw_data_reshape[file_id][:, freq_ind]
)
)
))
stg.DataFrame_acoustic = pd.DataFrame(None)
stg.DataFrame_acoustic = pd.DataFrame(data=table_data.transpose(), columns=header_list)
stg.DataFrame_acoustic = pd.DataFrame(
data=table_data.transpose(), columns=header_list
)
self.tableModel = TableModel(stg.DataFrame_acoustic)
self.tableView.setModel(self.tableModel)
@ -1994,27 +2074,45 @@ class AcousticDataTab(QWidget):
''' tmin and tmax are filled with min and max of time when data are uploaded and
double slider of time are updated with these values '''
if self.fileListWidget.currentRow() != -1:
if self.fileListWidget.currentRow() == -1:
return
# --- tmim / tmax ---
tmin_indice = np.where(np.abs(stg.time[self.fileListWidget.currentRow()][0, :] - np.nanmin(
stg.time[self.fileListWidget.currentRow()][0, :])) ==
np.nanmin(np.abs(stg.time[self.fileListWidget.currentRow()][0, :] - np.nanmin(
stg.time[self.fileListWidget.currentRow()][0, :]))))[0][0]
tmin_value = np.round(np.nanmin(stg.time[self.fileListWidget.currentRow()][0, :]), 2)
stg.tmin[self.fileListWidget.currentRow()] = (tmin_indice, tmin_value)
file_id = self.fileListWidget.currentRow()
tmax_indice = np.where(np.abs(stg.time[self.fileListWidget.currentRow()][0, :] - np.nanmax(
stg.time[self.fileListWidget.currentRow()][0, :])) ==
np.nanmin(np.abs(stg.time[self.fileListWidget.currentRow()][0, :] - np.nanmax(
stg.time[self.fileListWidget.currentRow()][0, :]))))[0][0]
tmax_value = np.round(np.nanmax(stg.time[self.fileListWidget.currentRow()][0, :]), 2)
stg.tmax[self.fileListWidget.currentRow()] = (tmax_indice + 1, tmax_value)
tmin_indice = np.where(
np.abs(
stg.time[file_id][0, :] - np.nanmin(stg.time[file_id][0, :])
) == np.nanmin(
np.abs(
stg.time[file_id][0, :]
- np.nanmin(stg.time[file_id][0, :])
)
)
)[0][0]
self.set_range_for_time_boundaries_option()
tmin_value = np.round(
np.nanmin(stg.time[file_id][0, :]), 2
)
stg.tmin[file_id] = (tmin_indice, tmin_value)
tmax_indice = np.where(
np.abs(
stg.time[file_id][0, :] - np.nanmax(stg.time[file_id][0, :])
) == np.nanmin(
np.abs(
stg.time[file_id][0, :]
- np.nanmax(stg.time[file_id][0, :])
)
)
)[0][0]
tmax_value = np.round(np.nanmax(stg.time[file_id][0, :]), 2)
stg.tmax[file_id] = (tmax_indice + 1, tmax_value)
self.set_range_for_time_boundaries_option()
def set_range_for_time_boundaries_option(self):
self.label_time_min.clear()
self.label_time_min.setText("%.5s" % str(stg.time[self.fileListWidget.currentRow()][0, 0]))