Sediment calibration: Recompute kt2D/kt3D and J_cross_section at study open.
parent
660a09b09a
commit
c60db3c346
|
|
@ -20,11 +20,16 @@
|
||||||
|
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import settings as stg
|
import settings as stg
|
||||||
from Model.GrainSizeTools import demodul_granulo, mix_gaussian_model
|
from Model.GrainSizeTools import demodul_granulo, mix_gaussian_model
|
||||||
|
|
||||||
|
from tools import trace
|
||||||
|
|
||||||
|
logger = logging.getLogger("acoused")
|
||||||
|
|
||||||
|
|
||||||
class AcousticInversionMethodHighConcentration():
|
class AcousticInversionMethodHighConcentration():
|
||||||
|
|
||||||
|
|
@ -203,7 +208,6 @@ class AcousticInversionMethodHighConcentration():
|
||||||
r2D,
|
r2D,
|
||||||
water_attenuation_freq1, water_attenuation_freq2,
|
water_attenuation_freq1, water_attenuation_freq2,
|
||||||
X):
|
X):
|
||||||
|
|
||||||
logVBI = ((zeta_freq2 *
|
logVBI = ((zeta_freq2 *
|
||||||
np.log(j_cross_section_freq1 * np.exp(4 * r2D * water_attenuation_freq1) /
|
np.log(j_cross_section_freq1 * np.exp(4 * r2D * water_attenuation_freq1) /
|
||||||
(freq1 ** X)) -
|
(freq1 ** X)) -
|
||||||
|
|
@ -223,5 +227,3 @@ class AcousticInversionMethodHighConcentration():
|
||||||
def SSC_sand(self, VBI, freq, X, ks):
|
def SSC_sand(self, VBI, freq, X, ks):
|
||||||
SSC_sand = (16 * np.pi * VBI * freq ** X) / (3 * ks**2)
|
SSC_sand = (16 * np.pi * VBI * freq ** X) / (3 * ks**2)
|
||||||
return SSC_sand
|
return SSC_sand
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -870,6 +870,9 @@ class SedimentCalibrationTab(QWidget):
|
||||||
self._update_calibration()
|
self._update_calibration()
|
||||||
self.function_pushbutton_plot_sample()
|
self.function_pushbutton_plot_sample()
|
||||||
|
|
||||||
|
self.compute_kt2D_kt3D()
|
||||||
|
self.compute_J_cross_section()
|
||||||
|
|
||||||
self.blockSignals(False)
|
self.blockSignals(False)
|
||||||
|
|
||||||
def _update_calibration_parameters(self):
|
def _update_calibration_parameters(self):
|
||||||
|
|
@ -1020,9 +1023,7 @@ class SedimentCalibrationTab(QWidget):
|
||||||
|
|
||||||
stg.frequency_for_inversion = tuple()
|
stg.frequency_for_inversion = tuple()
|
||||||
stg.frequency_for_inversion = (
|
stg.frequency_for_inversion = (
|
||||||
stg.freq[data_id][
|
stg.freq[data_id][freq2],
|
||||||
freq2
|
|
||||||
],
|
|
||||||
freq2
|
freq2
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -1030,7 +1031,8 @@ class SedimentCalibrationTab(QWidget):
|
||||||
self.verticalLayout_groupbox_data_plot.removeWidget(self.toolbar_BS)
|
self.verticalLayout_groupbox_data_plot.removeWidget(self.toolbar_BS)
|
||||||
self.verticalLayout_groupbox_data_plot.removeWidget(self.canvas_BS)
|
self.verticalLayout_groupbox_data_plot.removeWidget(self.canvas_BS)
|
||||||
self.fig_BS, self.axis_BS = plt.subplots(
|
self.fig_BS, self.axis_BS = plt.subplots(
|
||||||
nrows=1, ncols=1, sharex=True, sharey=False, layout='constrained'
|
nrows=1, ncols=1, sharex=True, sharey=False,
|
||||||
|
layout='constrained'
|
||||||
)
|
)
|
||||||
self.canvas_BS = FigureCanvas(self.fig_BS)
|
self.canvas_BS = FigureCanvas(self.fig_BS)
|
||||||
self.toolbar_BS = NavigationToolBar(self.canvas_BS, self)
|
self.toolbar_BS = NavigationToolBar(self.canvas_BS, self)
|
||||||
|
|
@ -1041,18 +1043,10 @@ class SedimentCalibrationTab(QWidget):
|
||||||
data_id
|
data_id
|
||||||
].shape != (0,):
|
].shape != (0,):
|
||||||
val_min = np.nanmin(
|
val_min = np.nanmin(
|
||||||
stg.BS_stream_bed_pre_process_average[
|
stg.BS_stream_bed_pre_process_average[data_id][freq2, :, :]
|
||||||
data_id
|
|
||||||
][
|
|
||||||
freq2, :, :
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
val_max = np.nanmax(
|
val_max = np.nanmax(
|
||||||
stg.BS_stream_bed_pre_process_average[
|
stg.BS_stream_bed_pre_process_average[data_id][freq2, :, :]
|
||||||
data_id
|
|
||||||
][
|
|
||||||
freq2, :, :
|
|
||||||
]
|
|
||||||
)
|
)
|
||||||
if val_min == 0:
|
if val_min == 0:
|
||||||
val_min = 1e-5
|
val_min = 1e-5
|
||||||
|
|
@ -1060,13 +1054,13 @@ class SedimentCalibrationTab(QWidget):
|
||||||
if stg.time_cross_section[data_id].shape != (0,):
|
if stg.time_cross_section[data_id].shape != (0,):
|
||||||
if stg.depth_cross_section[data_id].shape != (0,):
|
if stg.depth_cross_section[data_id].shape != (0,):
|
||||||
self.axis_BS.pcolormesh(
|
self.axis_BS.pcolormesh(
|
||||||
stg.time_cross_section[data_id][
|
stg.time_cross_section[data_id][freq2, :],
|
||||||
freq2, :],
|
-stg.depth_cross_section[data_id][freq2, :],
|
||||||
-stg.depth_cross_section[data_id][
|
|
||||||
freq2, :],
|
|
||||||
stg.BS_stream_bed_pre_process_average[data_id][
|
stg.BS_stream_bed_pre_process_average[data_id][
|
||||||
freq2, :, :],
|
freq2, :, :],
|
||||||
cmap='viridis', norm=LogNorm(vmin=val_min, vmax=val_max))
|
cmap='viridis',
|
||||||
|
norm=LogNorm(vmin=val_min, vmax=val_max)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
self.axis_BS.pcolormesh(
|
self.axis_BS.pcolormesh(
|
||||||
stg.time_cross_section[data_id][
|
stg.time_cross_section[data_id][
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue