A list of default value for the kt_corrected is created for Aqauscat and for all frequencies available in Aquascat.
parent
f32cefc345
commit
bfa090bbcc
|
|
@ -5,7 +5,7 @@ from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QHBoxLayout, QGroupBox, QPush
|
|||
QGridLayout, QSpinBox, QDoubleSpinBox, QTableView, QTableWidget, QSpacerItem, QSizePolicy,
|
||||
QAbstractScrollArea, QFileDialog, QTableWidgetItem, QMessageBox, QScrollBar, QScrollArea,
|
||||
QProgressBar, QRadioButton, QFormLayout, QSlider, QAbstractItemView, QMenu, QItemDelegate,
|
||||
QCheckBox)
|
||||
QCheckBox, QAbstractSpinBox)
|
||||
from PyQt5.QtGui import QPixmap, QIcon, QFont, QMouseEvent
|
||||
from PyQt5.QtCore import Qt, QCoreApplication, pyqtSignal, pyqtSlot, QEvent
|
||||
|
||||
|
|
@ -287,8 +287,11 @@ class AcousticDataTab(QWidget):
|
|||
|
||||
self.label_kt = QLabel()
|
||||
self.spinbox_kt = QDoubleSpinBox()
|
||||
self.spinbox_kt.setDecimals(2)
|
||||
self.spinbox_kt.setMaximum(1e6)
|
||||
|
||||
self.checkbox_kt = QCheckBox()
|
||||
self.checkbox_kt.setChecked(True)
|
||||
|
||||
self.label_rx = QLabel() # a0 in UBSediFlow parameters
|
||||
self.spinbox_rx = QDoubleSpinBox()
|
||||
|
|
@ -1207,6 +1210,8 @@ class AcousticDataTab(QWidget):
|
|||
|
||||
# self.fileListWidget.clicked.connect(self.rename_file_in_ListWidget)
|
||||
|
||||
self.checkbox_kt.stateChanged.connect(self.activate_unactivate_spinbox_kt)
|
||||
|
||||
self.radiobutton_value.toggled.connect(self.onClicked_radiobutton_gps)
|
||||
self.radiobutton_file.toggled.connect(self.onClicked_radiobutton_gps)
|
||||
|
||||
|
|
@ -1505,6 +1510,7 @@ class AcousticDataTab(QWidget):
|
|||
self.gridLayout_goupbox_info.addWidget(self.label_temperature, 2, 0, 1, 1)
|
||||
self.spinbox_temperature.show()
|
||||
self.gridLayout_goupbox_info.addWidget(self.spinbox_temperature, 2, 1, 1, 1)
|
||||
self.temperature_value()
|
||||
|
||||
self.label_speed_of_sound.show()
|
||||
self.gridLayout_goupbox_info.addWidget(self.label_speed_of_sound, 3, 0, 1, 1)
|
||||
|
|
@ -1670,8 +1676,7 @@ class AcousticDataTab(QWidget):
|
|||
self.gridLayout_goupbox_info.addWidget(self.checkbox_tx, 15, 2, 1, 1)
|
||||
|
||||
def temperature_value(self):
|
||||
if self.fileListWidget.count() > 0:
|
||||
stg.temperature[self.fileListWidget.currentRow()] = self.spinbox_temperature.value()
|
||||
stg.temperature = self.spinbox_temperature.value()
|
||||
print(f"stg.temperature : {stg.temperature}")
|
||||
self.water_velocity()
|
||||
self.water_attenuation()
|
||||
|
|
@ -1684,8 +1689,8 @@ class AcousticDataTab(QWidget):
|
|||
3.34638117 * 1e-4 * self.spinbox_temperature.value() ** 3 -
|
||||
1.48259672 * 1e-6 * self.spinbox_temperature.value() ** 4 +
|
||||
3.16585020 * 1e-9 * self.spinbox_temperature.value() ** 5)
|
||||
stg.water_velocity[self.fileListWidget.currentRow()] = C
|
||||
self.spinbox_speed_of_sound.setValue(stg.water_velocity[self.fileListWidget.currentRow()])
|
||||
stg.water_velocity = C
|
||||
self.spinbox_speed_of_sound.setValue(stg.water_velocity)
|
||||
|
||||
print("water velocity ", stg.water_velocity)
|
||||
|
||||
|
|
@ -1693,6 +1698,7 @@ class AcousticDataTab(QWidget):
|
|||
# -------- Computing water attenuation coefficient ----------- #
|
||||
def water_attenuation(self):
|
||||
"""Computing attenuation from François and Garrison 1982"""
|
||||
if self.fileListWidget.count() > 0:
|
||||
stg.water_attenuation[self.fileListWidget.currentRow()].clear()
|
||||
for f in stg.freq[self.fileListWidget.currentRow()]:
|
||||
if self.spinbox_temperature.value() > 20:
|
||||
|
|
@ -1799,6 +1805,7 @@ class AcousticDataTab(QWidget):
|
|||
self.fill_table()
|
||||
self.plot_backscattered_acoustic_signal_recording()
|
||||
self.update_frequency_combobox()
|
||||
self.water_attenuation()
|
||||
|
||||
stg.acoustic_data = list(range(self.fileListWidget.count()))
|
||||
|
||||
|
|
@ -2123,12 +2130,12 @@ class AcousticDataTab(QWidget):
|
|||
stg.pulse_length.append(acoustic_data._cell_size)
|
||||
stg.nb_pings_per_sec.append(acoustic_data._nb_pings_per_sec)
|
||||
stg.nb_pings_averaged_per_profile.append(acoustic_data._nb_pings_averaged_per_profile)
|
||||
stg.kt_read.append(acoustic_data._kt)
|
||||
stg.kt_corrected.append([0]*len(stg.kt_read[-1]))
|
||||
stg.kt_read = acoustic_data._kt
|
||||
# stg.kt_corrected.append([0]*len(stg.kt_read[-1]))
|
||||
stg.gain_rx.append(acoustic_data._gain_rx)
|
||||
stg.gain_tx.append(acoustic_data._gain_tx)
|
||||
stg.temperature.append(0)
|
||||
stg.water_velocity.append(0)
|
||||
# stg.temperature.append(0)
|
||||
# stg.water_velocity.append(0)
|
||||
stg.water_attenuation.append([])
|
||||
|
||||
# --- The other acoustic variables lists are filled with empty object. ---
|
||||
|
|
@ -2271,16 +2278,32 @@ class AcousticDataTab(QWidget):
|
|||
[self.combobox_frequency_information.currentIndex()]))
|
||||
self.gridLayout_goupbox_info.addWidget(self.label_pings_per_profile_value, 13, 1, 1, 1)
|
||||
|
||||
stg.kt_corrected[self.fileListWidget.currentRow()] = stg.kt_read[self.fileListWidget.currentRow()]
|
||||
if self.combobox_ABS_system_choice.currentText() == "Aquascat 1000R":
|
||||
# stg.kt_corrected = stg.kt_read
|
||||
stg.kt_corrected = {"0.3 MHz" : 0.78905595,
|
||||
"0.5 MHz" : 0.36257121,
|
||||
"1.0 MHz" : 0.64446145,
|
||||
"2.5 MHz" : 0.31522785,
|
||||
"4.0 MHz" : 0.30339201,
|
||||
"5.0 MHz" : 0.27143525}
|
||||
elif self.combobox_ABS_system_choice.currentText() == "UB-SediFlow":
|
||||
# stg.kt_corrected = stg.kt_read
|
||||
stg.kt_corrected = [0.79352001, 0.36462244, 0.64810746, 0.27297088]
|
||||
# if self.checkbox_kt.isChecked():
|
||||
# self.spinbox_kt.setValue(
|
||||
# stg.kt_corrected[self.fileListWidget.currentRow()][self.combobox_frequency_information.currentIndex()])
|
||||
# else:
|
||||
|
||||
print(stg.ABS_name)
|
||||
print(stg.kt_corrected)
|
||||
print(self.combobox_frequency_information.currentText())
|
||||
print(stg.kt_corrected[self.combobox_frequency_information.currentText()])
|
||||
|
||||
self.spinbox_kt.setValue(
|
||||
stg.kt_read[self.fileListWidget.currentRow()][self.combobox_frequency_information.currentIndex()])
|
||||
stg.kt_corrected[self.combobox_frequency_information.currentText()])
|
||||
self.spinbox_kt.setSuffix(f" V.m^{1.5}")
|
||||
self.spinbox_kt.setEnabled(False)
|
||||
self.checkbox_kt.stateChanged.connect(self.activate_unactivate_spinbox_kt)
|
||||
self.spinbox_kt.setEnabled(True)
|
||||
# self.checkbox_kt.stateChanged.connect(self.activate_unactivate_spinbox_kt)
|
||||
self.spinbox_kt.valueChanged.connect(self.kt_value)
|
||||
|
||||
self.spinbox_rx.setValue(stg.gain_rx[self.fileListWidget.currentRow()][self.combobox_frequency_information.currentIndex()])
|
||||
|
|
@ -2431,15 +2454,16 @@ class AcousticDataTab(QWidget):
|
|||
self.gridLayout_goupbox_info.addWidget(self.label_pings_per_profile_value, 13, 1, 1, 1)
|
||||
|
||||
print("stg.kt_corrected ", stg.kt_corrected)
|
||||
print("self.combobox_frequency_information.currentText()",
|
||||
self.combobox_frequency_information.count())
|
||||
print("self.combobox_frequency_information.currentText()", self.combobox_frequency_information.currentText())
|
||||
self.spinbox_kt.clear()
|
||||
if self.checkbox_kt.isChecked():
|
||||
# print("combobox information update : checkbox checked")
|
||||
self.spinbox_kt.setValue(stg.kt_corrected[self.fileListWidget.currentRow()]
|
||||
[self.combobox_frequency_information.currentIndex()])
|
||||
if self.combobox_frequency_information.count() > 0:
|
||||
self.spinbox_kt.setValue(stg.kt_corrected[self.combobox_frequency_information.currentText()])
|
||||
else:
|
||||
# print("combobox information update : checkbox unchecked")
|
||||
self.spinbox_kt.setValue(stg.kt_read[self.fileListWidget.currentRow()]
|
||||
[self.combobox_frequency_information.currentIndex()])
|
||||
self.spinbox_kt.setValue(stg.kt_read[self.combobox_frequency_information.currentIndex()])
|
||||
self.spinbox_kt.setSuffix(f" V.m^{1.5}")
|
||||
|
||||
self.spinbox_rx.clear()
|
||||
|
|
@ -2452,17 +2476,15 @@ class AcousticDataTab(QWidget):
|
|||
|
||||
def activate_unactivate_spinbox_kt(self):
|
||||
if self.checkbox_kt.isChecked():
|
||||
# print(f"checkbox checked : kt corrected {stg.kt_corrected}")
|
||||
self.spinbox_kt.setValue(stg.kt_corrected[self.fileListWidget.currentRow()]
|
||||
[self.combobox_frequency_information.currentIndex()])
|
||||
self.spinbox_kt.setEnabled(True)
|
||||
|
||||
if stg.kt_corrected:
|
||||
self.spinbox_kt.setValue(stg.kt_corrected[self.combobox_frequency_information.currentText()])
|
||||
else:
|
||||
# print(f"checkbox unchecked : kt read {stg.kt_read}")
|
||||
self.spinbox_kt.setValue(stg.kt_read[self.fileListWidget.currentRow()]
|
||||
[self.combobox_frequency_information.currentIndex()])
|
||||
self.spinbox_kt.setDisabled(True)
|
||||
|
||||
if stg.kt_read:
|
||||
print(self.combobox_frequency_information.currentIndex())
|
||||
print(stg.kt_read)
|
||||
self.spinbox_kt.setValue(stg.kt_read[self.combobox_frequency_information.currentIndex()])
|
||||
|
||||
def activate_unactivate_spinbox_rx(self):
|
||||
if self.checkbox_rx.isChecked():
|
||||
|
|
@ -2482,10 +2504,10 @@ class AcousticDataTab(QWidget):
|
|||
# print(f"0 stg.kt_corrected {stg.kt_corrected}")
|
||||
if self.fileListWidget.count() > 0:
|
||||
if self.checkbox_kt.isChecked():
|
||||
stg.kt_corrected[self.fileListWidget.currentRow()][self.combobox_frequency_information.currentIndex()] \
|
||||
stg.kt_corrected[self.combobox_frequency_information.currentText()] \
|
||||
= self.spinbox_kt.value()
|
||||
# print(f"1 stg.kt_read : {stg.kt_read}")
|
||||
# print(f"1 stg.kt_corrected {stg.kt_corrected}")
|
||||
print(f"1 stg.kt_corrected {stg.kt_corrected}")
|
||||
|
||||
def gain_rx_value(self):
|
||||
if self.fileListWidget.count() > 0:
|
||||
|
|
|
|||
|
|
@ -1301,12 +1301,12 @@ class SedimentCalibrationTab(QWidget):
|
|||
ks_freq1 = self.inv_hc.ks(proba_num=psd_number_of_particles,
|
||||
freq=stg.freq[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq1.currentIndex()],
|
||||
C=stg.water_velocity[self.combobox_acoustic_data_choice.currentIndex()])
|
||||
C=stg.water_velocity)
|
||||
|
||||
ks_freq2 = self.inv_hc.ks(proba_num=psd_number_of_particles,
|
||||
freq=stg.freq[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq2.currentIndex()],
|
||||
C=stg.water_velocity[self.combobox_acoustic_data_choice.currentIndex()])
|
||||
C=stg.water_velocity)
|
||||
|
||||
stg.ks = [ks_freq1, ks_freq2]
|
||||
|
||||
|
|
@ -1375,11 +1375,11 @@ class SedimentCalibrationTab(QWidget):
|
|||
# print("kt cor ", stg.kt_corrected)
|
||||
# print("kt read", stg.kt_read)
|
||||
|
||||
if (stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()] !=
|
||||
if ([stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]] !=
|
||||
stg.kt_read[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
|
||||
kt2D = np.repeat(
|
||||
np.array([stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()]]).transpose(),
|
||||
np.array([[stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]]]).transpose(),
|
||||
stg.time_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
axis=1)
|
||||
kt3D = np.repeat(
|
||||
|
|
@ -1422,11 +1422,11 @@ class SedimentCalibrationTab(QWidget):
|
|||
print("kt cor ", stg.kt_corrected)
|
||||
print("kt read", stg.kt_read)
|
||||
|
||||
if (stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()] !=
|
||||
if ([stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]] !=
|
||||
stg.kt_read[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
|
||||
kt2D = np.repeat(
|
||||
np.array([stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()]]).transpose(),
|
||||
np.array([[stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]]]).transpose(),
|
||||
stg.time[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
axis=1)
|
||||
kt3D = np.repeat(
|
||||
|
|
@ -1471,11 +1471,11 @@ class SedimentCalibrationTab(QWidget):
|
|||
print("kt cor ", stg.kt_corrected)
|
||||
print("kt read", stg.kt_read)
|
||||
|
||||
if (stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()] !=
|
||||
if ([stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]] !=
|
||||
stg.kt_read[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
|
||||
kt2D = np.repeat(
|
||||
np.array([stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()]]).transpose(),
|
||||
np.array([[stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]]]).transpose(),
|
||||
stg.time_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
axis=1)
|
||||
kt3D = np.repeat(
|
||||
|
|
@ -1518,11 +1518,11 @@ class SedimentCalibrationTab(QWidget):
|
|||
print("kt cor ", stg.kt_corrected)
|
||||
print("kt read", stg.kt_read)
|
||||
|
||||
if (stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()] !=
|
||||
if ([stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]] !=
|
||||
stg.kt_read[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
|
||||
print([stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]])
|
||||
kt2D = np.repeat(
|
||||
np.array([stg.kt_corrected[self.combobox_acoustic_data_choice.currentIndex()]]).transpose(),
|
||||
np.array([[stg.kt_corrected[key] for key in stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]]]).transpose(),
|
||||
stg.time[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
axis=1)
|
||||
kt3D = np.repeat(
|
||||
|
|
@ -1928,10 +1928,10 @@ class SedimentCalibrationTab(QWidget):
|
|||
# Pulse duration
|
||||
tau.append(aquascat_cell_size[f] * 2 / 1500) # figure 2.9 1500 vitesse du son entrée pour le paramètrage des mesures aquascat
|
||||
|
||||
print(stg.water_velocity[self.combobox_acoustic_data_choice.currentIndex()])
|
||||
print(stg.water_velocity)
|
||||
print(tau)
|
||||
# Real cell size
|
||||
real_cell_size.append(stg.water_velocity[self.combobox_acoustic_data_choice.currentIndex()] * tau[f] / 2) # voir fig 2.9
|
||||
real_cell_size.append(stg.water_velocity * tau[f] / 2) # voir fig 2.9
|
||||
|
||||
# Converting to real cell profile
|
||||
# stg.depth_real[self.combobox_acoustic_data_choice.currentIndex()][f, :] = \
|
||||
|
|
@ -1962,7 +1962,7 @@ class SedimentCalibrationTab(QWidget):
|
|||
tau.append(aquascat_cell_size[f] * 2 / 1500) # figure 2.9 1500 vitesse du son entrée pour le paramètrage des mesures aquascat
|
||||
|
||||
# Real cell size
|
||||
real_cell_size.append(stg.water_velocity[self.combobox_acoustic_data_choice.currentIndex()] * tau[f] / 2) # voir fig 2.9
|
||||
real_cell_size.append(stg.water_velocity * tau[f] / 2) # voir fig 2.9
|
||||
|
||||
# Converting to real cell profile
|
||||
# stg.depth_real[self.combobox_acoustic_data_choice.currentIndex()][f, :] = \
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ pulse_length = []
|
|||
nb_pings_per_sec = []
|
||||
nb_pings_averaged_per_profile = []
|
||||
kt_read = []
|
||||
kt_corrected = []
|
||||
kt_corrected = {}
|
||||
gain_rx = []
|
||||
gain_tx = []
|
||||
|
||||
|
|
@ -160,9 +160,9 @@ sand_sample_position = []
|
|||
|
||||
# --- Acoustic inversion method ---
|
||||
|
||||
temperature = []
|
||||
temperature = 0
|
||||
water_attenuation = []
|
||||
water_velocity = []
|
||||
water_velocity = 0
|
||||
|
||||
# kt_corrected = np.array([])
|
||||
# kt_corrected_2D = np.array([])
|
||||
|
|
|
|||
Loading…
Reference in New Issue