diff --git a/View/acoustic_inversion_tab.py b/View/acoustic_inversion_tab.py index 44c38b8..e8b051a 100644 --- a/View/acoustic_inversion_tab.py +++ b/View/acoustic_inversion_tab.py @@ -1551,121 +1551,120 @@ class AcousticInversionTab(QWidget): ) def plot_measured_vs_inverted_SSC_sand(self): + data_id = self.combobox_acoustic_data_choice.currentIndex() + if self.combobox_acoustic_data_choice.count() <= 0: return - if stg.SSC_sand[self.combobox_acoustic_data_choice.currentIndex()].shape == (0,): - self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.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) + self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand\ + .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.canvas_inverted_vs_measured_SSC_sand = FigureCanvas() 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.canvas_inverted_vs_measured_SSC_sand, self + ) else: - - self.verticalLayout_groupbox_plot_measured_vs_inverted_SSC_sand.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 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.figure_measured_vs_inverted_sand = fig self.axis_measured_vs_inverted_sand = ax + 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.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.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 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: - - 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) - + sand_range = lambda : self.sand_sample_to_plot else: + sand_range = lambda : range(len(stg.sample_sand)) - 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( + [stg.Ctot_sand[k] for k in sand_range()], + [ + stg.SSC_sand[data_id][ + 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( + [ + 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 + ], + [ + 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 --- + for i in sand_range(): + self.axis_measured_vs_inverted_sand.text( + 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.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.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()