Compare commits
No commits in common. "42e104cba94d69ff93ae4702076979bf002693b3" and "0dd38af7a92b33f76c9ba6a25592102ff93c96c8" have entirely different histories.
42e104cba9
...
0dd38af7a9
|
|
@ -22,7 +22,6 @@
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import gc
|
import gc
|
||||||
import time
|
|
||||||
import logging
|
import logging
|
||||||
import numpy as np
|
import numpy as np
|
||||||
import pandas as pd
|
import pandas as pd
|
||||||
|
|
@ -1036,7 +1035,7 @@ class AcousticInversionTab(QWidget):
|
||||||
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_fine\
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_fine\
|
||||||
.addWidget(self.canvas_inverted_vs_measured_SSC_fine)
|
.addWidget(self.canvas_inverted_vs_measured_SSC_fine)
|
||||||
|
|
||||||
if stg.SSC_fine[data_id].shape != (0,):
|
if stg.SSC_fine[data_id].shape == (0,):
|
||||||
fine_id = self.combobox_fine_sample_choice.currentData()
|
fine_id = self.combobox_fine_sample_choice.currentData()
|
||||||
|
|
||||||
self.fine_sample_to_plot = [
|
self.fine_sample_to_plot = [
|
||||||
|
|
@ -1552,122 +1551,124 @@ class AcousticInversionTab(QWidget):
|
||||||
)
|
)
|
||||||
|
|
||||||
def plot_measured_vs_inverted_SSC_sand(self):
|
def plot_measured_vs_inverted_SSC_sand(self):
|
||||||
data_id = self.combobox_acoustic_data_choice.currentIndex()
|
|
||||||
|
|
||||||
if self.combobox_acoustic_data_choice.count() <= 0:
|
if self.combobox_acoustic_data_choice.count() > 0:
|
||||||
return
|
|
||||||
|
|
||||||
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand\
|
if stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()].shape == (0,):
|
||||||
.removeWidget(self.toolbar_inverted_vs_measured_SSC_sand)
|
|
||||||
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand\
|
|
||||||
.removeWidget(self.canvas_inverted_vs_measured_SSC_sand)
|
|
||||||
|
|
||||||
if stg.SSC_sand[data_id].shape == (0,):
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.removeWidget(
|
||||||
self.canvas_inverted_vs_measured_SSC_sand = FigureCanvas()
|
self.toolbar_inverted_vs_measured_SSC_sand)
|
||||||
self.toolbar_inverted_vs_measured_SSC_sand = NavigationToolBar(
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.removeWidget(
|
||||||
self.canvas_inverted_vs_measured_SSC_sand, self
|
self.canvas_inverted_vs_measured_SSC_sand)
|
||||||
)
|
|
||||||
else:
|
|
||||||
if self.figure_measured_vs_inverted_sand is not None:
|
|
||||||
self.figure_measured_vs_inverted_sand.clear()
|
|
||||||
plt.close(fig=self.figure_measured_vs_inverted_sand)
|
|
||||||
|
|
||||||
fig, ax = plt.subplots(nrows=1, ncols=1, layout="constrained")
|
self.canvas_inverted_vs_measured_SSC_sand = FigureCanvas()
|
||||||
|
self.toolbar_inverted_vs_measured_SSC_sand = NavigationToolBar(
|
||||||
|
self.canvas_inverted_vs_measured_SSC_sand, self)
|
||||||
|
|
||||||
self.figure_measured_vs_inverted_sand = fig
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.addWidget(
|
||||||
self.axis_measured_vs_inverted_sand = ax
|
self.toolbar_inverted_vs_measured_SSC_sand)
|
||||||
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.addWidget(
|
||||||
|
self.canvas_inverted_vs_measured_SSC_sand)
|
||||||
|
|
||||||
self.canvas_inverted_vs_measured_SSC_sand = FigureCanvas(
|
|
||||||
self.figure_measured_vs_inverted_sand
|
|
||||||
)
|
|
||||||
self.toolbar_inverted_vs_measured_SSC_sand = NavigationToolBar(
|
|
||||||
self.canvas_inverted_vs_measured_SSC_sand, self
|
|
||||||
)
|
|
||||||
|
|
||||||
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand\
|
|
||||||
.addWidget(self.toolbar_inverted_vs_measured_SSC_sand)
|
|
||||||
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand\
|
|
||||||
.addWidget(self.canvas_inverted_vs_measured_SSC_sand)
|
|
||||||
|
|
||||||
if stg.SSC_sand[data_id].shape != (0,):
|
|
||||||
sand_id = self.combobox_sand_sample_choice.currentData()
|
|
||||||
|
|
||||||
self.sand_sample_to_plot = [
|
|
||||||
int(f[1:]) - 1 for f in sand_id
|
|
||||||
]
|
|
||||||
|
|
||||||
if self.sand_sample_to_plot:
|
|
||||||
sand_range = lambda : self.sand_sample_to_plot
|
|
||||||
else:
|
else:
|
||||||
sand_range = lambda : range(len(stg.sample_sand))
|
|
||||||
|
|
||||||
self.axis_measured_vs_inverted_sand.plot(
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.removeWidget(
|
||||||
[stg.Ctot_sand[k] for k in sand_range()],
|
self.toolbar_inverted_vs_measured_SSC_sand)
|
||||||
[
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.removeWidget(
|
||||||
stg.SSC_sand[data_id][
|
self.canvas_inverted_vs_measured_SSC_sand)
|
||||||
stg.sand_sample_position[k][1],
|
|
||||||
stg.sand_sample_position[k][0]
|
|
||||||
] for k in sand_range()
|
|
||||||
],
|
|
||||||
ls=" ", marker='o', ms=5, mec='black', mfc="black"
|
|
||||||
)
|
|
||||||
|
|
||||||
self.axis_measured_vs_inverted_sand.plot(
|
if self.figure_measured_vs_inverted_sand is not None:
|
||||||
[
|
self.figure_measured_vs_inverted_sand.clear()
|
||||||
0, np.nanmax(
|
plt.close(fig=self.figure_measured_vs_inverted_sand)
|
||||||
[
|
|
||||||
np.nanmax(
|
|
||||||
[stg.Ctot_sand[c] for c in sand_range()]
|
|
||||||
),
|
|
||||||
np.nanmax(
|
|
||||||
[
|
|
||||||
stg.SSC_sand[data_id][
|
|
||||||
stg.sand_sample_position[i][1],
|
|
||||||
stg.sand_sample_position[i][0]
|
|
||||||
] for i in sand_range()
|
|
||||||
]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
) + 1
|
|
||||||
],
|
|
||||||
[
|
|
||||||
0, np.nanmax(
|
|
||||||
[
|
|
||||||
np.nanmax(
|
|
||||||
[stg.Ctot_sand[c] for c in sand_range()]
|
|
||||||
),
|
|
||||||
np.nanmax(
|
|
||||||
[
|
|
||||||
stg.SSC_sand[data_id][
|
|
||||||
stg.sand_sample_position[i][1],
|
|
||||||
stg.sand_sample_position[i][0]
|
|
||||||
] for i in sand_range()
|
|
||||||
]
|
|
||||||
)
|
|
||||||
]
|
|
||||||
) + 1
|
|
||||||
],
|
|
||||||
ls="solid", linewidth=1, color="k"
|
|
||||||
)
|
|
||||||
|
|
||||||
# --- Display sample label on plot ---
|
fig, ax = plt.subplots(nrows=1, ncols=1, layout="constrained")
|
||||||
for i in sand_range():
|
self.figure_measured_vs_inverted_sand = fig
|
||||||
self.axis_measured_vs_inverted_sand.text(
|
self.axis_measured_vs_inverted_sand = ax
|
||||||
stg.Ctot_sand[i],
|
|
||||||
stg.SSC_sand[data_id][
|
|
||||||
stg.sand_sample_position[i][1],
|
|
||||||
stg.sand_sample_position[i][0]
|
|
||||||
],
|
|
||||||
stg.sample_sand[i][0],
|
|
||||||
fontstyle="normal", fontweight="light", fontsize=10
|
|
||||||
)
|
|
||||||
|
|
||||||
self.axis_measured_vs_inverted_sand\
|
|
||||||
.set_xlabel("Measured SSC sand (g/L)")
|
|
||||||
self.axis_measured_vs_inverted_sand\
|
|
||||||
.set_ylabel("Inverted SSC sand (g/L)")
|
|
||||||
|
|
||||||
self.figure_measured_vs_inverted_sand.canvas.draw_idle()
|
self.canvas_inverted_vs_measured_SSC_sand = FigureCanvas(self.figure_measured_vs_inverted_sand)
|
||||||
|
self.toolbar_inverted_vs_measured_SSC_sand = NavigationToolBar(self.canvas_inverted_vs_measured_SSC_sand, self)
|
||||||
|
|
||||||
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.addWidget(
|
||||||
|
self.toolbar_inverted_vs_measured_SSC_sand)
|
||||||
|
self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.addWidget(
|
||||||
|
self.canvas_inverted_vs_measured_SSC_sand)
|
||||||
|
|
||||||
|
self.sand_sample_to_plot = [int(f[1:]) - 1 for f in self.combobox_sand_sample_choice.currentData()]
|
||||||
|
|
||||||
|
if self.sand_sample_to_plot:
|
||||||
|
|
||||||
|
self.axis_measured_vs_inverted_sand.plot(
|
||||||
|
[stg.Ctot_sand[k] for k in self.sand_sample_to_plot],
|
||||||
|
[stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[k][1],
|
||||||
|
stg.sand_sample_position[k][0]] for k in
|
||||||
|
self.sand_sample_to_plot],
|
||||||
|
ls=" ", marker='o', ms=5, mec='black', mfc="black"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.axis_measured_vs_inverted_sand.plot(
|
||||||
|
[0, np.nanmax([np.nanmax([stg.Ctot_sand[c] for c in self.sand_sample_to_plot]),
|
||||||
|
np.nanmax([stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[i][1],
|
||||||
|
stg.sand_sample_position[i][0]]
|
||||||
|
for i in self.sand_sample_to_plot])]) + 1],
|
||||||
|
[0, np.nanmax([np.nanmax([stg.Ctot_sand[c] for c in self.sand_sample_to_plot]),
|
||||||
|
np.nanmax([stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[i][1],
|
||||||
|
stg.sand_sample_position[i][0]]
|
||||||
|
for i in self.sand_sample_to_plot])]) + 1],
|
||||||
|
ls="solid", linewidth=1, color="k"
|
||||||
|
)
|
||||||
|
|
||||||
|
# --- Display sample label on plot ---
|
||||||
|
for i in self.sand_sample_to_plot:
|
||||||
|
self.axis_measured_vs_inverted_sand.text(
|
||||||
|
stg.Ctot_sand[i],
|
||||||
|
stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[i][1],
|
||||||
|
stg.sand_sample_position[i][0]],
|
||||||
|
stg.sample_sand[i][0],
|
||||||
|
fontstyle="normal", fontweight="light", fontsize=10)
|
||||||
|
|
||||||
|
else:
|
||||||
|
|
||||||
|
self.axis_measured_vs_inverted_sand.plot(
|
||||||
|
[stg.Ctot_sand[k] for k in range(len(stg.sample_sand))],
|
||||||
|
[stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[k][1],
|
||||||
|
stg.sand_sample_position[k][0]] for k in
|
||||||
|
range(len(stg.sample_sand))],
|
||||||
|
ls=" ", marker='o', ms=5, mec='black', mfc="black"
|
||||||
|
)
|
||||||
|
|
||||||
|
self.axis_measured_vs_inverted_sand.plot(
|
||||||
|
[0, np.nanmax([np.nanmax([stg.Ctot_sand[c] for c in range(len(stg.sample_sand))]),
|
||||||
|
np.nanmax([stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[i][1],
|
||||||
|
stg.sand_sample_position[i][0]]
|
||||||
|
for i in range(len(stg.sample_sand))])]) + 1],
|
||||||
|
[0, np.nanmax([np.nanmax([stg.Ctot_sand[c] for c in range(len(stg.sample_sand))]),
|
||||||
|
np.nanmax([stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[i][1],
|
||||||
|
stg.sand_sample_position[i][0]]
|
||||||
|
for i in range(len(stg.sample_sand))])]) + 1],
|
||||||
|
ls="solid", linewidth=1, color="k"
|
||||||
|
)
|
||||||
|
|
||||||
|
for j in range(len(stg.sample_sand)):
|
||||||
|
self.axis_measured_vs_inverted_sand.text(
|
||||||
|
stg.Ctot_sand[j],
|
||||||
|
stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()][
|
||||||
|
stg.sand_sample_position[j][1],
|
||||||
|
stg.sand_sample_position[j][0]],
|
||||||
|
stg.sample_sand[j][0],
|
||||||
|
fontstyle="normal", fontweight="light", fontsize=10)
|
||||||
|
|
||||||
|
self.axis_measured_vs_inverted_sand.set_xlabel("Measured SSC sand (g/L)")
|
||||||
|
self.axis_measured_vs_inverted_sand.set_ylabel("Inverted SSC sand (g/L)")
|
||||||
|
|
||||||
|
self.figure_measured_vs_inverted_sand.canvas.draw_idle()
|
||||||
|
|
||||||
def save_result(self):
|
def save_result(self):
|
||||||
if self.combobox_acoustic_data_choice.count() <= 0:
|
if self.combobox_acoustic_data_choice.count() <= 0:
|
||||||
|
|
@ -1699,10 +1700,9 @@ class AcousticInversionTab(QWidget):
|
||||||
if t_ext not in filename:
|
if t_ext not in filename:
|
||||||
filename += t_ext
|
filename += t_ext
|
||||||
|
|
||||||
t = time.time()
|
|
||||||
logger.info(f"Export results to {os.path.join(dirname, filename)}")
|
logger.info(f"Export results to {os.path.join(dirname, filename)}")
|
||||||
fun(dirname, filename)
|
fun(dirname, filename)
|
||||||
logger.info(f"... export done in {time.time() - t:.4f} sec")
|
logger.info(f"... export done")
|
||||||
|
|
||||||
def save_result_in_excel_file(self, dirname, filename):
|
def save_result_in_excel_file(self, dirname, filename):
|
||||||
if ".ods" in filename:
|
if ".ods" in filename:
|
||||||
|
|
|
||||||
|
|
@ -776,9 +776,6 @@ class SampleDataTab(QWidget):
|
||||||
self.combobox_acoustic_data.showPopup()
|
self.combobox_acoustic_data.showPopup()
|
||||||
|
|
||||||
def fill_comboboxes_and_plot_transect(self):
|
def fill_comboboxes_and_plot_transect(self):
|
||||||
if len(stg.acoustic_data) == 0:
|
|
||||||
return
|
|
||||||
|
|
||||||
self.combobox_acoustic_data.clear()
|
self.combobox_acoustic_data.clear()
|
||||||
for n, m in enumerate(stg.noise_method):
|
for n, m in enumerate(stg.noise_method):
|
||||||
if stg.noise_method[n] == 0:
|
if stg.noise_method[n] == 0:
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,6 @@ python-dateutil==2.8.2
|
||||||
scikit-learn==1.2.1
|
scikit-learn==1.2.1
|
||||||
scipy==1.10.0
|
scipy==1.10.0
|
||||||
odfpy==1.4.1
|
odfpy==1.4.1
|
||||||
xlsxwriter==3.2.0
|
|
||||||
openpyxl==3.0.10
|
openpyxl==3.0.10
|
||||||
pyinstaller==6.12.0
|
pyinstaller==6.12.0
|
||||||
pyqt_file_list_widget==0.0.1
|
pyqt_file_list_widget==0.0.1
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue