Acoustic inversion tab display results of the inversion computation for both, fine and sand sediments. The user can visualize the concentrations fields, plot vertical profiles of the concentrations and choose samples to compare measured SSC vs inverted SSC.
parent
d38a65f2c6
commit
66f62765a1
|
|
@ -2157,7 +2157,8 @@ class AcousticDataTab(QWidget):
|
|||
stg.BS_raw_data.append(acoustic_data._BS_raw_data)
|
||||
stg.BS_raw_data_reshape.append(acoustic_data.reshape_BS_raw_data())
|
||||
stg.depth.append(acoustic_data._r)
|
||||
stg.depth_2D.append(acoustic_data.compute_r_2D())
|
||||
# stg.depth_2D.append(acoustic_data.compute_r_2D())
|
||||
stg.depth_2D.append(np.array([]))
|
||||
stg.depth_reshape.append(acoustic_data.reshape_r())
|
||||
stg.time.append(acoustic_data._time)
|
||||
stg.time_reshape.append(acoustic_data.reshape_t())
|
||||
|
|
@ -2225,6 +2226,16 @@ class AcousticDataTab(QWidget):
|
|||
stg.BS_stream_bed_pre_process_average.append(np.array([]))
|
||||
stg.BS_stream_bed_pre_process_SNR_average.append(np.array([]))
|
||||
|
||||
stg.frequencies_for_calibration.append([])
|
||||
stg.frequency_for_inversion.append([])
|
||||
|
||||
stg.fine_sample_position.append([])
|
||||
stg.sand_sample_position.append([])
|
||||
|
||||
stg.VBI_cross_section.append(np.array([]))
|
||||
stg.SSC_fine.append(np.array([]))
|
||||
stg.SSC_sand.append(np.array([]))
|
||||
|
||||
# if self.fileListWidget.count() == 0:
|
||||
#
|
||||
# stg.ABS_name = [self.combobox_ABS_system_choice.currentText()]
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load Diff
|
|
@ -277,12 +277,18 @@ class SedimentCalibrationTab(QWidget):
|
|||
def plot_acoustic_recording(self):
|
||||
|
||||
# --- Record frequencies for calibration ---
|
||||
stg.frequencies_for_calibration.append((stg.freq[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq1.currentIndex()],
|
||||
self.combobox_freq1.currentIndex()))
|
||||
stg.frequencies_for_calibration.append((stg.freq[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq2.currentIndex()],
|
||||
self.combobox_freq2.currentIndex()))
|
||||
stg.frequencies_for_calibration[self.combobox_acoustic_data_choice.currentIndex()].clear()
|
||||
(stg.frequencies_for_calibration[self.combobox_acoustic_data_choice.currentIndex()].
|
||||
append((stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex()],
|
||||
self.combobox_freq1.currentIndex())))
|
||||
(stg.frequencies_for_calibration[self.combobox_acoustic_data_choice.currentIndex()].
|
||||
append((stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex()],
|
||||
self.combobox_freq2.currentIndex())))
|
||||
|
||||
stg.frequency_for_inversion[self.combobox_acoustic_data_choice.currentIndex()].clear()
|
||||
stg.frequency_for_inversion[self.combobox_acoustic_data_choice.currentIndex()].append((
|
||||
stg.freq[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex()],
|
||||
self.combobox_freq2.currentIndex()))
|
||||
|
||||
# --- Plot acoustic data recording ---
|
||||
self.verticalLayout_groupbox_acoustic_data.removeWidget(self.canvas_BS)
|
||||
|
|
@ -705,12 +711,14 @@ class SedimentCalibrationTab(QWidget):
|
|||
# --- Compute J ---
|
||||
if stg.BS_stream_bed[self.combobox_acoustic_data_choice.currentIndex()].shape != (0,):
|
||||
|
||||
depth_2D = np.zeros(stg.BS_stream_bed[self.combobox_acoustic_data_choice.currentIndex()].shape)
|
||||
stg.depth_2D[self.combobox_acoustic_data_choice.currentIndex()] = (
|
||||
np.zeros(stg.BS_stream_bed[self.combobox_acoustic_data_choice.currentIndex()].shape))
|
||||
for f, _ in enumerate(stg.freq[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
depth_2D[f, :, :] = np.repeat(np.transpose(stg.depth_cross_section[self.combobox_acoustic_data_choice.currentIndex()]
|
||||
stg.depth_2D[self.combobox_acoustic_data_choice.currentIndex()][f, :, :] = (
|
||||
np.repeat(np.transpose(stg.depth_cross_section[self.combobox_acoustic_data_choice.currentIndex()]
|
||||
[self.combobox_freq1.currentIndex()])[:, np.newaxis],
|
||||
stg.time_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
axis=1)
|
||||
axis=1))
|
||||
|
||||
print("kt cor ", stg.kt_corrected)
|
||||
print("kt read", stg.kt_read)
|
||||
|
|
@ -736,20 +744,20 @@ class SedimentCalibrationTab(QWidget):
|
|||
|
||||
J_cross_section_freq1 = self.inv_hc.j_cross_section(
|
||||
BS=stg.BS_stream_bed[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex(), :, :],
|
||||
r2D=depth_2D[self.combobox_freq1.currentIndex(), :, :],
|
||||
r2D=stg.depth_2D[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq1.currentIndex(), :, :],
|
||||
kt=kt3D[self.combobox_freq1.currentIndex(), :, :])
|
||||
|
||||
J_cross_section_freq2 = self.inv_hc.j_cross_section(
|
||||
BS=stg.BS_stream_bed[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq2.currentIndex(), :, :],
|
||||
r2D=depth_2D[self.combobox_freq2.currentIndex(), :, :],
|
||||
r2D=stg.depth_2D[self.combobox_acoustic_data_choice.currentIndex()][self.combobox_freq2.currentIndex(), :, :],
|
||||
kt=kt3D[self.combobox_freq2.currentIndex(), :, :])
|
||||
|
||||
elif stg.BS_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape != (0,):
|
||||
|
||||
depth_2D = np.zeros(stg.BS_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape)
|
||||
stg.depth_2D[self.combobox_acoustic_data_choice.currentIndex()] = np.zeros(stg.BS_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape)
|
||||
for f, _ in enumerate(stg.freq[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
depth_2D[f, :, :] = np.repeat(
|
||||
stg.depth_2D[self.combobox_acoustic_data_choice.currentIndex()][f, :, :] = np.repeat(
|
||||
np.transpose(stg.depth_cross_section[self.combobox_acoustic_data_choice.currentIndex()]
|
||||
[self.combobox_freq1.currentIndex()])[:, np.newaxis],
|
||||
stg.time_cross_section[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
|
|
@ -771,20 +779,20 @@ class SedimentCalibrationTab(QWidget):
|
|||
J_cross_section_freq1 = self.inv_hc.j_cross_section(
|
||||
BS=stg.BS_cross_section[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq1.currentIndex(), :, :],
|
||||
r2D=depth_2D[self.combobox_freq1.currentIndex(), :, :],
|
||||
r2D=stg.depth_2D[self.combobox_freq1.currentIndex(), :, :][self.combobox_freq1.currentIndex(), :, :],
|
||||
kt=kt3D[self.combobox_freq1.currentIndex(), :, :])
|
||||
|
||||
J_cross_section_freq2 = self.inv_hc.j_cross_section(
|
||||
BS=stg.BS_cross_section[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq2.currentIndex(), :, :],
|
||||
r2D=depth_2D[self.combobox_freq2.currentIndex(), :, :],
|
||||
r2D=stg.depth_2D[self.combobox_freq2.currentIndex(), :, :][self.combobox_freq2.currentIndex(), :, :],
|
||||
kt=kt3D[self.combobox_freq2.currentIndex(), :, :])
|
||||
|
||||
else:
|
||||
|
||||
depth_2D = np.zeros(stg.BS_raw_data[self.combobox_acoustic_data_choice.currentIndex()].shape)
|
||||
stg.depth_2D = np.zeros(stg.BS_raw_data[self.combobox_acoustic_data_choice.currentIndex()].shape)
|
||||
for f, _ in enumerate(stg.freq[self.combobox_acoustic_data_choice.currentIndex()]):
|
||||
depth_2D[f, :, :] = np.repeat(
|
||||
stg.depth_2D[f, :, :] = np.repeat(
|
||||
np.transpose(stg.depth[self.combobox_acoustic_data_choice.currentIndex()]
|
||||
[self.combobox_freq1.currentIndex()])[:, np.newaxis],
|
||||
stg.time[self.combobox_acoustic_data_choice.currentIndex()].shape[1],
|
||||
|
|
@ -806,17 +814,15 @@ class SedimentCalibrationTab(QWidget):
|
|||
J_cross_section_freq1 = self.inv_hc.j_cross_section(
|
||||
BS=stg.BS_raw_data[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq1.currentIndex(), :, :],
|
||||
r2D=depth_2D[self.combobox_freq1.currentIndex(), :, :],
|
||||
r2D=stg.depth_2D[self.combobox_freq1.currentIndex(), :, :],
|
||||
kt=kt3D[self.combobox_freq1.currentIndex(), :, :])
|
||||
|
||||
J_cross_section_freq2 = self.inv_hc.j_cross_section(
|
||||
BS=stg.BS_raw_data[self.combobox_acoustic_data_choice.currentIndex()][
|
||||
self.combobox_freq2.currentIndex(), :, :],
|
||||
r2D=depth_2D[self.combobox_freq2.currentIndex(), :, :],
|
||||
r2D=stg.depth_2D[self.combobox_freq2.currentIndex(), :, :],
|
||||
kt=kt3D[self.combobox_freq2.currentIndex(), :, :])
|
||||
|
||||
stg.depth_2D = depth_2D
|
||||
|
||||
stg.J_cross_section.append(J_cross_section_freq1)
|
||||
stg.J_cross_section.append(J_cross_section_freq2)
|
||||
|
||||
|
|
@ -909,3 +915,5 @@ class SedimentCalibrationTab(QWidget):
|
|||
self.spinbox_zeta_freq2.clear()
|
||||
self.spinbox_zeta_freq2.setValue(zeta_freq2)
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
11
settings.py
11
settings.py
|
|
@ -153,6 +153,9 @@ sand_sample_target_indice = []
|
|||
Ctot_fine_per_cent = []
|
||||
Ctot_sand_per_cent = []
|
||||
|
||||
fine_sample_position = []
|
||||
sand_sample_position = []
|
||||
|
||||
# --- Acoustic inversion method ---
|
||||
|
||||
temperature = []
|
||||
|
|
@ -164,8 +167,8 @@ water_velocity = []
|
|||
# kt_corrected_3D = np.array([])
|
||||
|
||||
frequencies_to_compute_VBI = np.array([])
|
||||
VBI_cross_section = np.array([])
|
||||
VBI_stream_bed = np.array([[[]]])
|
||||
VBI_cross_section = []
|
||||
# VBI_stream_bed = np.array([[[]]])
|
||||
|
||||
# --- Sediment Calibration
|
||||
frequencies_for_calibration = []
|
||||
|
|
@ -183,8 +186,8 @@ J_cross_section = []
|
|||
|
||||
frequency_for_inversion = []
|
||||
|
||||
SSC_fine = np.array([[]])
|
||||
SSC_sand = np.array([[]])
|
||||
SSC_fine = []
|
||||
SSC_sand = []
|
||||
|
||||
# --- Save study ---
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue