All QDoubleSpinbox in Measurement information and Calibration parameter are replaced by QlineEdit. Unit are moved outside of the QLineEdit in a QLabel.

dev-brahim
brahim 2024-10-03 17:38:15 +02:00
parent 58a7934d50
commit 07728bc771
2 changed files with 348 additions and 152 deletions

View File

@ -258,10 +258,13 @@ class AcousticDataTab(QWidget):
# self.spinbox_temperature.setKeyboardTracking(False) # self.spinbox_temperature.setKeyboardTracking(False)
self.lineEdit_temperature = QLineEdit() self.lineEdit_temperature = QLineEdit()
self.lineEdit_temperature.setText("0.00 °C") self.lineEdit_temperature.setText("0.00")
self.lineEdit_temperature.setMaximumWidth(150) self.lineEdit_temperature.setMaximumWidth(100)
# self.lineEdit_temperature.setValidator(QDoubleValidator) # self.lineEdit_temperature.setValidator(QDoubleValidator)
self.label_temperature_unit = QLabel()
self.label_temperature_unit.setText("°C")
self.label_speed_of_sound = QLabel("Speed of sound : ") self.label_speed_of_sound = QLabel("Speed of sound : ")
# self.spinbox_speed_of_sound = QDoubleSpinBox() # self.spinbox_speed_of_sound = QDoubleSpinBox()
@ -269,12 +272,16 @@ class AcousticDataTab(QWidget):
# self.spinbox_speed_of_sound.setMaximum(1e5) # self.spinbox_speed_of_sound.setMaximum(1e5)
self.lineEdit_speed_of_sound = QLineEdit() self.lineEdit_speed_of_sound = QLineEdit()
self.lineEdit_speed_of_sound.setMaximumWidth(150) self.lineEdit_speed_of_sound.setMaximumWidth(100)
self.label_speed_of_sound_unit = QLabel()
self.label_speed_of_sound_unit.setText("m/s")
self.label_sound_attenuation = QLabel("Sound attenuation : ")
self.label_freq = QLabel() self.label_freq = QLabel()
self.combobox_frequency_information = QComboBox() self.combobox_frequency_information = QComboBox()
self.combobox_frequency_information.setMaximumWidth(100)
self.label_kt = QLabel() self.label_kt = QLabel()
# self.spinbox_kt = QDoubleSpinBox() # self.spinbox_kt = QDoubleSpinBox()
@ -282,17 +289,25 @@ class AcousticDataTab(QWidget):
# self.spinbox_kt.setMaximum(1e6) # self.spinbox_kt.setMaximum(1e6)
self.lineEdit_kt = QLineEdit() self.lineEdit_kt = QLineEdit()
self.lineEdit_kt.setMaximumWidth(150) self.lineEdit_kt.setMaximumWidth(100)
self.label_kt_unit = QLabel()
self.label_kt_unit.setText("V.m^1.5")
self.checkbox_kt = QCheckBox() self.checkbox_kt = QCheckBox()
self.checkbox_kt.setChecked(True) self.checkbox_kt.setChecked(True)
self.label_sound_attenuation = QLabel("Sound attenuation : ")
# self.spinbox_sound_attenuation = QDoubleSpinBox() # self.spinbox_sound_attenuation = QDoubleSpinBox()
# self.spinbox_sound_attenuation.setSuffix("/m") # self.spinbox_sound_attenuation.setSuffix("/m")
# self.spinbox_sound_attenuation.setDecimals(5) # self.spinbox_sound_attenuation.setDecimals(5)
self.lineEdit_sound_attenuation = QLineEdit() self.lineEdit_sound_attenuation = QLineEdit()
self.lineEdit_sound_attenuation.setMaximumWidth(150) self.lineEdit_sound_attenuation.setMaximumWidth(100)
self.label_sound_attenuation_unit = QLabel()
self.label_sound_attenuation_unit.setText("/m")
self.label_profiles = QLabel() self.label_profiles = QLabel()
self.label_profiles_value = QLabel() self.label_profiles_value = QLabel()
@ -314,7 +329,7 @@ class AcousticDataTab(QWidget):
# self.spinbox_rx.setMaximum(1e6) # self.spinbox_rx.setMaximum(1e6)
self.lineEdit_rx = QLineEdit() self.lineEdit_rx = QLineEdit()
self.lineEdit_rx.setMaximumWidth(150) self.lineEdit_rx.setMaximumWidth(100)
self.checkbox_rx = QCheckBox() self.checkbox_rx = QCheckBox()
@ -324,7 +339,7 @@ class AcousticDataTab(QWidget):
# self.spinbox_tx.setMaximum(1e6) # self.spinbox_tx.setMaximum(1e6)
self.lineEdit_tx = QLineEdit() self.lineEdit_tx = QLineEdit()
self.lineEdit_tx.setMaximumWidth(150) self.lineEdit_tx.setMaximumWidth(100)
self.checkbox_tx = QCheckBox() self.checkbox_tx = QCheckBox()
@ -1448,14 +1463,17 @@ class AcousticDataTab(QWidget):
self.label_temperature.hide() self.label_temperature.hide()
# self.spinbox_temperature.hide() # self.spinbox_temperature.hide()
self.lineEdit_temperature.hide() self.lineEdit_temperature.hide()
self.label_temperature_unit.hide()
self.label_speed_of_sound.hide() self.label_speed_of_sound.hide()
# self.spinbox_speed_of_sound.hide() # self.spinbox_speed_of_sound.hide()
self.lineEdit_speed_of_sound.hide() self.lineEdit_speed_of_sound.hide()
self.label_speed_of_sound_unit.hide()
self.label_sound_attenuation.hide() self.label_sound_attenuation.hide()
# self.spinbox_sound_attenuation.hide() # self.spinbox_sound_attenuation.hide()
self.lineEdit_sound_attenuation.hide() self.lineEdit_sound_attenuation.hide()
self.label_sound_attenuation_unit.hide()
self.label_freq.hide() self.label_freq.hide()
self.combobox_frequency_information.hide() self.combobox_frequency_information.hide()
@ -1471,6 +1489,7 @@ class AcousticDataTab(QWidget):
self.label_kt.hide() self.label_kt.hide()
# self.spinbox_kt.hide() # self.spinbox_kt.hide()
self.lineEdit_kt.hide() self.lineEdit_kt.hide()
self.label_kt_unit.hide()
self.checkbox_kt.hide() self.checkbox_kt.hide()
self.label_rx.hide() self.label_rx.hide()
@ -1493,14 +1512,17 @@ class AcousticDataTab(QWidget):
self.label_temperature.hide() self.label_temperature.hide()
# self.spinbox_temperature.hide() # self.spinbox_temperature.hide()
self.lineEdit_temperature.hide() self.lineEdit_temperature.hide()
self.label_temperature_unit.hide()
self.label_speed_of_sound.hide() self.label_speed_of_sound.hide()
# self.spinbox_speed_of_sound.hide() # self.spinbox_speed_of_sound.hide()
self.lineEdit_speed_of_sound.hide() self.lineEdit_speed_of_sound.hide()
self.label_speed_of_sound_unit.hide()
self.label_sound_attenuation.hide() self.label_sound_attenuation.hide()
# self.spinbox_sound_attenuation.hide() # self.spinbox_sound_attenuation.hide()
self.lineEdit_sound_attenuation.hide() self.lineEdit_sound_attenuation.hide()
self.label_sound_attenuation_unit.hide()
self.label_freq.hide() self.label_freq.hide()
self.combobox_frequency_information.hide() self.combobox_frequency_information.hide()
@ -1516,6 +1538,7 @@ class AcousticDataTab(QWidget):
self.label_kt.hide() self.label_kt.hide()
# self.spinbox_kt.hide() # self.spinbox_kt.hide()
self.lineEdit_kt.hide() self.lineEdit_kt.hide()
self.label_kt_unit.hide()
self.checkbox_kt.hide() self.checkbox_kt.hide()
self.label_rx.hide() self.label_rx.hide()
@ -1551,6 +1574,8 @@ class AcousticDataTab(QWidget):
# self.spinbox_temperature.show() # self.spinbox_temperature.show()
self.lineEdit_temperature.show() self.lineEdit_temperature.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_temperature, 2, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_temperature, 2, 1, 1, 1)
self.label_temperature_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_temperature_unit, 2, 2, 1, 1, Qt.AlignLeft)
self.temperature_value() self.temperature_value()
self.label_speed_of_sound.show() self.label_speed_of_sound.show()
@ -1558,6 +1583,8 @@ class AcousticDataTab(QWidget):
# self.spinbox_speed_of_sound.show() # self.spinbox_speed_of_sound.show()
self.lineEdit_speed_of_sound.show() self.lineEdit_speed_of_sound.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_speed_of_sound, 3, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_speed_of_sound, 3, 1, 1, 1)
self.label_speed_of_sound_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_speed_of_sound_unit, 3, 2, 1, 1, Qt.AlignLeft)
self.label_freq.show() self.label_freq.show()
self.gridLayout_goupbox_info.addWidget(self.label_freq, 4, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_freq, 4, 0, 1, 1)
@ -1569,14 +1596,18 @@ class AcousticDataTab(QWidget):
# self.spinbox_kt.show() # self.spinbox_kt.show()
self.lineEdit_kt.show() self.lineEdit_kt.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_kt, 5, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_kt, 5, 1, 1, 1)
self.label_kt_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_kt_unit, 5, 2, 1, 1, Qt.AlignLeft)
self.checkbox_kt.show() self.checkbox_kt.show()
self.gridLayout_goupbox_info.addWidget(self.checkbox_kt, 5, 2, 1, 1) self.gridLayout_goupbox_info.addWidget(self.checkbox_kt, 5, 3, 1, 1, Qt.AlignCenter)
self.label_sound_attenuation.show() self.label_sound_attenuation.show()
self.gridLayout_goupbox_info.addWidget(self.label_sound_attenuation, 6, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_sound_attenuation, 6, 0, 1, 1)
# self.spinbox_sound_attenuation.show() # self.spinbox_sound_attenuation.show()
self.lineEdit_sound_attenuation.show() self.lineEdit_sound_attenuation.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_sound_attenuation, 6, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_sound_attenuation, 6, 1, 1, 1)
self.label_sound_attenuation_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_sound_attenuation_unit, 6, 2, 1, 1, Qt.AlignLeft)
self.label_profiles.show() self.label_profiles.show()
self.gridLayout_goupbox_info.addWidget(self.label_profiles, 7, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_profiles, 7, 0, 1, 1)
@ -1599,7 +1630,7 @@ class AcousticDataTab(QWidget):
self.lineEdit_rx.show() self.lineEdit_rx.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_rx, 14, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_rx, 14, 1, 1, 1)
self.checkbox_rx.show() self.checkbox_rx.show()
self.gridLayout_goupbox_info.addWidget(self.checkbox_rx, 14, 2, 1, 1) self.gridLayout_goupbox_info.addWidget(self.checkbox_rx, 14, 3, 1, 1, Qt.AlignCenter)
self.label_tx.show() self.label_tx.show()
self.gridLayout_goupbox_info.addWidget(self.label_tx, 15, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_tx, 15, 0, 1, 1)
@ -1607,7 +1638,7 @@ class AcousticDataTab(QWidget):
self.lineEdit_tx.show() self.lineEdit_tx.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_tx, 15, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_tx, 15, 1, 1, 1)
self.checkbox_tx.show() self.checkbox_tx.show()
self.gridLayout_goupbox_info.addWidget(self.checkbox_tx, 15, 2, 1, 1) self.gridLayout_goupbox_info.addWidget(self.checkbox_tx, 15, 3, 1, 1, Qt.AlignCenter)
def groupbox_measurement_information_UBSediFlow(self): def groupbox_measurement_information_UBSediFlow(self):
# --- Hide Aquascat information --- # --- Hide Aquascat information ---
@ -1619,14 +1650,17 @@ class AcousticDataTab(QWidget):
self.label_temperature.hide() self.label_temperature.hide()
# self.spinbox_temperature.hide() # self.spinbox_temperature.hide()
self.lineEdit_temperature.hide() self.lineEdit_temperature.hide()
self.label_temperature_unit.hide()
self.label_speed_of_sound.hide() self.label_speed_of_sound.hide()
# self.spinbox_speed_of_sound.hide() # self.spinbox_speed_of_sound.hide()
self.lineEdit_speed_of_sound.hide() self.lineEdit_speed_of_sound.hide()
self.label_speed_of_sound_unit.hide()
self.label_sound_attenuation.hide() self.label_sound_attenuation.hide()
# self.spinbox_sound_attenuation.hide() # self.spinbox_sound_attenuation.hide()
self.lineEdit_sound_attenuation.hide() self.lineEdit_sound_attenuation.hide()
self.label_sound_attenuation_unit.hide()
self.label_freq.hide() self.label_freq.hide()
self.combobox_frequency_information.hide() self.combobox_frequency_information.hide()
@ -1642,6 +1676,7 @@ class AcousticDataTab(QWidget):
self.label_kt.hide() self.label_kt.hide()
# self.spinbox_kt.hide() # self.spinbox_kt.hide()
self.lineEdit_kt.hide() self.lineEdit_kt.hide()
self.label_kt_unit.hide()
self.checkbox_kt.hide() self.checkbox_kt.hide()
self.label_rx.hide() self.label_rx.hide()
@ -1676,12 +1711,16 @@ class AcousticDataTab(QWidget):
# self.spinbox_temperature.show() # self.spinbox_temperature.show()
self.lineEdit_temperature.show() self.lineEdit_temperature.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_temperature, 2, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_temperature, 2, 1, 1, 1)
self.label_temperature_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_temperature_unit, 2, 2, 1, 1, Qt.AlignLeft)
self.label_speed_of_sound.show() self.label_speed_of_sound.show()
self.gridLayout_goupbox_info.addWidget(self.label_speed_of_sound, 3, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_speed_of_sound, 3, 0, 1, 1)
# self.spinbox_speed_of_sound.show() # self.spinbox_speed_of_sound.show()
self.lineEdit_speed_of_sound.show() self.lineEdit_speed_of_sound.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_speed_of_sound, 3, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_speed_of_sound, 3, 1, 1, 1)
self.label_speed_of_sound_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_speed_of_sound_unit, 3, 2, 1, 1, Qt.AlignLeft)
self.label_freq.show() self.label_freq.show()
self.gridLayout_goupbox_info.addWidget(self.label_freq, 4, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_freq, 4, 0, 1, 1)
@ -1693,14 +1732,18 @@ class AcousticDataTab(QWidget):
# self.spinbox_kt.show() # self.spinbox_kt.show()
self.lineEdit_kt.show() self.lineEdit_kt.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_kt, 5, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_kt, 5, 1, 1, 1)
self.label_kt_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_kt_unit, 5, 2, 1, 1, Qt.AlignLeft)
self.checkbox_kt.show() self.checkbox_kt.show()
self.gridLayout_goupbox_info.addWidget(self.checkbox_kt, 5, 2, 1, 1) self.gridLayout_goupbox_info.addWidget(self.checkbox_kt, 5, 3, 1, 1, Qt.AlignCenter)
self.label_sound_attenuation.show() self.label_sound_attenuation.show()
self.gridLayout_goupbox_info.addWidget(self.label_sound_attenuation, 6, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_sound_attenuation, 6, 0, 1, 1)
# self.spinbox_sound_attenuation.show() # self.spinbox_sound_attenuation.show()
self.lineEdit_sound_attenuation.show() self.lineEdit_sound_attenuation.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_sound_attenuation, 6, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_sound_attenuation, 6, 1, 1, 1)
self.label_sound_attenuation_unit.show()
self.gridLayout_goupbox_info.addWidget(self.label_sound_attenuation_unit, 6, 2, 1, 1, Qt.AlignLeft)
self.label_profiles.show() self.label_profiles.show()
self.gridLayout_goupbox_info.addWidget(self.label_profiles, 7, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_profiles, 7, 0, 1, 1)
@ -1723,7 +1766,7 @@ class AcousticDataTab(QWidget):
self.lineEdit_rx.hide() self.lineEdit_rx.hide()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_rx, 14, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_rx, 14, 1, 1, 1)
self.checkbox_rx.show() self.checkbox_rx.show()
self.gridLayout_goupbox_info.addWidget(self.checkbox_rx, 14, 2, 1, 1) self.gridLayout_goupbox_info.addWidget(self.checkbox_rx, 14, 3, 1, 1, Qt.AlignCenter)
self.label_tx.show() self.label_tx.show()
self.gridLayout_goupbox_info.addWidget(self.label_tx, 15, 0, 1, 1) self.gridLayout_goupbox_info.addWidget(self.label_tx, 15, 0, 1, 1)
@ -1731,24 +1774,31 @@ class AcousticDataTab(QWidget):
self.lineEdit_tx.show() self.lineEdit_tx.show()
self.gridLayout_goupbox_info.addWidget(self.lineEdit_tx, 15, 1, 1, 1) self.gridLayout_goupbox_info.addWidget(self.lineEdit_tx, 15, 1, 1, 1)
self.checkbox_tx.show() self.checkbox_tx.show()
self.gridLayout_goupbox_info.addWidget(self.checkbox_tx, 15, 2, 1, 1) self.gridLayout_goupbox_info.addWidget(self.checkbox_tx, 15, 2, 1, 1, Qt.AlignCenter)
def temperature_value(self): def temperature_value(self):
print("self.lineEdit_temperature.text() ", self.lineEdit_temperature.text()[-3:]) print("self.lineEdit_temperature.text() ", self.lineEdit_temperature.text())
if self.lineEdit_temperature.text()[-3:] == " °C": # if self.lineEdit_temperature.text()[-3:] == " °C":
if findall(r",", self.lineEdit_temperature.text()[:-3]): # if findall(r",", self.lineEdit_temperature.text()[:-3]):
stg.temperature = float(self.lineEdit_temperature.text()[:-3].replace(',', '.')) # stg.temperature = float(self.lineEdit_temperature.text()[:-3].replace(',', '.'))
self.lineEdit_temperature.setText(self.lineEdit_temperature.text()[:-3].replace(',', '.') + " °C") # self.lineEdit_temperature.setText(self.lineEdit_temperature.text()[:-3].replace(',', '.') + " °C")
else: # else:
stg.temperature = float(self.lineEdit_temperature.text()[:-3]) # stg.temperature = float(self.lineEdit_temperature.text()[:-3])
self.lineEdit_temperature.setText(self.lineEdit_temperature.text()[:-3] + " °C") # self.lineEdit_temperature.setText(self.lineEdit_temperature.text()[:-3] + " °C")
else: # else:
# if findall(r",", self.lineEdit_temperature.text()):
# stg.temperature = float(self.lineEdit_temperature.text().replace(',', '.'))
# self.lineEdit_temperature.setText(self.lineEdit_temperature.text().replace(',', '.') + " °C")
# else:
# stg.temperature = float(self.lineEdit_temperature.text())
# self.lineEdit_temperature.setText(self.lineEdit_temperature.text() + " °C")
if findall(r",", self.lineEdit_temperature.text()): if findall(r",", self.lineEdit_temperature.text()):
stg.temperature = float(self.lineEdit_temperature.text().replace(',', '.')) stg.temperature = float(self.lineEdit_temperature.text().replace(',', '.'))
self.lineEdit_temperature.setText(self.lineEdit_temperature.text().replace(',', '.') + " °C") self.lineEdit_temperature.setText(self.lineEdit_temperature.text().replace(',', '.'))
else: else:
stg.temperature = float(self.lineEdit_temperature.text()) stg.temperature = float(self.lineEdit_temperature.text())
self.lineEdit_temperature.setText(self.lineEdit_temperature.text() + " °C") self.lineEdit_temperature.setText(self.lineEdit_temperature.text())
print(f"stg.temperature : {stg.temperature}") print(f"stg.temperature : {stg.temperature}")
self.water_velocity() self.water_velocity()
self.water_attenuation() self.water_attenuation()
@ -1756,14 +1806,14 @@ class AcousticDataTab(QWidget):
def water_velocity(self): def water_velocity(self):
"""Computing sond speed from Bilaniuk and Wong 1993""" """Computing sond speed from Bilaniuk and Wong 1993"""
C = (1.40238744 * 1e3 + C = (1.40238744 * 1e3 +
5.03836171 * float(self.lineEdit_temperature.text()[:-3]) - 5.03836171 * float(self.lineEdit_temperature.text()) -
5.81172916 * 1e-2 * float(self.lineEdit_temperature.text()[:-3]) ** 2 + 5.81172916 * 1e-2 * float(self.lineEdit_temperature.text()) ** 2 +
3.34638117 * 1e-4 * float(self.lineEdit_temperature.text()[:-3]) ** 3 - 3.34638117 * 1e-4 * float(self.lineEdit_temperature.text()) ** 3 -
1.48259672 * 1e-6 * float(self.lineEdit_temperature.text()[:-3]) ** 4 + 1.48259672 * 1e-6 * float(self.lineEdit_temperature.text()) ** 4 +
3.16585020 * 1e-9 * float(self.lineEdit_temperature.text()[:-3]) ** 5) 3.16585020 * 1e-9 * float(self.lineEdit_temperature.text()) ** 5)
stg.water_velocity = C stg.water_velocity = C
self.lineEdit_speed_of_sound.setText(str(round(stg.water_velocity, 2)) + " m/s") self.lineEdit_speed_of_sound.setText(str(round(stg.water_velocity, 2)))
print("water velocity ", stg.water_velocity) print("water velocity ", stg.water_velocity)
@ -1776,15 +1826,15 @@ class AcousticDataTab(QWidget):
for f in stg.freq[self.fileListWidget.currentRow()]: for f in stg.freq[self.fileListWidget.currentRow()]:
if float(self.lineEdit_temperature.text()[:-3]) > 20: if float(self.lineEdit_temperature.text()[:-3]) > 20:
alpha = ((3.964 * 1e-4 - alpha = ((3.964 * 1e-4 -
1.146 * 1e-5 * float(self.lineEdit_temperature.text()[:-3]) + 1.146 * 1e-5 * float(self.lineEdit_temperature.text()) +
1.45 * 1e-7 * float(self.lineEdit_temperature.text()[:-3]) ** 2 - 1.45 * 1e-7 * float(self.lineEdit_temperature.text()) ** 2 -
6.5 * 1e-10 * float(self.lineEdit_temperature.text()[:-3]) ** 3) * 6.5 * 1e-10 * float(self.lineEdit_temperature.text()) ** 3) *
1e-3 * (np.log(10) / 20) * (f * 1e-3) ** 2) 1e-3 * (np.log(10) / 20) * (f * 1e-3) ** 2)
else: else:
alpha = ((4.937 * 1e-4 - alpha = ((4.937 * 1e-4 -
2.59 * 1e-5 * float(self.lineEdit_temperature.text()[:-3]) + 2.59 * 1e-5 * float(self.lineEdit_temperature.text()) +
9.11 * 1e-7 * float(self.lineEdit_temperature.text()[:-3]) ** 2 - 9.11 * 1e-7 * float(self.lineEdit_temperature.text()) ** 2 -
1.5 * 1e-8 * float(self.lineEdit_temperature.text()[:-3]) ** 3) * 1.5 * 1e-8 * float(self.lineEdit_temperature.text()) ** 3) *
1e-3 * (np.log(10) / 20) * (f * 1e-3) ** 2) 1e-3 * (np.log(10) / 20) * (f * 1e-3) ** 2)
stg.water_attenuation[self.fileListWidget.currentRow()].append(alpha) stg.water_attenuation[self.fileListWidget.currentRow()].append(alpha)
@ -1793,8 +1843,7 @@ class AcousticDataTab(QWidget):
# [self.combobox_frequency_information.currentIndex()]) # [self.combobox_frequency_information.currentIndex()])
self.lineEdit_sound_attenuation.setText( self.lineEdit_sound_attenuation.setText(
str("%.6f" % stg.water_attenuation[self.fileListWidget.currentRow()][ str("%.6f" % stg.water_attenuation[self.fileListWidget.currentRow()][
self.combobox_frequency_information.currentIndex()]) + self.combobox_frequency_information.currentIndex()]))
r" /m")
print("water attenuation ", stg.water_attenuation) print("water attenuation ", stg.water_attenuation)
@ -1947,10 +1996,10 @@ class AcousticDataTab(QWidget):
self.label_hour_acoustic_file.clear() self.label_hour_acoustic_file.clear()
self.label_hour_acoustic_file.setText("Hour: ") self.label_hour_acoustic_file.setText("Hour: ")
# self.spinbox_temperature.setValue(0) # self.spinbox_temperature.setValue(0)
self.lineEdit_temperature.setText("0.00 °C") self.lineEdit_temperature.setText("0.00")
# self.spinbox_speed_of_sound.setValue(0) # self.spinbox_speed_of_sound.setValue(0)
# self.spinbox_sound_attenuation.setValue(0) # self.spinbox_sound_attenuation.setValue(0)
self.lineEdit_sound_attenuation.setText(r"0.00 m^{-1}") self.lineEdit_sound_attenuation.setText("0.00")
self.combobox_frequency_information.clear() self.combobox_frequency_information.clear()
self.label_profiles_value.clear() self.label_profiles_value.clear()
self.label_profiles_per_sec_value.clear() self.label_profiles_per_sec_value.clear()
@ -1960,7 +2009,7 @@ class AcousticDataTab(QWidget):
self.label_pings_per_sec_value.clear() self.label_pings_per_sec_value.clear()
self.label_pings_per_profile_value.clear() self.label_pings_per_profile_value.clear()
# self.spinbox_kt.setValue(0) # self.spinbox_kt.setValue(0)
self.lineEdit_kt.setText("0.00 V.m^1.5") self.lineEdit_kt.setText("0.00")
# self.spinbox_rx.setValue(0) # self.spinbox_rx.setValue(0)
self.lineEdit_rx.setText("0.00") self.lineEdit_rx.setText("0.00")
# self.spinbox_tx.setValue(0) # self.spinbox_tx.setValue(0)
@ -2049,10 +2098,10 @@ class AcousticDataTab(QWidget):
self.label_hour_acoustic_file.clear() self.label_hour_acoustic_file.clear()
self.label_hour_acoustic_file.setText("Hour: ") self.label_hour_acoustic_file.setText("Hour: ")
# self.spinbox_temperature.setValue(0) # self.spinbox_temperature.setValue(0)
self.lineEdit_temperature.setText("0.00 °C") self.lineEdit_temperature.setText("0.00")
# self.spinbox_speed_of_sound.setValue(0) # self.spinbox_speed_of_sound.setValue(0)
# self.spinbox_sound_attenuation.setValue(0) # self.spinbox_sound_attenuation.setValue(0)
self.lineEdit_sound_attenuation.setText(r"0.00 m^{-1}") self.lineEdit_sound_attenuation.setText("0.00")
self.combobox_frequency_information.clear() self.combobox_frequency_information.clear()
self.label_profiles_value.clear() self.label_profiles_value.clear()
self.label_profiles_per_sec_value.clear() self.label_profiles_per_sec_value.clear()
@ -2062,7 +2111,7 @@ class AcousticDataTab(QWidget):
self.label_pings_per_sec_value.clear() self.label_pings_per_sec_value.clear()
self.label_pings_per_profile_value.clear() self.label_pings_per_profile_value.clear()
# self.spinbox_kt.setValue(0) # self.spinbox_kt.setValue(0)
self.lineEdit_kt.setText("0.00 V.m^1.5") self.lineEdit_kt.setText("0.00")
# self.spinbox_rx.setValue(0) # self.spinbox_rx.setValue(0)
self.lineEdit_rx.setText("0.00") self.lineEdit_rx.setText("0.00")
# self.spinbox_tx.setValue(0) # self.spinbox_tx.setValue(0)
@ -2336,7 +2385,7 @@ class AcousticDataTab(QWidget):
self.combobox_frequency_information.currentIndexChanged.connect(self.combobox_frequency_information_update) self.combobox_frequency_information.currentIndexChanged.connect(self.combobox_frequency_information_update)
# self.spinbox_temperature.setValue(0) # self.spinbox_temperature.setValue(0)
self.lineEdit_temperature.setText("0.00 °C") self.lineEdit_temperature.setText("0.00")
self.label_profiles_value.setText(str(stg.nb_profiles[self.fileListWidget.currentRow()] self.label_profiles_value.setText(str(stg.nb_profiles[self.fileListWidget.currentRow()]
[self.combobox_frequency_information.currentIndex()])) [self.combobox_frequency_information.currentIndex()]))
@ -2394,8 +2443,7 @@ class AcousticDataTab(QWidget):
# # self.checkbox_kt.stateChanged.connect(self.activate_unactivate_spinbox_kt) # # self.checkbox_kt.stateChanged.connect(self.activate_unactivate_spinbox_kt)
# self.spinbox_kt.valueChanged.connect(self.kt_value) # self.spinbox_kt.valueChanged.connect(self.kt_value)
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]) + self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]))
" V.m^1.5")
self.lineEdit_kt.setEnabled(True) self.lineEdit_kt.setEnabled(True)
self.lineEdit_kt.returnPressed.connect(self.kt_value) self.lineEdit_kt.returnPressed.connect(self.kt_value)
@ -2512,8 +2560,7 @@ class AcousticDataTab(QWidget):
# [self.combobox_frequency_information.currentIndex()]) # [self.combobox_frequency_information.currentIndex()])
self.lineEdit_sound_attenuation.setText( self.lineEdit_sound_attenuation.setText(
str("%.6f" % stg.water_attenuation[self.fileListWidget.currentRow()][ str("%.6f" % stg.water_attenuation[self.fileListWidget.currentRow()][
self.combobox_frequency_information.currentIndex()]) + self.combobox_frequency_information.currentIndex()]))
r" /m")
self.label_profiles_value.clear() self.label_profiles_value.clear()
self.gridLayout_goupbox_info.removeWidget(self.label_profiles_value) self.gridLayout_goupbox_info.removeWidget(self.label_profiles_value)
@ -2564,11 +2611,11 @@ class AcousticDataTab(QWidget):
if self.checkbox_kt.isChecked(): if self.checkbox_kt.isChecked():
if self.combobox_frequency_information.count() > 0: if self.combobox_frequency_information.count() > 0:
# self.spinbox_kt.setValue(stg.kt_corrected[self.combobox_frequency_information.currentText()]) # self.spinbox_kt.setValue(stg.kt_corrected[self.combobox_frequency_information.currentText()])
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]) + " V.m^1.5") self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]))
else: else:
# print("combobox information update : checkbox unchecked") # print("combobox information update : checkbox unchecked")
# self.spinbox_kt.setValue(stg.kt_read[self.combobox_frequency_information.currentIndex()]) # self.spinbox_kt.setValue(stg.kt_read[self.combobox_frequency_information.currentIndex()])
self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[self.combobox_frequency_information.currentIndex()]) + " V.m^1.5") self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[self.combobox_frequency_information.currentIndex()]))
# self.spinbox_kt.setSuffix(f" V.m^{1.5}") # self.spinbox_kt.setSuffix(f" V.m^{1.5}")
# self.spinbox_rx.clear() # self.spinbox_rx.clear()
@ -2589,7 +2636,7 @@ class AcousticDataTab(QWidget):
self.lineEdit_kt.setEnabled(True) self.lineEdit_kt.setEnabled(True)
if stg.kt_corrected: if stg.kt_corrected:
# self.spinbox_kt.setValue(stg.kt_corrected[self.combobox_frequency_information.currentText()]) # self.spinbox_kt.setValue(stg.kt_corrected[self.combobox_frequency_information.currentText()])
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]) + " V.m^1.5") self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]))
else: else:
# self.spinbox_kt.setDisabled(True) # self.spinbox_kt.setDisabled(True)
self.lineEdit_kt.setDisabled(True) self.lineEdit_kt.setDisabled(True)
@ -2597,7 +2644,7 @@ class AcousticDataTab(QWidget):
print(self.combobox_frequency_information.currentIndex()) print(self.combobox_frequency_information.currentIndex())
print(stg.kt_read) print(stg.kt_read)
# self.spinbox_kt.setValue(stg.kt_read[self.combobox_frequency_information.currentIndex()]) # self.spinbox_kt.setValue(stg.kt_read[self.combobox_frequency_information.currentIndex()])
self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[self.combobox_frequency_information.currentIndex()]) + " V.m^1.5") self.lineEdit_kt.setText(str("%.4f" % stg.kt_read[self.combobox_frequency_information.currentIndex()]))
def activate_unactivate_spinbox_rx(self): def activate_unactivate_spinbox_rx(self):
if self.checkbox_rx.isChecked(): if self.checkbox_rx.isChecked():
@ -2620,15 +2667,21 @@ class AcousticDataTab(QWidget):
# print(f"0 stg.kt_corrected {stg.kt_corrected}") # print(f"0 stg.kt_corrected {stg.kt_corrected}")
if self.fileListWidget.count() > 0: if self.fileListWidget.count() > 0:
if self.checkbox_kt.isChecked(): if self.checkbox_kt.isChecked():
if self.lineEdit_kt.text()[-8:] == " V.m^1.5":
if findall(r",", self.lineEdit_kt.text()):
stg.kt_corrected[self.combobox_frequency_information.currentText()] = ( stg.kt_corrected[self.combobox_frequency_information.currentText()] = (
float(self.lineEdit_kt.text()[:-8])) float(self.lineEdit_kt.text().replace(',', '.')))
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[self.combobox_frequency_information.currentText()]) + " V.m^1.5") self.lineEdit_kt.setText("%.4f" % float(self.lineEdit_kt.text().replace(',', '.')))
else: else:
stg.kt_corrected[self.combobox_frequency_information.currentText()] = ( stg.kt_corrected[self.combobox_frequency_information.currentText()] = (
float(self.lineEdit_kt.text())) float(self.lineEdit_kt.text()))
self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[ self.lineEdit_kt.setText("%.4f" % float(self.lineEdit_kt.text()))
self.combobox_frequency_information.currentText()]) + " V.m^1.5")
# else:
# stg.kt_corrected[self.combobox_frequency_information.currentText()] = (
# float(self.lineEdit_kt.text()))
# self.lineEdit_kt.setText(str("%.4f" % stg.kt_corrected[
# self.combobox_frequency_information.currentText()]))
# print(f"1 stg.kt_read : {stg.kt_read}") # print(f"1 stg.kt_read : {stg.kt_read}")

View File

@ -4,7 +4,7 @@ import matplotlib.pyplot as plt
import pandas as pd import pandas as pd
from PyQt5.QtWidgets import (QWidget, QMainWindow, QApplication, QVBoxLayout, QHBoxLayout, QGroupBox, QComboBox, from PyQt5.QtWidgets import (QWidget, QMainWindow, QApplication, QVBoxLayout, QHBoxLayout, QGroupBox, QComboBox,
QGridLayout, QLabel, QPushButton, QSpinBox, QDoubleSpinBox, QAbstractSpinBox, QSpacerItem, QGridLayout, QLabel, QPushButton, QSpinBox, QDoubleSpinBox, QAbstractSpinBox, QSpacerItem,
QSizePolicy, QSlider, QLineEdit, QDial, QFileDialog, QMessageBox) QSizePolicy, QSlider, QLineEdit, QDial, QFileDialog, QMessageBox, QFrame)
from PyQt5.QtCore import QCoreApplication, Qt, QPropertyAnimation, QSize from PyQt5.QtCore import QCoreApplication, Qt, QPropertyAnimation, QSize
from PyQt5.QtGui import QStandardItemModel, QIcon, QPixmap, QFont from PyQt5.QtGui import QStandardItemModel, QIcon, QPixmap, QFont
@ -228,12 +228,15 @@ class SedimentCalibrationTab(QWidget):
self.groupbox_sediment_calibration.setTitle("Step 3 : Compute Calibration") self.groupbox_sediment_calibration.setTitle("Step 3 : Compute Calibration")
self.verticalLayout_groupbox_sediment_calibration = QVBoxLayout(self.groupbox_sediment_calibration) self.verticalLayout_groupbox_sediment_calibration = QVBoxLayout(self.groupbox_sediment_calibration)
self.horizontalLayout_groupboxes_Import_Compute_Calibration = QHBoxLayout()
self.verticalLayout_groupbox_sediment_calibration.addLayout(self.horizontalLayout_groupboxes_Import_Compute_Calibration)
# --- Groupbox import calibration file --- # --- Groupbox import calibration file ---
self.groupbox_sediment_calibration_import = QGroupBox() self.groupbox_sediment_calibration_import = QGroupBox()
self.groupbox_sediment_calibration_import.setTitle("Import sediment calibration file") self.groupbox_sediment_calibration_import.setTitle("Import sediment calibration file")
self.groupbox_sediment_calibration_import.setCheckable(True) self.groupbox_sediment_calibration_import.setCheckable(True)
self.groupbox_sediment_calibration_import.setChecked(True) self.groupbox_sediment_calibration_import.setChecked(True)
self.verticalLayout_groupbox_sediment_calibration.addWidget(self.groupbox_sediment_calibration_import) self.horizontalLayout_groupboxes_Import_Compute_Calibration.addWidget(self.groupbox_sediment_calibration_import)
self.gridLayout_groupbox_sediment_calibration_import = QGridLayout(self.groupbox_sediment_calibration_import) self.gridLayout_groupbox_sediment_calibration_import = QGridLayout(self.groupbox_sediment_calibration_import)
@ -249,7 +252,7 @@ class SedimentCalibrationTab(QWidget):
self.groupbox_sediment_calibration_compute.setTitle("Compute sediment calibration") self.groupbox_sediment_calibration_compute.setTitle("Compute sediment calibration")
self.groupbox_sediment_calibration_compute.setCheckable(True) self.groupbox_sediment_calibration_compute.setCheckable(True)
self.groupbox_sediment_calibration_compute.setChecked(False) self.groupbox_sediment_calibration_compute.setChecked(False)
self.verticalLayout_groupbox_sediment_calibration.addWidget(self.groupbox_sediment_calibration_compute) self.horizontalLayout_groupboxes_Import_Compute_Calibration.addWidget(self.groupbox_sediment_calibration_compute)
self.gridLayout_groupbox_sediment_calibration_compute = QGridLayout(self.groupbox_sediment_calibration_compute) self.gridLayout_groupbox_sediment_calibration_compute = QGridLayout(self.groupbox_sediment_calibration_compute)
@ -263,79 +266,163 @@ class SedimentCalibrationTab(QWidget):
self.verticalLayout_groupbox_sediment_calibration.addWidget(self.groupbox_sediment_calibration_parameter) self.verticalLayout_groupbox_sediment_calibration.addWidget(self.groupbox_sediment_calibration_parameter)
self.label_temperature = QLabel()
self.label_temperature.setText("T = 0.00 °C")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_temperature, 0, 0, 1, 1)
self.label_freq1 = QLabel("Frequency 1") self.label_freq1 = QLabel("Frequency 1")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_freq1, 1, 1, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_freq1, 1, 1, 1, 2, Qt.AlignCenter)
self.label_freq2 = QLabel("Frequency 2") self.label_freq2 = QLabel("Frequency 2")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_freq2, 1, 2, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_freq2, 1, 3, 1, 2, Qt.AlignCenter)
self.label_kt = QLabel()
self.label_kt.setText("kt")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_kt, 2, 0, 1, 1, Qt.AlignCenter)
self.label_kt_freq1 = QLabel()
self.label_kt_freq1.setText("0.00 V.m^1.5")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_kt_freq1, 2, 1, 1, 2, Qt.AlignCenter)
self.label_kt_freq2 = QLabel()
self.label_kt_freq2.setText("0.00 V.m^1.5")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_kt_freq2, 2, 3, 1, 2, Qt.AlignCenter)
self.horizontalLine = QFrame()
self.horizontalLine.setFrameShape(QFrame.HLine)
self.horizontalLine.setFrameShadow(QFrame.Sunken)
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.horizontalLine, 3, 0, 1, 6)
self.label_ks = QLabel() self.label_ks = QLabel()
self.label_ks.setText("ks") self.label_ks.setText("ks")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_ks, 2, 0, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_ks, 4, 0, 1, 1, Qt.AlignCenter)
self.spinbox_ks_freq1 = QDoubleSpinBox() # self.spinbox_ks_freq1 = QDoubleSpinBox()
self.spinbox_ks_freq1.setDecimals(8) # self.spinbox_ks_freq1.setDecimals(8)
self.spinbox_ks_freq1.setSuffix(" m/kg^0.5") # self.spinbox_ks_freq1.setSuffix(" m/kg^0.5")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_ks_freq1, 2, 1, 1, 1) self.lineEdit_ks_freq1 = QLineEdit()
self.lineEdit_ks_freq1.setMaximumWidth(100)
self.lineEdit_ks_freq1.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_ks_freq1, 4, 1, 1, 1)
self.spinbox_ks_freq2 = QDoubleSpinBox() self.label_ks_freq1_unit = QLabel()
self.spinbox_ks_freq2.setDecimals(8) self.label_ks_freq1_unit.setText("m/kg^0.5")
self.spinbox_ks_freq2.setSuffix(" m/kg^0.5") self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_ks_freq1_unit, 4, 2, 1, 1,
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_ks_freq2, 2, 2, 1, 1) Qt.AlignLeft)
# self.spinbox_ks_freq2 = QDoubleSpinBox()
# self.spinbox_ks_freq2.setDecimals(8)
# self.spinbox_ks_freq2.setSuffix(" m/kg^0.5")
self.lineEdit_ks_freq2 = QLineEdit()
self.lineEdit_ks_freq2.setMaximumWidth(100)
self.lineEdit_ks_freq2.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_ks_freq2, 4, 3, 1, 1)
self.label_ks_freq2_unit = QLabel()
self.label_ks_freq2_unit.setText("m/kg^0.5")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_ks_freq2_unit, 4, 4, 1, 1,
Qt.AlignLeft)
self.label_sv = QLabel() self.label_sv = QLabel()
self.label_sv.setText("sv") self.label_sv.setText("sv")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_sv, 3, 0, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_sv, 5, 0, 1, 1, Qt.AlignCenter)
self.spinbox_sv_freq1 = QDoubleSpinBox() # self.spinbox_sv_freq1 = QDoubleSpinBox()
self.spinbox_sv_freq1.setDecimals(8) # self.spinbox_sv_freq1.setDecimals(8)
self.spinbox_sv_freq1.setSuffix(" /m") # self.spinbox_sv_freq1.setSuffix(" /m")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_sv_freq1, 3, 1, 1, 1) self.lineEdit_sv_freq1 = QLineEdit()
self.lineEdit_sv_freq1.setMaximumWidth(100)
self.lineEdit_sv_freq1.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_sv_freq1, 5, 1, 1, 1)
self.spinbox_sv_freq2 = QDoubleSpinBox() self.label_sv_freq1_unit = QLabel()
self.spinbox_sv_freq2.setDecimals(8) self.label_sv_freq1_unit.setText("/m")
self.spinbox_sv_freq2.setSuffix(" /m") self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_sv_freq1_unit, 5, 2, 1, 1)
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_sv_freq2, 3, 2, 1, 1)
# self.spinbox_sv_freq2 = QDoubleSpinBox()
# self.spinbox_sv_freq2.setDecimals(8)
# self.spinbox_sv_freq2.setSuffix(" /m")
self.lineEdit_sv_freq2 = QLineEdit()
self.lineEdit_sv_freq2.setMaximumWidth(100)
self.lineEdit_sv_freq2.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_sv_freq2, 5, 3, 1, 1)
self.label_sv_freq2_unit = QLabel()
self.label_sv_freq2_unit.setText("/m")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_sv_freq2_unit, 5, 4, 1, 1)
self.label_X = QLabel() self.label_X = QLabel()
self.label_X.setText("X") self.label_X.setText("X")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_X, 4, 0, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_X, 6, 0, 1, 1, Qt.AlignCenter)
self.spinbox_X = QDoubleSpinBox() # self.spinbox_X = QDoubleSpinBox()
self.spinbox_X.setDecimals(2) # self.spinbox_X.setDecimals(2)
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_X, 4, 1, 1, 2) self.lineEdit_X = QLineEdit()
self.lineEdit_X.setMaximumWidth(100)
self.lineEdit_X.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_X, 6, 2, 1, 1, Qt.AlignCenter)
self.label_alphas = QLabel() self.label_alphas = QLabel()
self.label_alphas.setText("\u03B1s") self.label_alphas.setText("\u03B1s")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_alphas, 5, 0, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_alphas, 7, 0, 1, 1, Qt.AlignCenter)
self.spinbox_alphas_freq1 = QDoubleSpinBox() # self.spinbox_alphas_freq1 = QDoubleSpinBox()
self.spinbox_alphas_freq1.setDecimals(4) # self.spinbox_alphas_freq1.setDecimals(4)
self.spinbox_alphas_freq1.setSuffix(" /m") # self.spinbox_alphas_freq1.setSuffix(" /m")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_alphas_freq1, 5, 1, 1, 1) self.lineEdit_alphas_freq1 = QLineEdit()
self.lineEdit_alphas_freq1.setMaximumWidth(100)
self.lineEdit_alphas_freq1.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_alphas_freq1, 7, 1, 1, 1)
self.spinbox_alphas_freq2 = QDoubleSpinBox() self.label_alphas_freq1_unit = QLabel()
self.spinbox_alphas_freq2.setDecimals(4) self.label_alphas_freq1_unit.setText("/m")
self.spinbox_alphas_freq2.setSuffix(" /m") self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_alphas_freq1_unit, 7, 2, 1, 1, Qt.AlignLeft)
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_alphas_freq2, 5, 2, 1, 1)
# self.spinbox_alphas_freq2 = QDoubleSpinBox()
# self.spinbox_alphas_freq2.setDecimals(4)
# self.spinbox_alphas_freq2.setSuffix(" /m")
self.lineEdit_alphas_freq2 = QLineEdit()
self.lineEdit_alphas_freq2.setMaximumWidth(100)
self.lineEdit_alphas_freq2.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_alphas_freq2, 7, 3, 1, 1)
self.label_alphas_freq2_unit = QLabel()
self.label_alphas_freq2_unit.setText("/m")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_alphas_freq2_unit, 7, 4, 1, 1, Qt.AlignLeft)
self.label_zeta = QLabel() self.label_zeta = QLabel()
self.label_zeta.setText("\u03B6") self.label_zeta.setText("\u03B6")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_zeta, 6, 0, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_zeta, 8, 0, 1, 1, Qt.AlignCenter)
self.spinbox_zeta_freq1 = QDoubleSpinBox() # self.spinbox_zeta_freq1 = QDoubleSpinBox()
self.spinbox_zeta_freq1.setDecimals(4) # self.spinbox_zeta_freq1.setDecimals(4)
self.spinbox_zeta_freq1.setSuffix(" /m") # self.spinbox_zeta_freq1.setSuffix(" /m")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_zeta_freq1, 6, 1, 1, 1) self.lineEdit_zeta_freq1 = QLineEdit()
self.lineEdit_zeta_freq1.setMaximumWidth(100)
self.lineEdit_zeta_freq1.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_zeta_freq1, 8, 1, 1, 1)
self.spinbox_zeta_freq2 = QDoubleSpinBox() self.label_zeta_freq1_unit = QLabel()
self.spinbox_zeta_freq2.setDecimals(4) self.label_zeta_freq1_unit.setText("/m")
self.spinbox_zeta_freq2.setSuffix(" /m") self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_zeta_freq1_unit, 8, 2, 1, 1,
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.spinbox_zeta_freq2, 6, 2, 1, 1) Qt.AlignLeft)
# self.spinbox_zeta_freq2 = QDoubleSpinBox()
# self.spinbox_zeta_freq2.setDecimals(4)
# self.spinbox_zeta_freq2.setSuffix(" /m")
self.lineEdit_zeta_freq2 = QLineEdit()
self.lineEdit_zeta_freq2.setMaximumWidth(100)
self.lineEdit_zeta_freq2.setText("0.00")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.lineEdit_zeta_freq2, 8, 3, 1, 1)
self.label_zeta_freq2_unit = QLabel()
self.label_zeta_freq2_unit.setText("/m")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.label_zeta_freq2_unit, 8, 4, 1, 1,
Qt.AlignLeft)
self.pushbutton_save_calibration = QPushButton() self.pushbutton_save_calibration = QPushButton()
self.pushbutton_save_calibration.setText("Save calibration") self.pushbutton_save_calibration.setText("Save calibration")
self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.pushbutton_save_calibration,7, 3, 1, 1) self.gridLayout_groupbox_sediment_calibration_parameter.addWidget(self.pushbutton_save_calibration,9, 5, 1, 1)
# self.groupbox_calibration_compute_size_change() # self.groupbox_calibration_compute_size_change()
@ -364,9 +451,6 @@ class SedimentCalibrationTab(QWidget):
self.gridLayout_groupbox_FCB_option = QGridLayout(self.groupbox_FCB_option) self.gridLayout_groupbox_FCB_option = QGridLayout(self.groupbox_FCB_option)
self.horizontalLayout_groupbox_FCB.addWidget(self.groupbox_FCB_option, 4) self.horizontalLayout_groupbox_FCB.addWidget(self.groupbox_FCB_option, 4)
self.label_temperature = QLabel()
self.label_temperature.setText("Temperature : ")
self.label_frequency_FCB = QLabel() self.label_frequency_FCB = QLabel()
self.label_frequency_FCB.setText("Frequency ") self.label_frequency_FCB.setText("Frequency ")
self.gridLayout_groupbox_FCB_option.addWidget(self.label_frequency_FCB, 0, 0, 1, 2) self.gridLayout_groupbox_FCB_option.addWidget(self.label_frequency_FCB, 0, 0, 1, 2)
@ -498,10 +582,12 @@ class SedimentCalibrationTab(QWidget):
self.combobox_freq1.clear() self.combobox_freq1.clear()
self.combobox_freq1.addItems(stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]) self.combobox_freq1.addItems(stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()])
self.combobox_freq1.currentIndexChanged.connect(self.update_label_freq1_for_calibration) self.combobox_freq1.currentIndexChanged.connect(self.update_label_freq1_for_calibration)
self.combobox_freq1.currentIndexChanged.connect(self.update_label_kt_value_for_calibration)
self.combobox_freq2.clear() self.combobox_freq2.clear()
self.combobox_freq2.addItems(stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()]) self.combobox_freq2.addItems(stg.freq_text[self.combobox_acoustic_data_choice.currentIndex()])
self.combobox_freq2.currentIndexChanged.connect(self.update_label_freq2_for_calibration) self.combobox_freq2.currentIndexChanged.connect(self.update_label_freq2_for_calibration)
self.combobox_freq2.currentIndexChanged.connect(self.update_label_kt_value_for_calibration)
self.combobox_freq2.currentIndexChanged.connect(self.plot_acoustic_recording) self.combobox_freq2.currentIndexChanged.connect(self.plot_acoustic_recording)
self.combobox_fine_sample_choice.clear() self.combobox_fine_sample_choice.clear()
@ -511,6 +597,9 @@ class SedimentCalibrationTab(QWidget):
self.combobox_sand_sample_choice.addItems([s[0] for s in stg.sample_sand]) self.combobox_sand_sample_choice.addItems([s[0] for s in stg.sample_sand])
self.plot_acoustic_recording() self.plot_acoustic_recording()
self.update_label_freq1_for_calibration()
self.update_label_freq2_for_calibration()
self.update_label_kt_value_for_calibration()
def plot_acoustic_recording(self): def plot_acoustic_recording(self):
@ -1127,6 +1216,20 @@ class SedimentCalibrationTab(QWidget):
self.label_freq2.clear() self.label_freq2.clear()
self.label_freq2.setText(self.combobox_freq2.currentText()) self.label_freq2.setText(self.combobox_freq2.currentText())
def update_label_kt_value_for_calibration(self):
self.label_kt_freq1.clear()
print("self.combobox_freq1.currentIndex() ", self.combobox_freq1.currentIndex(), self.combobox_freq1.currentText())
if stg.kt_corrected[self.combobox_freq1.currentText()] != stg.kt_read[self.combobox_freq1.currentIndex()]:
self.label_kt_freq1.setText(str('%.4f' % stg.kt_corrected[self.combobox_freq1.currentText()]))
else:
self.label_kt_freq1.setText(str('%.4f' % stg.kt_read[self.combobox_freq1.currentIndex()]))
self.label_kt_freq2.clear()
if stg.kt_corrected[self.combobox_freq2.currentText()] != stg.kt_read[self.combobox_freq2.currentIndex()]:
self.label_kt_freq2.setText(str('%.4f' % stg.kt_corrected[self.combobox_freq2.currentText()]))
else:
self.label_kt_freq2.setText(str('%.4f' % stg.kt_read[self.combobox_freq2.currentIndex()]))
def read_calibration_file_and_fill_parameter(self): def read_calibration_file_and_fill_parameter(self):
# --- Read calibration file --- # --- Read calibration file ---
data = pd.read_csv(stg.calibration_file[0] + "/" + stg.calibration_file[1], header=0, index_col=0) data = pd.read_csv(stg.calibration_file[0] + "/" + stg.calibration_file[1], header=0, index_col=0)
@ -1163,47 +1266,70 @@ class SedimentCalibrationTab(QWidget):
stg.frequency_for_inversion = (stg.freq[self.combobox_acoustic_data_choice.currentIndex()][index_freq2], stg.frequency_for_inversion = (stg.freq[self.combobox_acoustic_data_choice.currentIndex()][index_freq2],
index_freq2) index_freq2)
self.spinbox_ks_freq1.clear() # self.spinbox_ks_freq1.clear()
self.spinbox_ks_freq1.setValue(float(data.iloc[0][0])) # self.spinbox_ks_freq1.setValue()
self.lineEdit_ks_freq1.clear()
self.lineEdit_ks_freq1.setText(str("%.5f" % float(data.iloc[0][0])) + " m/kg^0.5")
self.spinbox_ks_freq2.clear() # self.spinbox_ks_freq2.clear()
self.spinbox_ks_freq2.setValue(float(data.iloc[0][1])) # self.spinbox_ks_freq2.setValue(float(data.iloc[0][1]))
self.lineEdit_ks_freq2.clear()
self.lineEdit_ks_freq2.setText(str("%.5f" % float(data.iloc[0][1])) + " m/kg^0.5")
stg.ks.clear() stg.ks.clear()
stg.ks = [self.spinbox_ks_freq1.value(), self.spinbox_ks_freq2.value()] # stg.ks = [self.spinbox_ks_freq1.value(), self.spinbox_ks_freq2.value()]
stg.ks = [float(self.lineEdit_ks_freq1.text()), float(self.lineEdit_ks_freq2.text())]
self.spinbox_sv_freq1.clear() # self.spinbox_sv_freq1.clear()
self.spinbox_sv_freq1.setValue(float(data.iloc[1][0])) # self.spinbox_sv_freq1.setValue(float(data.iloc[1][0]))
self.lineEdit_sv_freq1.clear()
self.lineEdit_sv_freq1.setText(str("%.5f" % float(data.iloc[1][0])) + " /m")
self.spinbox_sv_freq2.clear() # self.spinbox_sv_freq2.clear()
self.spinbox_sv_freq2.setValue(float(data.iloc[1][1])) # self.spinbox_sv_freq2.setValue(float(data.iloc[1][1]))
self.lineEdit_sv_freq2.clear()
self.lineEdit_sv_freq2.setText(str("%.5f" % float(data.iloc[1][1])) + " /m")
stg.sv.clear() stg.sv.clear()
stg.sv = [self.spinbox_sv_freq1.value(), self.spinbox_sv_freq2.value()] # stg.sv = [self.spinbox_sv_freq1.value(), self.spinbox_sv_freq2.value()]
stg.sv = [float(self.lineEdit_sv_freq1.text()), float(self.lineEdit_sv_freq2.text())]
self.spinbox_X.clear() # self.spinbox_X.clear()
self.spinbox_X.setValue(float(data.iloc[2][0])) # self.spinbox_X.setValue(float(data.iloc[2][0]))
self.lineEdit_X.clear()
self.lineEdit_X.setText(str("%.2f" % float(data.iloc[2][0])))
stg.X_exponent.clear() stg.X_exponent.clear()
stg.X_exponent.append(self.spinbox_X.value()) # stg.X_exponent.append(self.spinbox_X.value())
stg.X_exponent.append(float(self.lineEdit_X.text()))
self.spinbox_alphas_freq1.clear() # self.spinbox_alphas_freq1.clear()
self.spinbox_alphas_freq1.setValue(float(data.iloc[3][0])) # self.spinbox_alphas_freq1.setValue(float(data.iloc[3][0]))
self.lineEdit_alphas_freq1.clear()
self.lineEdit_alphas_freq1.setText(str("%.5f" % float(data.iloc[3][0])))
self.spinbox_alphas_freq2.clear() # self.spinbox_alphas_freq2.clear()
self.spinbox_alphas_freq2.setValue(float(data.iloc[3][1])) # self.spinbox_alphas_freq2.setValue(float(data.iloc[3][1]))
self.lineEdit_alphas_freq2.clear()
self.lineEdit_alphas_freq2.setText(str("%.5f" % float(data.iloc[3][1])))
stg.alpha_s.clear() stg.alpha_s.clear()
stg.alpha_s = [self.spinbox_alphas_freq1.value(), self.spinbox_alphas_freq2.value()] # stg.alpha_s = [self.spinbox_alphas_freq1.value(), self.spinbox_alphas_freq2.value()]
stg.alpha_s = [float(self.lineEdit_alphas_freq1.text()), float(self.lineEdit_alphas_freq2.text())]
self.spinbox_zeta_freq1.clear() # self.spinbox_zeta_freq1.clear()
self.spinbox_zeta_freq1.setValue(float(data.iloc[4][0])) # self.spinbox_zeta_freq1.setValue(float(data.iloc[4][0]))
self.lineEdit_zeta_freq1.clear()
self.lineEdit_zeta_freq1.setText(str("%.5f" % float(data.iloc[4][0])))
self.spinbox_zeta_freq2.clear() # self.spinbox_zeta_freq2.clear()
self.spinbox_zeta_freq2.setValue(float(data.iloc[4][1])) # self.spinbox_zeta_freq2.setValue(float(data.iloc[4][1]))
self.lineEdit_zeta_freq2.clear()
self.lineEdit_zeta_freq2.setText(str("%.5f" % float(data.iloc[4][1])))
stg.zeta.clear() stg.zeta.clear()
stg.zeta = [self.spinbox_zeta_freq1.value(), self.spinbox_zeta_freq2.value()] # stg.zeta = [self.spinbox_zeta_freq1.value(), self.spinbox_zeta_freq2.value()]
stg.zeta = [float(self.lineEdit_zeta_freq1.text()), float(self.lineEdit_zeta_freq2.text())]
self.compute_depth_2D() self.compute_depth_2D()
self.compute_kt2D_kt3D() self.compute_kt2D_kt3D()
@ -1314,11 +1440,15 @@ class SedimentCalibrationTab(QWidget):
print(f"ks for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex()]} : {ks_freq1} m/kg^0.5 \n") print(f"ks for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex()]} : {ks_freq1} m/kg^0.5 \n")
print(f"ks for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex()]} : {ks_freq2} m/kg^0.5") print(f"ks for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex()]} : {ks_freq2} m/kg^0.5")
self.spinbox_ks_freq1.clear() # self.spinbox_ks_freq1.clear()
self.spinbox_ks_freq1.setValue(ks_freq1) # self.spinbox_ks_freq1.setValue(ks_freq1)
self.lineEdit_ks_freq1.clear()
self.lineEdit_ks_freq1.setText(str("%.5f" % ks_freq1))
self.spinbox_ks_freq2.clear() # self.spinbox_ks_freq2.clear()
self.spinbox_ks_freq2.setValue(ks_freq2) # self.spinbox_ks_freq2.setValue(ks_freq2)
self.lineEdit_ks_freq2.clear()
self.lineEdit_ks_freq2.setText(str("%.5f" % ks_freq2))
def compute_sv(self): def compute_sv(self):
@ -1331,11 +1461,15 @@ class SedimentCalibrationTab(QWidget):
print(f"sv for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex()]} : {sv_freq1:.8f} /m \n") print(f"sv for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex()]} : {sv_freq1:.8f} /m \n")
print(f"sv for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex()]} : {sv_freq2:.8f} /m") print(f"sv for frequency of {stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex()]} : {sv_freq2:.8f} /m")
self.spinbox_sv_freq1.clear() # self.spinbox_sv_freq1.clear()
self.spinbox_sv_freq1.setValue(sv_freq1) # self.spinbox_sv_freq1.setValue(sv_freq1)
self.lineEdit_sv_freq1.clear()
self.lineEdit_sv_freq1.setText(str("%.5f" % sv_freq1))
self.spinbox_sv_freq2.clear() # self.spinbox_sv_freq2.clear()
self.spinbox_sv_freq2.setValue(sv_freq2) # self.spinbox_sv_freq2.setValue(sv_freq2)
self.lineEdit_sv_freq2.clear()
self.lineEdit_sv_freq2.setText(str("%.5f" % sv_freq2))
def compute_X(self): def compute_X(self):
@ -1349,8 +1483,9 @@ class SedimentCalibrationTab(QWidget):
print(f"Exponent X = {X_exponent:.2f}\n") print(f"Exponent X = {X_exponent:.2f}\n")
self.spinbox_X.clear() # self.spinbox_X.clear()
self.spinbox_X.setValue(X_exponent) # self.spinbox_X.setValue(X_exponent)
self.lineEdit_X.setText(str("%.2f" % X_exponent))
def compute_kt2D_kt3D(self): def compute_kt2D_kt3D(self):
@ -1814,11 +1949,15 @@ class SedimentCalibrationTab(QWidget):
print(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")
print(f"\u03B1s for frequency of freq2 : {alpha_s_freq2:.2f} /m") print(f"\u03B1s for frequency of freq2 : {alpha_s_freq2:.2f} /m")
self.spinbox_alphas_freq1.clear() # self.spinbox_alphas_freq1.clear()
self.spinbox_alphas_freq1.setValue(alpha_s_freq1) # self.spinbox_alphas_freq1.setValue(alpha_s_freq1)
self.lineEdit_alphas_freq1.clear()
self.lineEdit_alphas_freq1.setText(str("%.5f" % alpha_s_freq1))
self.spinbox_alphas_freq2.clear() # self.spinbox_alphas_freq2.clear()
self.spinbox_alphas_freq2.setValue(alpha_s_freq2) # self.spinbox_alphas_freq2.setValue(alpha_s_freq2)
self.lineEdit_alphas_freq2.clear()
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):
@ -1878,11 +2017,15 @@ class SedimentCalibrationTab(QWidget):
print(f"\u03B6 for frequency of freq1 : {zeta_freq1:.3f} /m \n") print(f"\u03B6 for frequency of freq1 : {zeta_freq1:.3f} /m \n")
print(f"\u03B6 for frequency of freq2 : {zeta_freq2:.3f} /m") print(f"\u03B6 for frequency of freq2 : {zeta_freq2:.3f} /m")
self.spinbox_zeta_freq1.clear() # self.spinbox_zeta_freq1.clear()
self.spinbox_zeta_freq1.setValue(zeta_freq1) # self.spinbox_zeta_freq1.setValue(zeta_freq1)
self.lineEdit_zeta_freq1.clear()
self.lineEdit_zeta_freq1.setText(str("%.5f" % zeta_freq1))
self.spinbox_zeta_freq2.clear() # self.spinbox_zeta_freq2.clear()
self.spinbox_zeta_freq2.setValue(zeta_freq2) # self.spinbox_zeta_freq2.setValue(zeta_freq2)
self.lineEdit_zeta_freq2.clear()
self.lineEdit_zeta_freq2.setText(str("%.5f" % zeta_freq2))
def save_calibration(self): def save_calibration(self):