From e8045267b919666061202f9db9aac2b85d212ef0 Mon Sep 17 00:00:00 2001
From: Jessica Laible <jessica.laible@inrae.fr>
Date: Tue, 26 Sep 2023 18:50:20 +0200
Subject: [PATCH] Alpha BD determination corrected

---
 Analysis_solid_gauging.py                     |  17 +-
 classes/SDC_fines_method.py                   |  31 +-
 classes/SDC_method.py                         | 154 ++----
 classes/Sed_flux_big_bend.py                  |  74 +--
 classes/Sed_flux_big_straight.py              |  71 +--
 classes/Sed_flux_small_bend.py                |  63 +--
 classes/Sed_flux_small_straight.py            |  65 +--
 classes/Sediment_flux_BD_single.py            |  18 +-
 classes/Uncertainty_estimation.py             | 451 +++++++-----------
 .../SDC_fines_method.cpython-38.pyc           | Bin 17500 -> 17359 bytes
 classes/__pycache__/SDC_method.cpython-38.pyc | Bin 17281 -> 17304 bytes
 .../Sed_flux_big_bend.cpython-38.pyc          | Bin 3784 -> 4616 bytes
 .../Sed_flux_big_straight.cpython-38.pyc      | Bin 3743 -> 4718 bytes
 .../Sed_flux_small_bend.cpython-38.pyc        | Bin 3773 -> 4657 bytes
 .../Sed_flux_small_straight.cpython-38.pyc    | Bin 3770 -> 4704 bytes
 .../Sediment_flux_BD_single.cpython-38.pyc    | Bin 2960 -> 2988 bytes
 .../Uncertainty_estimation.cpython-38.pyc     | Bin 22208 -> 21419 bytes
 path_files.txt                                |   2 +-
 18 files changed, 389 insertions(+), 557 deletions(-)

diff --git a/Analysis_solid_gauging.py b/Analysis_solid_gauging.py
index a4de37b..8792463 100644
--- a/Analysis_solid_gauging.py
+++ b/Analysis_solid_gauging.py
@@ -40,6 +40,7 @@ path_R = 'C:/Users/jessica.laible/AppData/Local/Programs/R/R-4.2.1/bin/x64/Rscri
 # vertical distance above the bottom (BD)
 position_diver = 0.12  # (m) 
 HADCP_option = True     # Choose if HADCP section or not
+add_plots = False   # Choose if additional plots should be made
 
 # Add paths to system
 cwd = os.getcwd()
@@ -246,11 +247,11 @@ if choice[3] == 0:
     for i in range(len(analysis_data)):
         meas = analysis_data.iloc[i,:]    
         if meas['Sampler'] == 'BD':           
-            sand_flux_point_i = sediment_flux_BD(outpath_figures, meas, choice, unit)
+            sand_flux_point_i = sediment_flux_BD(outpath_figures, meas, choice, unit, add_plots)
             sand_flux_point.append(sand_flux_point_i)  
             concentration_sand_point.append(np.nan)            
         elif meas['Sampler'] == 'BD_C':
-            sand_flux_point_i = sediment_flux_BD_C(outpath_figures, meas, choice, unit)
+            sand_flux_point_i = sediment_flux_BD_C(outpath_figures, meas, choice, unit, add_plots)
             sand_flux_point.append(sand_flux_point_i)   
             concentration_sand_point.append(np.nan)
             concentration_fines.append(np.nan)        
@@ -297,12 +298,12 @@ elif choice[3] == 1:
     for i in range(len(analysis_data)):
         meas = analysis_data.iloc[i,:]    
         if meas['Sampler'] == 'BD':
-            sand_flux_point_i, c_sand_point_g_l_from_flux_i = sediment_flux_BD(outpath_figures, meas, choice, unit)
-            sand_flux_point.append(sand_flux_point_i)   
+            sand_flux_point_i, c_sand_point_g_l_from_flux_i = sediment_flux_BD(outpath_figures, meas, choice, unit, add_plots)
+            sand_flux_point.append(sand_flux_point_i)    
             concentration_sand_point.append(c_sand_point_g_l_from_flux_i) 
             concentration_fines.append(np.nan)
         elif meas['Sampler'] == 'BD_C':
-            sand_flux_point_i, c_sand_point_g_l_from_flux_i = sediment_flux_BD_C(outpath_figures, meas, choice, unit)
+            sand_flux_point_i, c_sand_point_g_l_from_flux_i = sediment_flux_BD_C(outpath_figures, meas, choice, uni, add_plotst)
             sand_flux_point.append(sand_flux_point_i)   
             concentration_sand_point.append(c_sand_point_g_l_from_flux_i)
             concentration_fines.append(np.nan)        
@@ -396,11 +397,11 @@ if choice[2] == 1 and choice[3] == 0 and number_gsd >= 2: # if no ADCP-data avai
 
 #%% Uncertainty estimation 
 analysis_data, U_F, uncertainty, u_p, u_param, maxpost, maxpost_alpha, maxpost_lnCr = uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
-                      choice, v2_d_index, summary_ISO, summary_fine, map_data, cwd, path_R)
+                      choice, v2_d_index, summary_ISO, summary_fine, map_data, cwd, path_R, add_plots)
 
 #%% SDC method
 analysis_data, summary_SDC, Conc_SDC_cell_export, sand_flux_SDC_kg_s_export = SDC_method(analysis_data, map_data, outpath, 
-                                                                                         outpath_figures, sampling_date, maxpost, maxpost_alpha, maxpost_lnCr)
+                                                                                         outpath_figures, sampling_date, maxpost, maxpost_alpha, maxpost_lnCr, add_plots)
 
 
 #%% Compare results from different methods
@@ -419,7 +420,7 @@ if choice[3] == 1:
                         ax=ax, width=0.6, rot= 0 )
     
     ax.set_xlim(-0.5,4.5)
-    ax.set_ylabel('$\mathregular{\overline{C}_{sand}}$ (g/l)', fontsize = 16, weight = 'bold')
+    ax.set_ylabel('$\mathregular{\overline{C_{sand}}}$ (g/l)', fontsize = 16, weight = 'bold')
     ax.set_xlabel('Method', fontsize = 16, weight = 'bold')
     ax.tick_params(axis='both', which='major', labelsize = 14) 
     fig.tight_layout()
diff --git a/classes/SDC_fines_method.py b/classes/SDC_fines_method.py
index 632b9a7..ea5e12e 100644
--- a/classes/SDC_fines_method.py
+++ b/classes/SDC_fines_method.py
@@ -55,11 +55,11 @@ def SDC_fines_method(analysis_data, map_data, outpath, outpath_figures, sampling
     most_frequent_sampler= analysis_data['Sampler'].value_counts().idxmax()
    
     # Fontsizes
-    fontsize_axis = 14
-    fontsize_legend = 14
-    fontsize_legend_title = 14
-    fontsize_text = 14
-    fontsize_ticks = 12
+    fontsize_axis = 16
+    fontsize_legend = 16
+    fontsize_legend_title = 16
+    fontsize_text = 16
+    fontsize_ticks = 14
     
     #%% SDC_fines profile     
     stats_SDC_fines_profile = []
@@ -272,16 +272,14 @@ def SDC_fines_method(analysis_data, map_data, outpath, outpath_figures, sampling
     # Add color bar and axis labels
     cb = fig.colorbar(c, pad=0.02, shrink=0.7, anchor=(0, 0.1))
     cb.ax.set_ylabel(canvas.tr('$\mathregular{C_{fine}}$ (g/l)'), weight = 'bold')
-    cb.ax.yaxis.label.set_fontsize(12)
-    cb.ax.tick_params(labelsize=12)
+    cb.ax.yaxis.label.set_fontsize(16)
+    cb.ax.tick_params(labelsize=14)
     fig.ax.invert_yaxis()
     fig.ax.fill_between(x_fill, np.nanmax(track_depth)+2, depth_fill, color='w') # below bathy
     fig.ax.plot(track, track_depth, color='k', linewidth=1.5) # bathy
     
-    fig.ax.set_xlabel(canvas.tr('Distance (m)'), fontsize = fontsize_axis, weight = 'bold')
-    fig.ax.set_ylabel(canvas.tr('Depth (m)'), fontsize = fontsize_axis, weight = 'bold')
-    fig.ax.xaxis.label.set_fontsize(12)
-    fig.ax.yaxis.label.set_fontsize(12)
+    fig.ax.set_xlabel(canvas.tr('Distance (m)'), fontsize = fontsize_axis+6, weight = 'bold')
+    fig.ax.set_ylabel(canvas.tr('Depth (m)'), fontsize = fontsize_axis+6, weight = 'bold')
     fig.ax.tick_params(axis='both', direction='in', bottom=True, top=True, left=True, right=True)
     fig.ax.set_ylim(top=0, bottom=np.nanmax(track_depth)+0.3)
     lower_limit = track[0]-0.5
@@ -298,10 +296,10 @@ def SDC_fines_method(analysis_data, map_data, outpath, outpath_figures, sampling
     legend = fig.ax.legend(loc = 'upper right', fontsize=fontsize_legend, 
                        title = 'Sampler', bbox_to_anchor=(1.17, 1))
     plt.setp(legend.get_title(), fontsize = fontsize_legend_title)
-    fig.ax.text(1.9, 0.12, '$\overline{C}_{fine}$ = ' + str(np.round(Conc_mean_SDC_fines,3)) + ' g/l', 
+    fig.ax.text(2.2, 0.1, '$\overline{C_{\mathregular{fine}}}$ = ' + str(np.round(Conc_mean_SDC_fines,3)) + ' g/l', 
             transform = ax.transAxes, fontsize = fontsize_text)
-    fig.ax.text(2.7, 0.12, '$\Phi_{total}$ = ' + str(np.round(total_fine_flux_SDC_kg_s,0)) + ' kg/s', transform = ax.transAxes,
-            fontsize = fontsize_text)
+    # fig.ax.text(2.7, 0.12, '$\Phi_{total}$ = ' + str(np.round(total_fine_flux_SDC_kg_s,0)) + ' kg/s', transform = ax.transAxes,
+    #         fontsize = fontsize_text)
     
     canvas.draw()   
     show_figure(fig)    
@@ -663,7 +661,6 @@ def SDC_fines_method(analysis_data, map_data, outpath, outpath_figures, sampling
     cb.ax.set_yticklabels(['0.01','0.1','0.2','0.4','0.6','0.8','1.2','2.0','3.0', '4.0', '5.0','6.0','7.0', '10.0'],ha='right')
     cb.ax.yaxis.set_tick_params(pad=35) 
     cb.ax.set_ylabel(canvas.tr('$\mathregular{C_{fine}/C_{sand}}$'), fontsize = fontsize_axis, weight = 'bold')
-    cb.ax.yaxis.label.set_fontsize(12)
     cb.ax.tick_params(labelsize=12)
     fig.ax.invert_yaxis()
     fig.ax.fill_between(x_fill, np.nanmax(track_depth)+2, depth_fill, color='w') # below bathy
@@ -671,8 +668,6 @@ def SDC_fines_method(analysis_data, map_data, outpath, outpath_figures, sampling
     
     fig.ax.set_xlabel(canvas.tr('Distance (m)'), fontsize = fontsize_axis, weight = 'bold')
     fig.ax.set_ylabel(canvas.tr('Depth (m)'), fontsize = fontsize_axis, weight = 'bold')
-    fig.ax.xaxis.label.set_fontsize(12)
-    fig.ax.yaxis.label.set_fontsize(12)
     fig.ax.tick_params(axis='both', direction='in', bottom=True, top=True, left=True, right=True)
     fig.ax.set_ylim(top=0, bottom=np.nanmax(track_depth)+0.3)
     lower_limit = track[0]-0.5
@@ -689,7 +684,7 @@ def SDC_fines_method(analysis_data, map_data, outpath, outpath_figures, sampling
     legend = fig.ax.legend(loc = 'upper right', fontsize=fontsize_legend, 
                         title = 'Sampler', bbox_to_anchor=(1.17, 1))
     plt.setp(legend.get_title(), fontsize = fontsize_legend_title)
-    fig.ax.text(2, 0.12, '$\overline{C_{fine}/C_{sand}}$ = ' + str(np.round(mean_ratio,3)), 
+    fig.ax.text(2, 0.1, '$\overline{C_{fine}/C_{sand}}$ = ' + str(np.round(mean_ratio,3)), 
             transform = ax.transAxes, fontsize = fontsize_text)
     
     canvas.draw()   
diff --git a/classes/SDC_method.py b/classes/SDC_method.py
index 272dcbe..5ebecbb 100644
--- a/classes/SDC_method.py
+++ b/classes/SDC_method.py
@@ -32,7 +32,7 @@ from Common_functions import show_figure
 import matplotlib.colors as colors
 
 
-def SDC_method(analysis_data, map_data, outpath, outpath_figures, sampling_date, maxpost, maxpost_alpha, maxpost_lnCr): 
+def SDC_method(analysis_data, map_data, outpath, outpath_figures, sampling_date, maxpost, maxpost_alpha, maxpost_lnCr, add_plots): 
     
     #%%
     abscissa_values = (analysis_data['Abscissa']).unique().tolist()
@@ -167,130 +167,36 @@ def SDC_method(analysis_data, map_data, outpath, outpath_figures, sampling_date,
     figname = '_Conc_profiles_log_SDC_unc_article' + most_frequent_sampler
     fig.savefig(outpath_figures + sampling_date + figname + '.png', dpi = 400, bbox_inches='tight')
 
-
-    
-    #%% Exponential profile     
-    # stats_vertical_profile = []
-    # x_ranges_vertical = []
-    
-    # for i in range(len(abscissa_values)):
-    #     x = np.array(analysis_data['z_h'][analysis_data['Abscissa'] == abscissa_values[i]])
-    #     Y = np.log(np.array(analysis_data['Concentration_sand_g_l'][analysis_data['Abscissa'] == abscissa_values[i]]))
-    #     array_x_vertical = np.linspace(1, 0, num=100)
-    #     x_ranges_vertical.append(array_x_vertical)
-        
-    #     res = stats.linregress(x, Y)
-    #     # correct slope (increasing C with depth)
-    #     res = list(res)
-    #     if res[0] >= 0:
-    #         res[0] = -0.2
-    #         res[1] = np.max(Y)
-    #         res[2] = np.nan
-    #         print('Slope and intercept of the SDC sand profile corrected for vertical i = ' + str(i))
-    #     stats_vertical_profile.append(res)
-        
-    # x_ranges_vertical = pd.DataFrame(x_ranges_vertical) 
-    # stats_vertical_profile = pd.DataFrame(stats_vertical_profile)    
-    # stats_vertical_profile.columns = ['slope', 'intercept','rvalue', 'pvalue', 'stderr']
-    # stats_vertical_profile['Cr_vertical'] = np.exp(stats_vertical_profile['intercept'])
-    # stats_vertical_profile['Crh_vertical'] = stats_vertical_profile['Cr_vertical']/depth_verticals
-    # stats_vertical_profile['alphah_vertical'] = -(stats_vertical_profile['slope'])
-    # stats_vertical_profile['alpha_vertical'] = stats_vertical_profile['alphah_vertical']/depth_verticals
-    # stats_vertical_profile['R2'] = stats_vertical_profile['rvalue']**2
-    
-    # Conc_vertical_profile = pd.DataFrame([np.exp(stats_vertical_profile['intercept'][i])*np.exp(stats_vertical_profile['slope'][i]*x_ranges_vertical.iloc[i,:])
-    #           for i in range(len(stats_vertical_profile))])
-       
-       
-#%% Plot all vertical profiles in one graph   
-   #  fig, ax = plt.subplots(figsize=(10, 6), dpi = 100)
-    
-   #  for i in range(len(abscissa_values)):
-   #      ax.plot(Conc_vertical_profile.iloc[i,:], x_ranges_vertical.iloc[i,:],
-   #              linestyle = '-', linewidth = 2, color = colorss[i],
-   #              label = str(abscissa_values[i]))
-           
-   #      ax.plot(analysis_data['Concentration_sand_g_l'][analysis_data['Abscissa']== abscissa_values[i]], 
-   #                 analysis_data['z_h'][analysis_data['Abscissa']== abscissa_values[i]],
-   #                 color = colorss[i], linestyle = ' ',
-   #                 markersize = 9, marker = markerss[i],
-   #                 markeredgewidth = 0.2, markeredgecolor = 'black')
-   # # ax.text(0.02, 1, 'a)', fontsize = 14)
-   #  legend = ax.legend(fontsize = fontsize_legend, title = 'Abscissa', 
-   #            loc = 'upper right',  facecolor = 'white', framealpha = 1, bbox_to_anchor = (1.2,1))
-   #  plt.setp(legend.get_title(), fontsize=fontsize_legend_title)
-    
-   #  ax.set_ylim(-0.05,1.05)
-   #  ax.set_xlim(0)
-   #  ax.set_ylabel('z/h (-)', fontsize = fontsize_axis, weight = 'bold')
-   #  ax.set_xlabel('Concentration (g/l)', fontsize = fontsize_axis, weight = 'bold')
-   #  ax.grid(linewidth = 0.2)
-   #  ax.tick_params(axis='both', which='major', labelsize = fontsize_ticks)
-   #  fig.tight_layout()
-   #  figname = '_Conc_profiles_SDC' + most_frequent_sampler
-   #  fig.savefig(outpath_figures + sampling_date + figname + '.png', dpi = 200, bbox_inches='tight')
-        
-   #      # log-scale
-   #  cmap = plt.cm.get_cmap('nipy_spectral')
-   #  colorss = cmap(np.linspace(0,1,len(abscissa_values)))
-    
-   #  fig, ax = plt.subplots(figsize=(10, 6), dpi = 100)
-    
-   #  for i in range(len(abscissa_values)):
-   #      ax.plot(Conc_vertical_profile.iloc[i,:], x_ranges_vertical.iloc[i,:],
-   #              linestyle = '-', linewidth = 2, color = colorss[i],
-   #              label = str(abscissa_values[i]))
-           
-   #      ax.plot(analysis_data['Concentration_sand_g_l'][analysis_data['Abscissa']== abscissa_values[i]], 
-   #                 analysis_data['z_h'][analysis_data['Abscissa']== abscissa_values[i]],
-   #                 color = colorss[i], linestyle = ' ',
-   #                 markersize = 9, marker = markerss[i],
-   #                 markeredgewidth = 0.2, markeredgecolor = 'black')
-    
-   #  legend = ax.legend(fontsize = fontsize_legend, title = 'Abscissa', 
-   #            loc = 'upper right',  facecolor = 'white', framealpha = 1, bbox_to_anchor = (1.2,1))
-   #  plt.setp(legend.get_title(), fontsize=fontsize_legend_title)
-    
-   #  ax.set_xscale('log')
-   #  ax.set_ylim(-0.05,1.05)
-   #  #ax.set_xlim(0)
-   #  ax.set_ylabel('z/h (-)', fontsize = fontsize_axis, weight = 'bold')
-   #  ax.set_xlabel('Concentration (g/l)', fontsize = fontsize_axis, weight = 'bold')
-   #  ax.grid(linewidth = 0.2)
-   #  ax.tick_params(axis='both', which='major', labelsize = fontsize_ticks)
-   #  fig.tight_layout()
-   #  figname = '_Conc_profiles_log_SDC_' + most_frequent_sampler
-   #  fig.savefig(outpath_figures + sampling_date + figname + '.png', dpi = 200, bbox_inches='tight')
-                             
     #%% Plot vertical profiles for each abscissa   
-    for i in range(len(abscissa_values)):
-        fig, ax = plt.subplots(figsize=(10, 6), dpi = 100)
-        ax.invert_yaxis()
-        ax.plot(maxpost_g_l.iloc[:,i], x_ranges_vertical[:],
-                linestyle = '-', linewidth = 2, color = colorss[i], label = 'Abscissa ' + str(i +1))
-        
-        ax.plot(analysis_data['Concentration_sand_g_l'][analysis_data['Abscissa']== abscissa_values[i]], 
-                   analysis_data['z_h'][analysis_data['Abscissa']== abscissa_values[i]],
-                   color = colorss[i], linestyle = ' ',
-                   markersize = 9, marker = markerss[i],
-                   markeredgewidth = 0.2, markeredgecolor = 'black')
-        
-        a = np.round(maxpost_alpha[i], 2)
-        b = np.round(maxpost_lnCr[i], 2)
-        # ax.text(0.75, 0.92, '$y=%3.7s*e^{%3.7sx}$'%(a, b),
-        #         transform=ax.transAxes, fontsize = fontsize_text)
-        # ax.text(0.75, 0.85, '${R²}$ = ' + str(np.round(stats_vertical_profile['R2'][i], 2)), 
-        #         transform=ax.transAxes, fontsize = fontsize_text)       
-        
-        ax.set_ylim(-0.05,1.05)
-        #ax.set_xlim(0)
-        ax.set_ylabel('z/h (-)', fontsize = 16, weight = 'bold')
-        ax.set_xlabel('Concentration (g/l)', fontsize = 16, weight = 'bold')
-        ax.grid(linewidth = 0.2)
-        ax.tick_params(axis='both', which='major', labelsize = 14)
-        fig.tight_layout()
-        figname = sampling_date + '_Conc_profiles_SDC_' 
-        fig.savefig(outpath_figures + figname + str(abscissa_values[i]) +  '_' + most_frequent_sampler + '.png', dpi = 200, bbox_inches='tight') 
+    if add_plots == True:
+        for i in range(len(abscissa_values)):
+            fig, ax = plt.subplots(figsize=(10, 6), dpi = 100)
+            ax.invert_yaxis()
+            ax.plot(maxpost_g_l.iloc[:,i], x_ranges_vertical[:],
+                    linestyle = '-', linewidth = 2, color = colorss[i], label = 'Abscissa ' + str(i +1))
+            
+            ax.plot(analysis_data['Concentration_sand_g_l'][analysis_data['Abscissa']== abscissa_values[i]], 
+                       analysis_data['z_h'][analysis_data['Abscissa']== abscissa_values[i]],
+                       color = colorss[i], linestyle = ' ',
+                       markersize = 9, marker = markerss[i],
+                       markeredgewidth = 0.2, markeredgecolor = 'black')
+            
+            a = np.round(maxpost_alpha[i], 2)
+            b = np.round(maxpost_lnCr[i], 2)
+            # ax.text(0.75, 0.92, '$y=%3.7s*e^{%3.7sx}$'%(a, b),
+            #         transform=ax.transAxes, fontsize = fontsize_text)
+            # ax.text(0.75, 0.85, '${R²}$ = ' + str(np.round(stats_vertical_profile['R2'][i], 2)), 
+            #         transform=ax.transAxes, fontsize = fontsize_text)       
+            
+            ax.set_ylim(-0.05,1.05)
+            #ax.set_xlim(0)
+            ax.set_ylabel('z/h (-)', fontsize = 16, weight = 'bold')
+            ax.set_xlabel('Concentration (g/l)', fontsize = 16, weight = 'bold')
+            ax.grid(linewidth = 0.2)
+            ax.tick_params(axis='both', which='major', labelsize = 14)
+            fig.tight_layout()
+            figname = sampling_date + '_Conc_profiles_SDC_' 
+            fig.savefig(outpath_figures + figname + str(abscissa_values[i]) +  '_' + most_frequent_sampler + '.png', dpi = 200, bbox_inches='tight') 
         
 #%% # Define MAP grid
     cell_height = map_data.depth_cells_border[1][0]-map_data.depth_cells_border[0][0]  
diff --git a/classes/Sed_flux_big_bend.py b/classes/Sed_flux_big_bend.py
index bfd946d..54a1cac 100644
--- a/classes/Sed_flux_big_bend.py
+++ b/classes/Sed_flux_big_bend.py
@@ -49,12 +49,12 @@ def sed_flux_big_bend(outpath_figures) :
     # Parametres
     BD_grain_size_steps = [75, 90, 100, 110, 130, 150, 210]
     name = '_big_bend'
-    title = name.replace('_', ' ')
-    title = title[1:].capitalize()
+    # title = name.replace('_', ' ')
+    # title = title[1:].capitalize()
     colors = ['tab:blue','tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink']
     # Define and plot alpha
 
-    # plt.figure(figsize=(9,6))
+    plt.figure(figsize=(9,6))
     k = 0
     for k in range(len(BD_grain_size_steps)) :
         x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
@@ -63,40 +63,56 @@ def sed_flux_big_bend(outpath_figures) :
         globals()['pars' + str(BD_grain_size_steps[k]) + str(name)], globals()['cov' + str(BD_grain_size_steps[k]) + str(name)] = curve_fit(
             f=exponential, xdata=globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)],
             ydata=globals()['y_alpha' + str(BD_grain_size_steps[k]) + str(name)], maxfev=5000)
-        # plt.plot(x_range_extrap, exponential(x_range_extrap,
-        #     globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
-        #     color=colors[k])
-        # plt.plot(x_range, exponential(x_range,
-        #     globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
-        #     color=colors[k], label=f' {BD_grain_size_steps[k]}')
-        globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.round(exponential(x_range,
+        plt.plot(x_range_extrap, exponential(x_range_extrap,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
+            color=colors[k])
+        plt.plot(x_range, exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
+            color=colors[k], label=f' {BD_grain_size_steps[k]}')
+        
+        extrapolate_values = np.round(exponential(x_range,
             globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
-    # plt.plot([], [], linestyle='--', color='black', label='extrapolation')
+    
+        globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = extrapolate_values
+        
+        plt.plot([], [], linestyle='--', color='black', label='extrapolation')
 
-    # plt.legend(title='$D_{50}$ (\u03BCm)')
+    plt.legend(title='$D_{50}$ (\u03BCm)', fontsize = 16, bbox_to_anchor = (1.05, 1))
     # plt.grid(linewidth=0.2)
-    # plt.xlim(0.4, 1.8)
-    # plt.ylim(0.6, 2.5)
-    # plt.xlabel('Velocity m/s')
-    # plt.ylabel(r'$ \alpha $ (-)')
+    plt.xlim(0.4, 1.8)
+    plt.ylim(0.6, 2.5)
+    plt.xlabel('Velocity (m/s)', fontsize = 16, weight = 'bold')
+    plt.ylabel(r'$\mathregular{\alpha}$ (-)', fontsize = 16, weight = 'bold')
     # plt.title(str(title) + ' nozzle')
 
-    # figname = 'Big_bend'
-    # plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
+    figname = 'Big_bend'
+    plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
 
     # Define values out of lower range (velocity < 0.5 m/s)
     # Define values out of upper range (velocity > 2.4 m/s)
     # Small straight nozzle
     globals()['alpha' + str(name)] = []
+    alpha_temp = []
     k = 0
-    for k in range(len(BD_grain_size_steps)) :
-        globals()['alpha' + str(BD_grain_size_steps[k]) + '_lower_outrange' + str(name)] = np.array(
-            [np.min(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])] * 120)
-        globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)] = np.array(
-            [np.max(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])] * 120)
-        globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.concatenate(
-            (globals()['alpha' + str(BD_grain_size_steps[k]) + '_lower_outrange' + str(name)], globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)]
-             , globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)]))
-        globals()['alpha' + str(name)].append(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])
-
-    sed_flux_big_bend.alpha_big_bend = globals()['alpha' + str(name)]
\ No newline at end of file
+    for k in range(len(BD_grain_size_steps)) :        
+        x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
+                            globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][-1], 0.01)
+        extrapolate_values = np.round(exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
+        
+        vel_possiblerange = np.round(np.arange(0.01, 4.01, 0.01), 3)
+        idx_start = np.where(vel_possiblerange == np.round(x_range[0], 2))[0]
+        idx_end = np.where(vel_possiblerange == np.round(x_range[-1], 2))[0]
+        
+        alpha_start = [extrapolate_values[0]] * (idx_start[0] - 1)
+        alpha_end = [extrapolate_values[-1]] * (len(vel_possiblerange) - idx_end[0])
+        
+        alpha_k = np.concatenate([alpha_start, extrapolate_values, alpha_end])
+        alpha_temp.append(alpha_k)
+        
+        
+    sed_flux_big_bend.alpha_big_bend = alpha_temp
+    # sed_flux_big_bend.alpha_big_bend = globals()['alpha' + str(name)]
+       
+    # test = pd.DataFrame([x_range, extrapolate_values])
+
diff --git a/classes/Sed_flux_big_straight.py b/classes/Sed_flux_big_straight.py
index 9e96754..80cedad 100644
--- a/classes/Sed_flux_big_straight.py
+++ b/classes/Sed_flux_big_straight.py
@@ -19,6 +19,7 @@ along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 import numpy as np
 from scipy.optimize import curve_fit
+import matplotlib.pyplot as plt
 
 #############################################
 
@@ -47,12 +48,12 @@ def sed_flux_big_straight(outpath_figures) :
     # Parametres
     BD_grain_size_steps = [75, 90, 100, 110, 130, 150, 210]
     name = '_big_straight'
-    title = name.replace('_', ' ')
-    title = title[1:].capitalize()
-    
+    # title = name.replace('_', ' ')
+    # title = title[1:].capitalize()
+    colors = ['tab:blue','tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink']
+   
     # Define and plot alpha
-
-    # plt.figure(figsize=(9,6))
+    plt.figure(figsize=(9,6))
     k = 0
     for k in range(len(BD_grain_size_steps)) :
         x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
@@ -61,26 +62,26 @@ def sed_flux_big_straight(outpath_figures) :
         globals()['pars' + str(BD_grain_size_steps[k]) + str(name)], globals()['cov' + str(BD_grain_size_steps[k]) + str(name)] = curve_fit(
             f=exponential, xdata=globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)],
             ydata=globals()['y_alpha' + str(BD_grain_size_steps[k]) + str(name)], maxfev=5000)
-        # plt.plot(x_range_extrap, exponential(x_range_extrap,
-        #     globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
-        #     color=colors[k])
-        # plt.plot(x_range, exponential(x_range,
-        #     globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
-        #     color=colors[k], label=f' {BD_grain_size_steps[k]}')
+        plt.plot(x_range_extrap, exponential(x_range_extrap,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
+            color=colors[k])
+        plt.plot(x_range, exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
+            color=colors[k], label=f' {BD_grain_size_steps[k]}')
         globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.round(exponential(x_range,
             globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
-    # plt.plot([], [], linestyle='--', color='black', label='extrapolation')
+    plt.plot([], [], linestyle='--', color='black', label='extrapolation')
 
-    # plt.legend(title='$D_{50}$ (\u03BCm)')
+    plt.legend(title='$D_{50}$ (\u03BCm)', fontsize = 16, bbox_to_anchor = (1.05, 1))
     # plt.grid(linewidth=0.2)
-    # plt.xlim(0.4, 1.8)
-    # plt.ylim(0.6, 2.5)
-    # plt.xlabel('Velocity m/s')
-    # plt.ylabel(r'$ \alpha $ (-)')
-    # plt. title(str(title) + ' nozzle')
+    plt.xlim(0.4, 1.8)
+    plt.ylim(0.6, 2.5)
+    plt.xlabel('Velocity (m/s)', fontsize = 16, weight = 'bold')
+    plt.ylabel(r'$\mathregular{\alpha}$ (-)', fontsize = 16, weight = 'bold')
+    # plt.title(str(title) + ' nozzle')
 
-    # figname = 'Big_straight'
-    # # plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
+    figname = 'Big_straight'
+    plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
 
     # Define values out of lower range (velocity < 0.5 m/s)
 #    x_lower_outrange_big = np.arange(0, 0.5, 0.01)
@@ -88,15 +89,23 @@ def sed_flux_big_straight(outpath_figures) :
     # Define values out of upper range (velocity > 2.4 m/s)
     # Small straight nozzle
     globals()['alpha' + str(name)] = []
+    alpha_temp = []
     k = 0
-    for k in range(len(BD_grain_size_steps)) :
-        globals()['alpha' + str(BD_grain_size_steps[k]) + '_lower_outrange' + str(name)] = np.array(
-            [np.min(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])] * 120)
-        globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)] = np.array(
-            [np.max(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])] * 120)
-        globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.concatenate(
-            (globals()['alpha' + str(BD_grain_size_steps[k]) + '_lower_outrange' + str(name)], globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)]
-             , globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)]))
-        globals()['alpha' + str(name)].append(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])
-
-    sed_flux_big_straight.alpha_big_straight = globals()['alpha' + str(name)]
+    for k in range(len(BD_grain_size_steps)) :        
+        x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
+                            globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][-1], 0.01)
+        extrapolate_values = np.round(exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
+        
+        vel_possiblerange = np.round(np.arange(0.01, 4.01, 0.01), 3)
+        idx_start = np.where(vel_possiblerange == np.round(x_range[0], 2))[0]
+        idx_end = np.where(vel_possiblerange == np.round(x_range[-1], 2))[0]
+        
+        alpha_start = [extrapolate_values[0]] * (idx_start[0] - 1)
+        alpha_end = [extrapolate_values[-1]] * (len(vel_possiblerange) - idx_end[0])
+        
+        alpha_k = np.concatenate([alpha_start, extrapolate_values, alpha_end])
+        alpha_temp.append(alpha_k)
+        
+        
+    sed_flux_big_straight.alpha_big_straight = alpha_temp
\ No newline at end of file
diff --git a/classes/Sed_flux_small_bend.py b/classes/Sed_flux_small_bend.py
index 327b00d..c6a98c6 100644
--- a/classes/Sed_flux_small_bend.py
+++ b/classes/Sed_flux_small_bend.py
@@ -50,13 +50,12 @@ def sed_flux_small_bend(outpath_figures) :
     # Parametres
     BD_grain_size_steps = [75, 90, 100, 110, 130, 150, 210]
     name = '_small_bend'
-    title = name.replace('_', ' ')
-    title = title[1:].capitalize()
+    # title = name.replace('_', ' ')
+    # title = title[1:].capitalize()
     colors = ['tab:blue','tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink']
 
     # Define and plot alpha
-
-    # plt.figure(figsize=(9,6))
+    plt.figure(figsize=(9,6))
     k = 0
     for k in range(len(BD_grain_size_steps)) :
         x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
@@ -65,26 +64,24 @@ def sed_flux_small_bend(outpath_figures) :
         globals()['pars' + str(BD_grain_size_steps[k]) + str(name)], globals()['cov' + str(BD_grain_size_steps[k]) + str(name)] = curve_fit(
             f=exponential, xdata=globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)],
             ydata=globals()['y_alpha' + str(BD_grain_size_steps[k]) + str(name)], maxfev=5000)
-        # plt.plot(x_range_extrap, exponential(x_range_extrap,
-        #     globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
-        #     color=colors[k])
-        # plt.plot(x_range, exponential(x_range,
-        #     globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
-        #     color=colors[k], label=f' {BD_grain_size_steps[k]}')
+        plt.plot(x_range_extrap, exponential(x_range_extrap,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
+            color=colors[k])
+        plt.plot(x_range, exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
+            color=colors[k], label=f' {BD_grain_size_steps[k]}')
         globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.round(exponential(x_range,
             globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
-    # plt.plot([], [], linestyle='--', color='black', label='extrapolation')
+    plt.plot([], [], linestyle='--', color='black', label='extrapolation')
 
-    # plt.legend(title='$D_{50}$ (\u03BCm)')
-    # plt.grid(linewidth=0.2)
-    # plt.xlim(0.4, 2.8)
-    # plt.ylim(0.6, 2.5)
-    # plt.xlabel('Velocity m/s')
-    # plt.ylabel(r'$ \alpha $ (-)')
-    # plt.title(str(title) + ' nozzle')
+    # plt.legend(title='$D_{50}$ (\u03BCm)', fontsize = 16, bbox_to_anchor = (1.219, 0.3))
+    plt.xlim(0.4, 1.8)
+    plt.ylim(0.6, 2.5)
+    plt.xlabel('Velocity (m/s)', fontsize = 16, weight = 'bold')
+    plt.ylabel(r'$\mathregular{\alpha}$ (-)', fontsize = 16, weight = 'bold')
 
-    # figname = 'Small_bend'
-    # # plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
+    figname = 'Small_bend'
+    plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
 
     # Define values out of lower range (velocity < 0.6 m/s)
     x_lower_outrange_small = np.arange(0, 0.6, 0.01)
@@ -94,12 +91,22 @@ def sed_flux_small_bend(outpath_figures) :
     # Small straight nozzle
     globals()['alpha' + str(name)] = []
     k = 0
+    alpha_temp= []
     for k in range(len(BD_grain_size_steps)) :
-        globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)] = np.array(
-            [np.max(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])] * 120)
-        globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.concatenate(
-            (alpha_lower_outrange_small, globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)]
-             , globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)]))
-        globals()['alpha' + str(name)].append(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])
-
-    sed_flux_small_bend.alpha_small_bend = globals()['alpha' + str(name)]
+        x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
+                            globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][-1], 0.01)
+        extrapolate_values = np.round(exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
+        
+        vel_possiblerange = np.round(np.arange(0.01, 4.01, 0.01), 3)
+        idx_start = np.where(vel_possiblerange == np.round(x_range[0], 2))[0]
+        idx_end = np.where(vel_possiblerange == np.round(x_range[-1], 2))[0]
+        
+        alpha_start = [extrapolate_values[0]] * (idx_start[0] - 1)
+        alpha_end = [extrapolate_values[-1]] * (len(vel_possiblerange) - idx_end[0])
+        
+        alpha_k = np.concatenate([alpha_start, extrapolate_values, alpha_end])
+        alpha_temp.append(alpha_k)
+        
+        
+    sed_flux_small_bend.alpha_small_bend = alpha_temp
\ No newline at end of file
diff --git a/classes/Sed_flux_small_straight.py b/classes/Sed_flux_small_straight.py
index c81f40e..8319479 100644
--- a/classes/Sed_flux_small_straight.py
+++ b/classes/Sed_flux_small_straight.py
@@ -19,6 +19,7 @@ along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 import numpy as np
 from scipy.optimize import curve_fit
+import matplotlib.pyplot as plt
 
 #############################################
 
@@ -44,17 +45,15 @@ def exponential(x, a, b, c):
     return a*x**3+b*x**2+c
 
 def sed_flux_small_straight(outpath_figures) :
-
     # Parametres
     BD_grain_size_steps = [75, 90, 100, 110, 130, 150, 210]
     name = '_small_straight'
-    title = name.replace('_', ' ')
-    title = title[1:].capitalize()
+    # title = name.replace('_', ' ')
+    # title = title[1:].capitalize()
     colors = ['tab:blue','tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink']
 
     # Define and plot alpha
-
-    # plt.figure(figsize=(9,6))
+    plt.figure(figsize=(9,6))
     k = 0
     for k in range(len(BD_grain_size_steps)) :
         x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
@@ -63,26 +62,24 @@ def sed_flux_small_straight(outpath_figures) :
         globals()['pars' + str(BD_grain_size_steps[k]) + str(name)], globals()['cov' + str(BD_grain_size_steps[k]) + str(name)] = curve_fit(
             f=exponential, xdata=globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)],
             ydata=globals()['y_alpha' + str(BD_grain_size_steps[k]) + str(name)], maxfev=5000)
-    #     plt.plot(x_range_extrap, exponential(x_range_extrap,
-    #         globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
-    #         color=colors[k])
-    #     plt.plot(x_range, exponential(x_range,
-    #         globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
-    #         color=colors[k], label=f' {BD_grain_size_steps[k]}')
+        plt.plot(x_range_extrap, exponential(x_range_extrap,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='--',
+            color=colors[k])
+        plt.plot(x_range, exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), linestyle='-',
+            color=colors[k], label=f' {BD_grain_size_steps[k]}')
         globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.round(exponential(x_range,
             globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
-    # plt.plot([], [], linestyle='--', color='black', label='extrapolation')
+    plt.plot([], [], linestyle='--', color='black', label='extrapolation')
 
-    # plt.legend(title='$D_{50}$ (\u03BCm)')
-    # plt.grid(linewidth=0.2)
-    # plt.xlim(0.4, 2.8)
-    # plt.ylim(0.6, 2.5)
-    # plt.xlabel('Velocity m/s')
-    # plt.ylabel(r'$ \alpha $ (-)')
-    # plt.title(str(title) + ' nozzle')
+    # plt.legend(title='$D_{50}$ (\u03BCm)', fontsize = 16, bbox_to_anchor = (1.05, 1))
+    plt.xlim(0.4, 1.8)
+    plt.ylim(0.6, 2.5)
+    plt.xlabel('Velocity (m/s)', fontsize = 16, weight = 'bold')
+    plt.ylabel(r'$\mathregular{\alpha}$ (-)', fontsize = 16, weight = 'bold')
 
-    # figname = 'Small_straight'
-    # # plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
+    figname = 'Small_straight'
+    plt.savefig(outpath_figures + figname + '.png', dpi=400, bbox_inches='tight')
 
 
     # Define values out of lower range (velocity < 0.6 m/s)
@@ -93,12 +90,22 @@ def sed_flux_small_straight(outpath_figures) :
     # Small straight nozzle
     globals()['alpha' + str(name)] = []
     k = 0
+    alpha_temp= []
     for k in range(len(BD_grain_size_steps)) :
-        globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)] = np.array(
-            [np.max(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])] * 120)
-        globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)] = np.concatenate(
-            (alpha_lower_outrange_small, globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)]
-             , globals()['alpha' + str(BD_grain_size_steps[k]) + '_upper_outrange' + str(name)]))
-        globals()['alpha' + str(name)].append(globals()['alpha' + str(BD_grain_size_steps[k]) + str(name)])
-
-    sed_flux_small_straight.alpha_small_straight = globals()['alpha' + str(name)]
+        x_range = np.arange(globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][0],
+                            globals()['x_vel' + str(BD_grain_size_steps[k]) + str(name)][-1], 0.01)
+        extrapolate_values = np.round(exponential(x_range,
+            globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][0],globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][1], globals()['pars' + str(BD_grain_size_steps[k]) + str(name)][2]), 3)
+        
+        vel_possiblerange = np.round(np.arange(0.01, 4.01, 0.01), 3)
+        idx_start = np.where(vel_possiblerange == np.round(x_range[0], 2))[0]
+        idx_end = np.where(vel_possiblerange == np.round(x_range[-1], 2))[0]
+        
+        alpha_start = [extrapolate_values[0]] * (idx_start[0] - 1)
+        alpha_end = [extrapolate_values[-1]] * (len(vel_possiblerange) - idx_end[0])
+        
+        alpha_k = np.concatenate([alpha_start, extrapolate_values, alpha_end])
+        alpha_temp.append(alpha_k)
+        
+        
+    sed_flux_small_straight.alpha_small_straight = alpha_temp
\ No newline at end of file
diff --git a/classes/Sediment_flux_BD_single.py b/classes/Sediment_flux_BD_single.py
index c9de9f1..2e82064 100644
--- a/classes/Sediment_flux_BD_single.py
+++ b/classes/Sediment_flux_BD_single.py
@@ -28,7 +28,7 @@ from Sed_flux_big_straight import sed_flux_big_straight
 from Sed_flux_big_bend import sed_flux_big_bend
 from Functions import find_nearest, get_sec
 
-def sediment_flux_BD(outpath_figures, meas, choice, unit) :
+def sediment_flux_BD(outpath_figures, meas, choice, unit, add_plots) :
 
     # %%################### Calculate sediment flux ###########################
     unit_mass = unit.unit_masses
@@ -45,18 +45,18 @@ def sediment_flux_BD(outpath_figures, meas, choice, unit) :
 
     BD_grain_size_steps = [75, 90, 100, 110, 130, 150, 210]
 
-    # Create Alpha graphs
+    # Create Alpha relations
     sed_flux_small_straight(outpath_figures)
+    sed_flux_small_bend(outpath_figures)        
+    sed_flux_big_straight(outpath_figures)        
+    sed_flux_big_bend(outpath_figures)
+    
     alpha_small_straight = sed_flux_small_straight.alpha_small_straight
-
-    sed_flux_small_bend(outpath_figures)
     alpha_small_bend = sed_flux_small_bend.alpha_small_bend
-
-    sed_flux_big_straight(outpath_figures)
     alpha_big_straight = sed_flux_big_straight.alpha_big_straight
-
-    sed_flux_big_bend(outpath_figures)
     alpha_big_bend = sed_flux_big_bend.alpha_big_bend
+    
+        
 
     # %%################### Determine alpha and nozzle surface for samples #########
 
@@ -90,7 +90,7 @@ def sediment_flux_BD(outpath_figures, meas, choice, unit) :
 
     if pd.isna(meas['Sampling_duration_s']):
         meas['Sampling_duration_s'] = meas['Filling_time_field'] 
-                                           
+    print(alpha)                                       
     # %%################### Calculate point solid flux #######################
     if unit_mass == 'mg':
         sand_flux_point_i = alpha * meas['Dry_mass_sand'] * \
diff --git a/classes/Uncertainty_estimation.py b/classes/Uncertainty_estimation.py
index 01bb71a..9f8d5f4 100644
--- a/classes/Uncertainty_estimation.py
+++ b/classes/Uncertainty_estimation.py
@@ -24,7 +24,7 @@ import os
 from scipy import stats
 
 def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
-                    choice, v2_d_index, summary_ISO, summary_fine, map_data, cwd, path_R):
+                    choice, v2_d_index, summary_ISO, summary_fine, map_data, cwd, path_R, add_plots):
                             
     
     #%%
@@ -159,48 +159,51 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     for i in range(len(abscissa_values)):
         vv = analysis_data[analysis_data['Abscissa'] == abscissa_values[i]]
     # Measured parameters
-        if choice[2] == 1 and choice[3] == 1:
-            if np.count_nonzero(~np.isnan(np.array(vv['D50']))) >= 2:   
-                d50_vertical = np.mean(vv['D50'])*1e-6
-                d90_bed = 0.0004
-                velocity_vert = vv['Mean_velocity_vertical'].iloc[0]  
-                h = vv['max_depth_vertical'].iloc[0]
-                # roughness height
-                kst = 0.05
-                ks = 2* d90_bed   
-                # kinematic viscosity of water
-                nu = 0.000001
-                # acceleration of the gravity
-                g = 9.81
-                # relative density
-                rho = 2.65
-                # sedimentological diameter
-                ds = d50_vertical*(g*(rho-1)/nu**2)**(1/3)  # use mean d50 per vertical
-                # settling velocity
-                ws = (nu/d50_vertical)*((10.36**2 + 1.049 * ds**3)**0.5 - 10.36)
-                # Critical bed shear stress
-                theta_cr = 0.3/(1 + 1.2*ds) + 0.055*(1-np.exp(-0.02*ds))
-                # van Karman constant
-                kappa = 0.41
-                # skin friction coefficient
-                fc = 2*(kappa/(1+np.log(ks/30*h)))**2
-                # Shields parameter
-                theta = 0.5*fc*velocity_vert**2/((rho-1)*d50_vertical*g)
-                #turbulant Schmidt number
-                sigma = 1
-                # skin friction coefficient for total shear velocity
-                fc2 = 2*(kappa/(1+np.log(kst/30/h)))**2    
-                # Total shear velocity
-                shear_vel = velocity_vert*np.sqrt(fc2/2)                   
+        if choice[2] == 1 and choice[3] == 1: 
+            alpha_est = stats_vertical_profile['slope'][i]
+            lnCr_est = stats_vertical_profile['intercept'][i]
+            # if np.count_nonzero(~np.isnan(np.array(vv['D50']))) >= 3:   
+            #     d50_vertical = np.mean(vv['D50'])*1e-6
+            #     d90_bed = 0.0006
+            #     velocity_vert = vv['Mean_velocity_vertical'].iloc[0]  
+            #     h = vv['max_depth_vertical'].iloc[0]
+            #     # roughness height
+            #     kst = 0.05
+            #     ks = 2* d90_bed   
+            #     # kinematic viscosity of water
+            #     nu = 0.000001
+            #     # acceleration of the gravity
+            #     g = 9.81
+            #     # relative density
+            #     rho = 2.65
+            #     # sedimentological diameter
+            #     ds = d50_vertical*(g*(rho-1)/nu**2)**(1/3)  # use mean d50 per vertical
+            #     # settling velocity
+            #     ws = (nu/d50_vertical)*((10.36**2 + 1.049 * ds**3)**0.5 - 10.36)
+            #     # Critical bed shear stress
+            #     theta_cr = 0.3/(1 + 1.2*ds) + 0.055*(1-np.exp(-0.02*ds))
+            #     # van Karman constant
+            #     kappa = 0.41
+            #     # skin friction coefficient
+            #     fc = 2*(kappa/(1+np.log(ks/30*h)))**2
+            #     # Shields parameter
+            #     theta = 0.5*fc*velocity_vert**2/((rho-1)*d50_vertical*g)
+            #     #turbulant Schmidt number
+            #     sigma = 1
+            #     # skin friction coefficient for total shear velocity
+            #     fc2 = 2*(kappa/(1+np.log(kst/30/h)))**2    
+            #     # Total shear velocity
+            #     shear_vel = velocity_vert*np.sqrt(fc2/2)                   
                                   
-                # Estimated a priori parameters
-                alpha_est = -6*ws/(sigma*kappa*shear_vel*h) 
-                Cr = 1.5*1000*theta*np.exp(-0.2*ds)*np.exp(-4.5*theta_cr/theta)  # Reference concentration Cr                     
-                lnCr_est = np.log(Cr)
+            #     # Estimated a priori parameters
+            #     alpha_est = -6*ws/(sigma*kappa*shear_vel*h) 
+            #     Cr = 1.5*1000*theta*np.exp(-0.2*ds)*np.exp(-4.5*theta_cr/theta)  # Reference concentration Cr                     
+            #     lnCr_est = np.log(Cr)
+            #     print(i, np.round(d50_vertical,5), np.round(ds,5), np.round(theta_cr,5),np.round(fc,5),  np.round(theta,5))
                 
-            else: 
-                alpha_est = stats_vertical_profile['slope'][i]
-                lnCr_est = stats_vertical_profile['intercept'][i]
+            # else: 
+            #     alpha_est = stats_vertical_profile['slope'][i]
+            #     lnCr_est = stats_vertical_profile['intercept'][i]
         else: 
             alpha_est = stats_vertical_profile['slope'][i]
             lnCr_est = stats_vertical_profile['intercept'][i]
@@ -233,111 +236,7 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     path_info = pd.DataFrame([outpath, sampling_date, most_frequent_sampler])
     path_info.to_csv(cwd + '\\Info_BaM.csv', sep = ';', index = False)
     
-    
-    #%% 2. Uncertainty due to the vertical integration using BaM! (Renard et al. 2006; Mansanarez et al. 2019) 
-    # # Estimate a priori parameters for the model
-    # a_priori_est = []
-    # for i in range(len(abscissa_values)):
-    #     vv = analysis_data[analysis_data['Abscissa'] == abscissa_values[i]]
-    # # Measured parameters
-    #     if choice[2] == 1:
-    #         if np.count_nonzero(~np.isnan(np.array(vv['D50']))) >= 2:   
-    #             d50_vertical = np.mean(vv['D50'])*1e-6    
-    #         else: 
-    #             d50_vertical = 0.00013
-    #     else: 
-    #         d50_vertical = 0.00013
-    #     d90_bed = 0.0004
-    #     #u_d50_vertical = 0.2
-    #     # velocity per vertical
-    #     if choice[3] == 1:
-    #         velocity_vert = vv['Mean_velocity_vertical'].iloc[0]   
-    #     else: 
-    #         velocity_vert = 1
-    #     #u_velocity_vert = 0.05
-    #     # water depth 
-    #     if choice[3] == 1:
-    #         h = vv['max_depth_vertical'].iloc[0]
-    #     else:
-    #         h = 1
-    #     u_h = 0.05
-    #     # roughness height
-    #     kst = 0.05
-    #     #u_kst = 0.5*kst
-    #     ks = 2* d90_bed
-    #     #u_ks = 0.3 *ks
-        
-        
-    #     # Fixed parameters (errors u are ±)
-    #     # kinematic viscosity of water
-    #     nu = 0.000001
-    #     #u_nu = 0.05
-    #     # acceleration of the gravity
-    #     g = 9.81
-    #     #u_g = 0.01
-    #     # relative density
-    #     rho = 2.65
-    #     #u_rho = 0.02
-    #     # sedimentological diameter
-    #     ds = d50_vertical*(g*(rho-1)/nu**2)**(1/3)  # use mean d50 per vertical
-    #     #u_ds = ds*(1/9*((u_g/g)**2 + (u_rho/rho)**2+4*(u_nu/nu)**2)+ (u_d50_vertical/d50_vertical)**2)
-    #     # settling velocity
-    #     ws = (nu/d50_vertical)*((10.36**2 + 1.049 * ds**3)**0.5 - 10.36)
-    #     u_ws = 0.05
-    #     # Critical bed shear stress
-    #     theta_cr = 0.3/(1 + 1.2*ds) + 0.055*(1-np.exp(-0.02*ds))
-    #     #u_theta_cr = 0.1
-    #     # van Karman constant
-    #     kappa = 0.41
-    #     u_kappa = 0
-    #     # skin friction coefficient
-    #     fc = 2*(kappa/(1+np.log(ks/30*h)))**2
-    #     #u_fc = 0.05
-    #     # Shields parameter
-    #     theta = 0.5*fc*velocity_vert**2/((rho-1)*d50_vertical*g)
-    #     #u_theta = 0.05
-    #     #turbulant Schmidt number
-    #     sigma = 1
-    #     u_sigma = 0.2
-    #     # skin friction coefficient for total shear velocity
-    #     fc2 = 2*(kappa/(1+np.log(kst/30/h)))**2
-    #     #u_fc2 = 0.05 *fc2
         
-    #     # Reference concentration Cr
-    #     Cr = 1.5*1000*theta*np.exp(-0.2*ds)*np.exp(-4.5*theta_cr/theta)
-    #     # u_Cr = 0.3 * 1000 * Cr
-        
-    #     # Total shear velocity
-    #     shear_vel = velocity_vert*np.sqrt(fc2/2)
-    #     u_shear_vel = 0.05
-        
-    #     # Estimated a priori parameters
-    #     alpha_est = -6*ws/(sigma*kappa*shear_vel*h)
-    #     #u_alpha_est = np.sqrt((u_ws**2/ws**2 + u_sigma**2/sigma**2 + u_kappa**2/kappa**2 + u_shear_vel**2/shear_vel**2 + u_h**2/h**2)*alpha_est**2)
-    #     u_alpha_est = np.sqrt(u_ws**2 + u_sigma**2 + u_kappa**2 + u_shear_vel**2 + u_h**2)
-        
-    #     lnCr_est = np.log(Cr)
-    #     u_lnCr_est = 0.5
-        
-    #     # Prepare export data
-    #     a_pri_est = pd.DataFrame([vv['Abscissa_Name'].iloc[0], alpha_est, u_alpha_est, lnCr_est, u_lnCr_est]).transpose()
-    #     a_priori_est.append(a_pri_est)
-    
-    # # Export a priori parameters for RBaM simulation
-    # a_priori_est = pd.concat(a_priori_est)
-    # a_priori_est = a_priori_est.reset_index(drop = True)
-    # a_priori_inf = pd.Series([0]*len(a_priori_est))
-    # a_priori_inf.loc[0] = sampling_date 
-    # a_priori_inf.loc[1] = most_frequent_sampler
-    # # a_priori_inf.loc[2] = 2 # std for lnCr 
-    # # a_priori_inf.loc[3] = 2  # std for alpha 
-    # a_priori_est = pd.concat([(a_priori_inf), a_priori_est], axis = 1)
-    # a_priori_est.columns = ['Info','Abscissa_Name', 'alpha_est', 'u_alpha_est', 'lnCr_est', 'u_lnCr_est']
-    # a_priori_est.to_csv(outpath + sampling_date + '_Estimated_a_priori_params_RBaM_' + most_frequent_sampler +'.csv', sep = ';', index=False)
-    
-    # path_info = pd.DataFrame([outpath, sampling_date, most_frequent_sampler])
-    # path_info.to_csv(cwd + '\\Info_BaM.csv', sep = ';', index = False)
-    
     #%% Perform BaM simulations in R 
     
     #### Run code in Rstudio
@@ -423,17 +322,7 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
             # s = np.random.normal(mu, sigma, len(sampling_heights_interp))
             s = np.random.normal(mu, sigma, len(results_cooking))
             unc_sample.append(s)
-        unc_sample = pd.DataFrame(unc_sample).transpose()
-    
-        
-        # ##
-        # unc_sample = []
-        # for i in range(len(results_cooking)):
-        #     mu, sigma = 0, vv['ulnCs'][2]
-        #     #mu, sigma = 0, results_cooking.iloc[i,2] 
-        #     s = np.random.normal(mu, sigma, len(sampling_heights_interp))
-        #     unc_sample.append(s)
-        # unc_sample = pd.DataFrame(unc_sample)
+        unc_sample = pd.DataFrame(unc_sample).transpose()        
         
         # Calculate point concentration with error 
         unc_sample = conc_sampl * unc_sample ##
@@ -484,6 +373,8 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     # u_rem - remnant uncertainty due to the vertical integration
     u_rem = [np.sqrt(u_p[i]**2 - u_param[i]**2)
               for i in range(len(u_param))]
+    import math
+    u_rem = [0 if math.isnan(x) else x for x in u_rem]
     u2_rem_final = np.sum([Q_j[j]**2/Q_total**2 *u_rem[j]**2 
                   for j in range(len(abscissa_values))])
     U2_rem = u2_rem_final*4
@@ -497,6 +388,8 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     
     maxpost = pd.DataFrame(maxpost).transpose()
     maxpost.columns = abscissa_values
+    # maxpost = maxpost.iloc[::-1]
+    maxpost.reset_index(drop = True, inplace = True)
     
     #%% Plot profiles for param
     # plots only the last vertical
@@ -548,17 +441,20 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
             elinewidth = 1, capsize = 2, 
             marker = 'D', color = 'black', markersize = 7, lw = 0,
             label = 'Samples', zorder = 10)
-    # add maxpost
-    idx_max_post = np.argmax(results_cooking['logPost'])
-    max_post = [np.exp(results_cooking['lnCr'][idx_max_post]-results_cooking['alpha'][idx_max_post]*h[i])
-                for i in range(len(h))]
-    ax.plot(max_post,h,
+    # # add maxpost
+    # idx_max_post = np.argmax(results_cooking['logPost'])
+    # max_post = [np.exp(results_cooking['lnCr'][idx_max_post]-results_cooking['alpha'][idx_max_post]*h[i])
+    #             for i in range(len(h))]
+    # ax.plot(max_post,h,
+    #         color= 'darkorange', lw = 2, label = r'$\mathregular{C_{n_0}(z)}$')
+    
+    ax.plot(maxpost.iloc[:,l],h,
             color= 'darkorange', lw = 2, label = r'$\mathregular{C_{n_0}(z)}$')
        
     ax.legend(loc = 'upper right', fontsize = 18)
     ax.set_xlabel(r'C (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
     ax.set_ylabel('z (m)', fontsize = 20, weight = 'bold')
-    ax.set_xlim(0,200)
+    ax.set_xlim(0,2000)
     ax.set_ylim(0,h[-1])
     ax.tick_params(axis='both', which='major', labelsize = 18)
         
@@ -567,50 +463,49 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
     fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
                 
-    
-    # Plot overline(C(z))
-    fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
-    
-    ax.hist(mean_c, bins = 50, color= 'teal')
-    ax.vlines(mean_conc, 0,50, 
-              color = 'darkred', lw = 2, label = r'$\mathregular{\overline{C}}$')
-       
-    ax.legend(loc = 'upper right', fontsize = 18)
-    ax.set_xlabel(r'$\mathregular{\overline{C}}$ (mg/l)', fontsize = 20, weight = 'bold')
-    ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
-    ax.tick_params(axis='both', which='major', labelsize = 18)
-    ax.set_xlim(0,200)
-        
-    fig.tight_layout()
-    figname = '_hist_overline_C_vertical_' + str(l+1) + '_'
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
-       
-       
-    # Plot overline(lnC(z)) # c)
-    fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
-    
-    ax.hist(mean_c_log, bins = 50, alpha = 0.8, color= 'teal')
-    ax.vlines(mean_conc_log, 0,150, 
-              color = 'darkred', lw = 2, label = r'$\mathregular{\overline{ln(\overline{C})}}$')
-    ax.vlines(mean_conc_log+ std_param, 0,150, 
-              color = 'indigo', lw = 3,ls = '--', label = r'$\mathregular{\overline{ln(\overline{C})} \pm u_{p,param}}$')
-    ax.vlines(mean_conc_log-std_param, 0,150, 
-              color = 'indigo', lw = 3,ls = '--')
-     
-    ax.legend(loc = 'upper right', fontsize = 18, framealpha = 1)
-    ax.set_xlabel(r'$\mathregular{ln(C)}$ (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
-    ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
-    ax.tick_params(axis='both', which='major', labelsize = 18)
-    ax.set_xlim(1,5)
-    ax.set_ylim(0,38)
+    if add_plots == True:
+        # Plot overline(C(z))
+        fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
         
-    fig.tight_layout()
-    figname = '_hist_ln_overline_C_vertical_' + str(l+1) + '_'
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
-       
-    
+        ax.hist(mean_c, bins = 50, color= 'teal')
+        ax.vlines(mean_conc, 0,50, 
+                  color = 'darkred', lw = 2, label = r'$\mathregular{\overline{C}}$')
+           
+        ax.legend(loc = 'upper right', fontsize = 18)
+        ax.set_xlabel(r'$\mathregular{\overline{C}}$ (mg/l)', fontsize = 20, weight = 'bold')
+        ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
+        ax.tick_params(axis='both', which='major', labelsize = 18)
+        ax.set_xlim(0,200)
+            
+        fig.tight_layout()
+        figname = '_hist_overline_C_vertical_' + str(l+1) + '_'
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
+           
+           
+        # Plot overline(lnC(z)) # c)
+        fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
+        
+        ax.hist(mean_c_log, bins = 50, alpha = 0.8, color= 'teal')
+        ax.vlines(mean_conc_log, 0,150, 
+                  color = 'darkred', lw = 2, label = r'$\mathregular{\overline{ln(\overline{C})}}$')
+        ax.vlines(mean_conc_log+ std_param, 0,150, 
+                  color = 'indigo', lw = 3,ls = '--', label = r'$\mathregular{\overline{ln(\overline{C})} \pm u_{p,param}}$')
+        ax.vlines(mean_conc_log-std_param, 0,150, 
+                  color = 'indigo', lw = 3,ls = '--')
+         
+        ax.legend(loc = 'upper right', fontsize = 18, framealpha = 1)
+        ax.set_xlabel(r'$\mathregular{ln(C)}$ (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
+        ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
+        ax.tick_params(axis='both', which='major', labelsize = 18)
+        ax.set_xlim(1,5)
+        ax.set_ylim(0,38)
+            
+        fig.tight_layout()
+        figname = '_hist_ln_overline_C_vertical_' + str(l+1) + '_'
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
+                   
     
     #%% Plot profiles for struc 
     # plots only the last vertical
@@ -653,7 +548,7 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
     
     
-    #%% Plot mean C natural (depth-integrated)
+    # Plot mean C natural (depth-integrated)
     fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
     
     ax.vlines(mean_c_rem[0], 0,h[-1], color= 'darkgoldenrod', lw  =0.5, alpha = 0.3,
@@ -710,79 +605,77 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
                 
     
+    if add_plots == True: 
+        # Plot mean lnC (depth-integrated)
+        fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
+        
+        ax.vlines(mean_c_rem_log[0], 0,h[-1], color= 'teal',lw = 1, alpha = 0.3,
+                  label = r'$\mathregular{ln(\overline{C_{mod,n}})}$')
+        for i in range(len(mean_c_rem_log)):
+            ax.vlines(mean_c_rem_log[i], 0,h[-1], color= 'teal', lw = 1, alpha = 0.3)
+        ax.vlines(mean_conc_rem_log, 0,h[-1], 
+                  color = 'midnightblue', lw = 2, label = r'$\mathregular{ln(\overline{C_{mod}})}$')    
+        ax.vlines(mean_conc_rem_log-std_conc_rem, 0,h[-1], 
+                  color = 'mediumorchid', lw = 2, ls = '--', label = r'$\mathregular{ln(\overline{C_{mod}}) \pm u_p}$')
+        ax.vlines(mean_conc_rem_log+std_conc_rem, 0,h[-1], 
+                  color = 'mediumorchid', lw = 2, ls = '--')
+           
+        ax.legend(loc = 'upper right', fontsize = 18, framealpha = 1)
+        ax.set_xlabel(r'$\mathregular{ln(C)}$ (mg/l)', fontsize = 20, weight = 'bold')
+        ax.set_ylabel('z (m)', fontsize = 20, weight = 'bold')    
+        ax.tick_params(axis='both', which='major', labelsize = 18)
+        ax.set_ylim(0,h[-1])
+        ax.set_xlim(1,5)
+            
+        fig.tight_layout()
+        figname = '_ln_overline_C_mod_vertical_' + str(l+1) + '_'
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight') 
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight') 
         
-    # Plot mean lnC (depth-integrated)
-    fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
-    
-    ax.vlines(mean_c_rem_log[0], 0,h[-1], color= 'teal',lw = 1, alpha = 0.3,
-              label = r'$\mathregular{ln(\overline{C_{mod,n}})}$')
-    for i in range(len(mean_c_rem_log)):
-        ax.vlines(mean_c_rem_log[i], 0,h[-1], color= 'teal', lw = 1, alpha = 0.3)
-    ax.vlines(mean_conc_rem_log, 0,h[-1], 
-              color = 'midnightblue', lw = 2, label = r'$\mathregular{ln(\overline{C_{mod}})}$')    
-    ax.vlines(mean_conc_rem_log-std_conc_rem, 0,h[-1], 
-              color = 'mediumorchid', lw = 2, ls = '--', label = r'$\mathregular{ln(\overline{C_{mod}}) \pm u_p}$')
-    ax.vlines(mean_conc_rem_log+std_conc_rem, 0,h[-1], 
-              color = 'mediumorchid', lw = 2, ls = '--')
-       
-    ax.legend(loc = 'upper right', fontsize = 18, framealpha = 1)
-    ax.set_xlabel(r'$\mathregular{ln(C)}$ (mg/l)', fontsize = 20, weight = 'bold')
-    ax.set_ylabel('z (m)', fontsize = 20, weight = 'bold')    
-    ax.tick_params(axis='both', which='major', labelsize = 18)
-    ax.set_ylim(0,h[-1])
-    ax.set_xlim(1,5)
-        
-    fig.tight_layout()
-    figname = '_ln_overline_C_mod_vertical_' + str(l+1) + '_'
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight') 
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight') 
-    
-          
-    # Plot overline(C(z))
-    fig, ax = plt.subplots(figsize=(6, 6), dpi = 100)
-    
-    ax.hist(mean_c, bins = 50, color= 'teal')
-    ax.vlines(mean_conc, 0,170, 
-              color = 'darkred', lw = 2, label = r'$\mathregular{\overline{C_{mod}}}$')
-       
-    ax.legend(loc = 'upper right', fontsize = 18)
-    ax.set_xlabel(r'C (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
-    ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
-    ax.tick_params(axis='both', which='major', labelsize = 18)
-    ax.set_xlim(0,200)
-    ax.set_ylim(0,50)
-        
-    fig.tight_layout()
-    figname = '_hist_overline_C_mod_vertical_' + str(l+1) + '_'
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
-       
-       
-    # Plot hist ln(overline(C(z))) # f)
-    fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
-    
-    ax.hist(mean_c_log, bins = 50, color= 'peru', alpha = 0.8)
-    ax.vlines(mean_conc_log, 0,150, 
-              color = 'firebrick', lw = 2, label = r'$\mathregular{\overline{ln(\overline{C_{mod}})}}$')
-    ax.vlines(mean_conc_log+ std_conc_rem, 0,150, 
-              color = 'mediumorchid', lw = 3,ls = '--', label = r'$\mathregular{\overline{ln(\overline{C_{mod}})} \pm u_p}$')
-    ax.vlines(mean_conc_log-std_conc_rem, 0,150, 
-              color = 'mediumorchid', lw = 3,ls = '--')
-     
-    ax.legend(loc = 'upper right', fontsize = 18, framealpha = 1)
-    ax.set_xlabel(r'$\mathregular{ln(C)}$ (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
-    ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
-    ax.tick_params(axis='both', which='major', labelsize = 18)
-    ax.set_xlim(1,5)
-    ax.set_ylim(0,37)
-        
-    fig.tight_layout()
-    figname = '_hist_ln_overline_C_mod_vertical_' + str(l+1) + '_'
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
-    fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
-       
-    
+              
+        # Plot overline(C(z))
+        fig, ax = plt.subplots(figsize=(6, 6), dpi = 100)
         
+        ax.hist(mean_c, bins = 50, color= 'teal')
+        ax.vlines(mean_conc, 0,170, 
+                  color = 'darkred', lw = 2, label = r'$\mathregular{\overline{C_{mod}}}$')
+           
+        ax.legend(loc = 'upper right', fontsize = 18)
+        ax.set_xlabel(r'C (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
+        ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
+        ax.tick_params(axis='both', which='major', labelsize = 18)
+        ax.set_xlim(0,200)
+        ax.set_ylim(0,50)
+            
+        fig.tight_layout()
+        figname = '_hist_overline_C_mod_vertical_' + str(l+1) + '_'
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
+           
+           
+        # Plot hist ln(overline(C(z))) # f)
+        fig, ax = plt.subplots(figsize=(6, 8), dpi = 100)
+        
+        ax.hist(mean_c_log, bins = 50, color= 'peru', alpha = 0.8)
+        ax.vlines(mean_conc_log, 0,150, 
+                  color = 'firebrick', lw = 2, label = r'$\mathregular{\overline{ln(\overline{C_{mod}})}}$')
+        ax.vlines(mean_conc_log+ std_conc_rem, 0,150, 
+                  color = 'mediumorchid', lw = 3,ls = '--', label = r'$\mathregular{\overline{ln(\overline{C_{mod}})} \pm u_p}$')
+        ax.vlines(mean_conc_log-std_conc_rem, 0,150, 
+                  color = 'mediumorchid', lw = 3,ls = '--')
+         
+        ax.legend(loc = 'upper right', fontsize = 18, framealpha = 1)
+        ax.set_xlabel(r'$\mathregular{ln(C)}$ (mg l$^{\rm{-1}}$)', fontsize = 20, weight = 'bold')
+        ax.set_ylabel('Frequency', fontsize = 20, weight = 'bold')    
+        ax.tick_params(axis='both', which='major', labelsize = 18)
+        ax.set_xlim(1,5)
+        ax.set_ylim(0,37)
+            
+        fig.tight_layout()
+        figname = '_hist_ln_overline_C_mod_vertical_' + str(l+1) + '_'
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 300, bbox_inches='tight')
+        fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.eps', dpi = 300, bbox_inches='tight')
+           
         
     #%% 3. Uncertainty u_m due to lateral integration
     # Based on nomograph (Guy & Norman 1970, based on Hubbell 1960)
@@ -895,9 +788,7 @@ def uncertainty_analysis(analysis_data, outpath, outpath_figures, sampling_date,
     figname = '_Contribution_to_U_F_article'
     fig.savefig(outpath_figures + '\\' + str(sampling_date) + figname + most_frequent_sampler + '.png', dpi = 400, bbox_inches='tight')
       
-    #%% Export data 
-    maxpost = maxpost.iloc[::-1]
-    maxpost.reset_index(drop = True, inplace = True)
+    #%% Export data     
     uncertainty = pd.DataFrame([u_sys, u_m, np.sqrt(u2_p_final),np.sqrt(U2_param), np.sqrt(U2_rem), U_C_perc, U_Q, U_F]).transpose()
     uncertainty.columns = ['u\'_sys', 'u\'_m', 'u\'_p', 'u\'_p,param','u\'_p,struc', 'U\'_C', 'U\'_Q', 'U\'F']
 
diff --git a/classes/__pycache__/SDC_fines_method.cpython-38.pyc b/classes/__pycache__/SDC_fines_method.cpython-38.pyc
index 5bac8b637606f61d3e9cd5bd8bacff5e10710f44..80a58e1e2853650abf28a69cad2bb56eb3e53327 100644
GIT binary patch
delta 2464
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

delta 2596
zcma)8eN0=|6@S+s#KEx(0c`vMHNh#E5D3sDEehb^w%LkkVpt1#bMj(1#@I0!KfiPi
zJVRPaLf4Vdo_^%Bu{&)Y%}STK>yl+jx^!Fi(Jj*U$0Tc$7EMtXRnw$N`=@^_yZ6~4
zBgwX0>HY3G_nvb<&iS3IckK}Q<18^gYcLdYv`wBNfnzggjd~3^n6YYVR}u%_D(=F=
zhToAY^cw}7EODCq!ab>8s7e#U$+qyeus5gU`I27JkA~8qS|4*``k{4GJ7E&0;DBV2
zbSYkT!wYHEG%<7VqM4KJ;jhX?Fg>Tuud)+fqP8=6+YZp?Z4cgM+nw^IIl@W1WZQJ^
z1a-1n*3eZCQOi}d-%h_-@IsGnPE8F}VKp`tmFgr_N+Xl-9`qD775n9{g#D$Qyg96=
z-vGRfGeuj;*Rk8)qBg{ISY=;}&#WpSuiyvvHaa5V-|hQp|1s{ZuqaXK#(9HDZ4}?Z
z&nuq8TZS&nH_}8lz&7|2+gA4eM`Rv2a>YflP9>&QuvIpK9p><?qk_iqFpbTTrP$n#
z<AcX${_fZ)XWX3ZQ!=xLWhO}EK0z<nDgA)l7ao*Vl10``lN~gmujUtcjmikG&#CAY
z+mrpv-23zH{lb9Uf5)AAys_LHV`XOboA4ICQnrm8#j|Cl_*q#8nZz1XH93Y|CJXr#
z1E!Y7<6F4d0yu8rWUY-!CluXf;q**9sc0vcW>4W&Qw4b&Z<tQgRrQwMl9Jc}C0Z2?
zC4sHb32HcvF^jF(30hF6*&Xbueo8fhrz~cY!p8DOl18EYjN<=n@n7%bT|wT#BbK#!
z>u*x)YFuM2M~78MzJ)Gp4f!^Dtrg^5iY2(C@FZ5+4)|Y}eW}&*<E&`r&9NSZjJ`BU
zwWhhGPby<14Ev`^a+f0Osk9ru1C=jv^6n=%rpdcxA1rL)=sE#d2$D2O`ea{tNZw6v
zwGZCITefa;h7x!qIlM&Q?^619kS{2CC&*Jv)a_DR#d>_zP)7S&O5eVfj-+3*rz+rm
z?5b=ei#Soa*7gBAD|`<IpdHS__aOrxLJhnCKY&HNQ2F>&20ps~ER;Yg><Sv;hjZGb
zS1E)DoP+c5Be(!RhKq0sF2l$06SxAOz)#_4)bi(WRbf=FXhz@{@XI+?+)Q69cc*qh
z>h9vwExkJrTwQ8=>}~cg4eq2DnSx*C>uJyJcWK$1^xxl^U*E5mW{JF0?vwjv-;lPK
zbA6g=s`9D|jPy~xxhgYT-K-{j=E5U4NZk+}5_J@w5v!QEm%%6lMRhT0jKU&^*EU#D
zXxfBUmyJYmlWSZrvRNks2`{)rGJ*|tpnskXDBfSg11)C!u<jy}QCugsPO_N;43Z3{
zC<I%S_WKT(DmTMyg7l;9&ulPfiIw$T>xY!~ua4lk%9+o-=Pq@OmpgsY=L2FSG#Z%j
zB!!6~DkPnbHisC*6ZN+0;PGRuY2D++PT!8<kT4-dC4WRQ8P_`Y1{>q}QGMd>Ba<i5
zyZ+1fj6RJQ*S9pgRKe@xrHk9H|D!_*T+rn^a^;`38uz%_>FW&zNBoZ5R!fJ$%?)b^
zk9>p6&Rc}1=oy8f$i9To`-Df>8x-QgU?36^cs$)OW8!rlQ4sx7D4JdA5r=akkFAZD
z$tU<lV@Ek(B=oRpVN8q;g(88tkX1*bK_0yu`06l?+W*dD4gPjRZ*}bd+SO7!8%wwS
z4Q9KP=>@eIWdm<9*oW24_4uczP0lx$8Hp#DdWS%DR9&yaYpy07Zg!LHxX`@kp6Kqu
z`j&fR9>Ak5+iQ-|1#W66P(l#e<@0*}vP&Z#qPjTC;AJ#E+FQa{<sw<tu>WSYB8rDl
zdh`;R$Ciz?<aoxn@jX?!HsMc%;#plhAPI>`Xe6tV0trbRM)PCynZ?IaghX(AYlmfq
zu8>_Z7>z{5cwD@}cKM9KmCU=Xr-+qb&62!4n<7#J9(Ql~i;AZO(`M3+MWPZNXnUBF
zV6x3L#h2ajQt}^2j73F>UlrdsGU6Ba3v8M<_(jpbUr6LBQ0|G24(8-M<_W+TDs)ju
zlr0R6LLebTLUD;V&|{DKM<_!S)p*-%1tl9@n@4MV&&Gr7HY`)F!dzn4v4IeS8V0ot
zIvM0L&ZMK5Zg;ATn#|Sq1i?SJHy9m6!>Mi+sGNkNIum!VR^e~lt$4okAq!6v<}znj
z2m(Y01tD87<{t%rTwK8Goez_XNIdQ261qJNRez(4XA4LC5(`))G$7KSF;3L7E$J@|
KM^Ajj<Nh~wFB}>G

diff --git a/classes/__pycache__/SDC_method.cpython-38.pyc b/classes/__pycache__/SDC_method.cpython-38.pyc
index 88350a5e69c7e26f5c1a2845ba65b6656994b6f7..e21284ed46ad6d8d6d5e38799777e8bb6debdccd 100644
GIT binary patch
literal 17304
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
U6z*^-f*0<LNd}Udk{|7V0WTn!i2wiq

literal 17281
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
E1HcfDa{vGU

diff --git a/classes/__pycache__/Sed_flux_big_bend.cpython-38.pyc b/classes/__pycache__/Sed_flux_big_bend.cpython-38.pyc
index 5d43f5b1c76eb827b2e3056999c6ad1f2a63fb38..349b62f06455ff9a5dd8d3ddacd254475dea8b71 100644
GIT binary patch
literal 4616
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
F{|n?zD0%<@

delta 1557
zcmah}TWb?R6rR~z?$_3~Yg?PviUuq;N?QuW7cVa&h*r>`F58?KBikh1ZnTw+s}#YP
zg0O!ec~%hd5BR3|6ZRj7FXCfg;@L~KtJ&6F=FH?f-+brHIkR~?|7|*bH<gMLd|tk%
z)h}b8(my#`GY_~&wD$QvKTQPzeX3yUf^H;nS)n%Bd!jho;1wL(Pgz2M0s|~?z=Hsh
zTBJiE+F^92OCSdE9@AlU77{?-Fe2&F9_g@<gcPJ916jyH9(Qms(&05mV|BWR?^W`S
zK754;*EM)e*ds8iMRcn3BH5$k1lNo`iv&hQa;*OZa>jaWM?k6nD#5tJjc8FVHc&Of
z!aB~0BT^FK<UaR+aX6D<oHaM)sUv(`H?GBW!P|fB_;ZH_z%wVjx_Ex`Lv+IExjD^*
z$K6`5xp~=sr@U)e-l49nJ6%a&Ig?I?p=u)O(He!qD9%31@cRd|hdsn%a9vw2<r970
zAdyfxp9OROsHKOM?1;vp+%VxdUoe139<zZn`AH1+d%g8*h&MjtMOz8&WRFt3>{|zZ
zO5V-ZvQiGn9a21P{z}Y`m1ELIy(Vo`8(>lCfEHBz@Q68+ykWjh-n+@;50yh>@v_o-
zBLCR2*BMD^KCh}$v#qIeqgF+r-D(AZV&00V)s`Yxs#d%rx9Xa#)L)pB>4ho#3%7W+
z*~Wmptg7;^#ctLcXyhGpKfOw$=GXKB&ueu}F@LAe6jk>>!%ie&n-ZD}IJR%2A#9#<
zG)c2G&zT=H;`LaR76`t5hBEy^-uBw#Tz`%k*fomY{wa2uakPq)Rz#AZS&<}*Z?rdC
zyXsl<R`wKcu`NY2x3jZ`dLAQ{vpdqWs<N`=7p$D$m7J;sF_*QvILr!SIY+Cs7@&=K
zVt;`S&rnLGFk%q&1TTg0f}qD+3gZPqmv_+#vFzTD@*qPObwSncr&Gs3pPY^*%<s9&
Fe*lrYefIzW

diff --git a/classes/__pycache__/Sed_flux_big_straight.cpython-38.pyc b/classes/__pycache__/Sed_flux_big_straight.cpython-38.pyc
index d0996c9e2e14e7d1e851ffbcc439097d75c6f1ad..a732de2f7bbee1ac7ba6fd66e7caac1a5eb158d1 100644
GIT binary patch
literal 4718
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

delta 1481
zcmaJ>-HRJl6u)O??#v{aWRl%{?rxUdx^$bR3%k~~R-)nuB7)Fj3njD+)7)_y%x==j
zM0X`=h1C~PaG5`#nMd_aeGq)~59niI{sM*SlTRX~=iYoamS(so=lp)>{LZ~+KK|Z%
zSWewYCgTKu_kRTEm%?dkP5K8;&#$aI(tt9BQKmAD=`6<LEaB=Q)Kt!#wsTbDPLP89
z>3~vQpg*kA*cdI-xPYFNX<`Z)!rOx~O-``w6!+K$+r%y};nLX_`kRQv*t%<AM{|-(
z)57}|>oZeqNqGN3IkU{pvh6QPEz8ca3jXJQ-jQN5xWOy5i8iF4piQb@uPS)n?@2|8
z;3xt+f;$n^Jq<xm3w~1l2RrC?Bs2uPB-%P~fBfTl2CjE-b#BUpFkljsC$n<3J}|v6
z^`rseQwycO+>=>?k*}l@89+$-GBf&$FZps0PVjn{d<VC`Ktvf(Up+y+WH8VRF{4C8
zD5B+5i7+#i`*fNn@Em5bv|v<U_hZwFyeixbN)-*Z{H=0J5<nJ#tX>^S=Xj9DKpDjS
zSZ~yxXUw{fqQrPFA~N$Oa-y(8I8rQfk=Lr^-rMd-wdiX-=>!U-N}hAl>*AydY-xxM
z@$&quA-KRwSrWnsL<#6A*av0UN`cHIv5*%hXT{fFSiHJWoO*GC@j=C|cAk?uCs!gL
z%ai@`8LW(_Iz2z$Z*#WIGa&%p>U)1oRmG67VcN<t@)4=51!s+|m0Hre({Qbh@7WFa
zt{;K*FKl@DppoD=V-;xd*m(VY6~l<y&GudU&m;6}rqyhH=6F`Ci*<*t6PZ@G-JSy~
zOOfU|?WSFKqIlhIH+;L<_&m6l+Fj$%ctpKc_mH8c=h?@Re9$;VV;=>-r``fBpysYh
z{f6Ikf-C0Q_V{hVI*-2#-aeXLT%D_Eh`a;}7?7sHUuNmOm<}5Rub~9ea3jk(zRnHL
zNE2HHWQXhWB}ph%@{wj)tW~$Hh#qzi+Q;5@@J+h-fp;F&YuO{~Q>S_P;xl8a<&P~f
zjzxTweP!?2>>!;f6l*!5w7<7VzL_ab$^AvLHAh}pBp=R^7Z=G#GxFvC$qqB63;afi
h3Czt`e3$r;BfWaiV%?_m2LBv&w$Lccdhp@W=2N6tbIAYz

diff --git a/classes/__pycache__/Sed_flux_small_bend.cpython-38.pyc b/classes/__pycache__/Sed_flux_small_bend.cpython-38.pyc
index e21ab33c99001233a000905bd44d9d36852de4f3..7083782b3d1303d6d3318af406eb9e43e1cbfca8 100644
GIT binary patch
delta 2275
zcmcIm&2Jk;6rb4-uf5*gIF21VX`7nXl$he?t06+Pw1S8W5|^r|NU2t9&vxTx?RD3i
z)DCNmlygwTp7@etapF`}NO0osK+Flapr{A#JrLgPIv<7@_0n0*?Azb`=FNM*c^doY
z3r~yMT~(D4v}dsi^KSmBc16U0{;(`w#OGpweve85#chfWiYpXX-8g`5JaA&47Bn!c
z7>1*k219}V9`x29LZC|d9!U_HB#A;)qLDF6>hd0Xh)If!?_!Kdx+{2`$NP8(o>jER
z-Tw>_VPEuOJBUnpl8=313hm$=0-Iy+DOfdy{&zkDoNS-(ir(8V;EGI!<d_%t5~tk;
ze@WS^xe+1c$<(f}#)bUph!f1kv-NXl@oykVTJ~dJ0y;}<uwrClqvp>K5<lAUNjzWi
zd8QD#xGUgj8xgjN^c&^oNWW3@|J^26FAVm1B|4F>(YGAAv@61%!hZ5)?AW{9kK`?$
zE$O3GCaQ%jL}tjV<jNo#w6BoY$ZVfuYV50|L|%{VhZ?y`-XLXiZI=&~8Y6Qj-(<ck
zfxncGd?|;>LJsxFB3UBWLo!qmNrNj^RB=dnoGe=y$~L}(GpLWd2`ef{7HU|eH^S1k
zP*)x*Z+w64h0D7)y8ch<`z2_9RFuI_@iBG=-DG&eOoA+VlSx1rssNhy*_iY}9H_tx
zeQty6V`g{Np;;F1=~>NBGM0sXHC%Z<k20t`1}HE?VU->1Yb3omg~F*6xSQ~S;HNAe
z^d9%+{fs}}hbv@{f7JG6FRM=ybO)7If;qXU(xl$18@8=i%mxWI<PUNs?jQlz(gC~F
zN|;IyYF4YZZ3aKe_j&?gE}Piq%H<MA6Lzg(w!DsQQnBjTj{6*!pW{M_cP}$$5e6#S
zM#Z#UDYOl{xo%LgVjI;Bs+w)jHJXlXcr~YCef1@4zut01ww8y%f(}i%y{&y@+D^4s
z^E!pu`dq7YkOG_v6~`tJM*M-(@K}&E_Smdh>)!TsajkB6>#k{S+J^hdTDWhwSePxB
zsC?%*;ceksvtiZt;BKa($5w(jo-}JTS*bW}z1FC%o2@|@zun4N@-N>tZ_26Lr5xp(
zwnt;2&ZZmOOO{vJB~OK>?RZploy`WJLffv@snB6#tR2cgW1Z+NwTvwj7E{r1U86(A
z$LpqR2Hzxa;&ech<v>%4ai)F4sGGrpa=l08FbUl=>rI+Ik<Qe&413dT(eW+Q)|*bN
zRjb&hYcwpACTgUuw>-o3sKiV-W15WIL}()VV7L^S8-pJ%$i`LK@IDOl2&GW#3$PHM
z#sZ(_6&!r7O!asf7Z5y$9OiKB@7VA+QUHmcFb)e`239IKg;Sh>^Sp*L0{DX`jf=qJ
z4h8NsU*IS444&a8@idph8XpEzI!7g4Cr(w@6I5($)|(x7C3vRHi0%>u7-;IH-n(GX
zbXx~WR+djyIL&nQFwbE$V!kzh7IPS#2z@Th4^guNr^j&cL>0?)z+E_-I}8WEtC^4K
pv7@D-H3LV>L*OxY7>>A$|MLE!mYZe;8VY#ogu_26YS7c(`3H67Pn-Y%

delta 1399
zcma)6OK;Oa5Z>`4&eM6fF)3*%Q6Yj#Emc8Cr5xx5dO@N{D56+yHiQbdNnHn}C~1KR
zZb+5(2heasoGQ-n5BLMVz!A>9A*3*N9*z5uSZmkonQy<D{btt(xv%HthoO+4VB7f&
zr4J(q@}vmmFLUBJq(!uTB6-1rx&@jAs}>Xu35|xtDxRHe2&YBBq2FwtAoe@hw=z5n
zNvYiiw@;{#`rBNSZ}2og$y-h#`_Lv$o(5@%$}~(PG)iM-sVUHSQ#3h~Z$Jy5MY0Dg
zuh1gwi>9YVXu^~l&=3{Uf>DBV&VDO|#uajgf2j*dB50(|H$DGDMMoX1WO_~CFfIEb
zC9kB;NI{|J-V2X82cPa@*tj?OeC#y*Ji$Etrmx`{#-F*Z9^VOnpttRQytX&B+wP_?
zetOu=Wm^Cmr&(u<Ui=Es3uQpXy)8(PHZ*<Zu9h}~qwhTG>#oYmFQ+B}Tpe^aa1`yX
zt1xXS1D&vGkHHW{FCLZ9(IeF8s@)@V)IK6Uwn8CKc{i)A_R=6}JYw?6nEfp&m=TaY
zZgXsa=^Z6AtVSq#K=L_u7|5jx0d;F#({**Vv_UOU|3KCd@N~0WaEZMOKDuY$5yOLn
zC2D&0nP%`fFJs5{^Y-sLzO1lXt5!>fTB(_awoxwSqn2cps=8JzS^lC{T{AU(?Ik-5
zO^w=D$`XxA4Wo&gVQAYHzpm98m2ZKceUzs}(Offi_FbN2f92VH?>gct!@hXNG!Ay(
zx{m|lV<12fA`lbVx3IG4^Fo&3)8T;YWFs;p1RD{-ez`Nj36KHwbu#>Q&SA=@ElE{r
zrKqZwxKUfLZX1`F8p((jU)4?aCNi;m6~h!_b@fF_zcDwYRUxshI)b>ZUF6N_(~xd!
z+~J&=c0rRp(t$bc6sFJv&$z&BAv!YEcg?z710J`Ty^bcH6b8;Y*P3pOYwj3*tlMnZ
RWporAs*m&I46?)M!ao?$UF!e<

diff --git a/classes/__pycache__/Sed_flux_small_straight.cpython-38.pyc b/classes/__pycache__/Sed_flux_small_straight.cpython-38.pyc
index a7cdf704a6c62245f3c3043161970dc4425af8f6..fd75831099edbb3c8bbcf23a4f984cbd877fdf50 100644
GIT binary patch
literal 4704
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
RNi>Nd;CLv!d`IHS{{RsxPd5Mn

delta 1853
zcma)6&5zqe6rbmh*!glkH(Bqd>2^1jSe8~@%7T!V_5fU{gg~?xi^^CT<3{Aeb(|_&
zB^VSqB6a0|AQ1-+9J#@j8yC(#pgpoDI9FA}8^;N|B)h`VJipBE_kM5Yz44sXe!ikS
zNT(A7pD%v|^S9EmQh{HO_cp60Hx{WtMH-_Lm1&$NXws4=pv4$+Y_Gi|El~<IM~hY*
zNpgs#FnkRKO0<j;NtzF_cqs5v6%(OzqKe7+Oo};v1ynH|P3<Vmp{X-J6;;!;Y9%mF
zW=_j4(O3vlLs~APiFxMuzk`}9&~3W&4bh6UMz7<0?WgDPH4m0Q5dVltSPw_?KZ`x_
z_R#HetU%zT(bj?a(ZdRt!tpMSZj~p50_7+_ubU+efyzT}z>Nv3;Dj6U10D-OzU5Rh
zh6x$+xXLtDXohC7czKKvXkjS2oXZbj1S1dLBhTRBS2!h%MK?AgwCG9$7>FtvL7AY>
zvA0TSK_!>sYse{0_+jk-C}GDKSMprhjbA1kV(S+yNu?X#37>KyXLA+jaJJ;i1(-1Y
zIN`<zv5N)H?0aPb#FJ57BHYi$%U*RdTh!Ini67r*HKGN&6;?sUe@S}H0&I#rf+Cr~
zFmBD3&J@B99AXE~G!Far@XxSoNsLZ~J6L4%&bMv?7SL@bd!EKvbm!kDW3_~FdNAw9
zLhQWO<q9hKoX0F4J4Y)8qJ}JXg~wD`mYnZd#U%rI#yzeqIMHczGkTViPsncV!_#~C
zb)0I<P-fbM_%D*#ik8v4Eu-1gyRKt2tVeDD`g7QF1SI)aQull>wF8>}ed>)5M4WPB
zXadn_+K&teKQ&_Ez~|)dX&+yx*0XKX(K|hqYg^`SE|474ZW?tnNYo9x;Tp}xQ~&Su
zjWYX=1JUX9+7tyH$2bc3meKbO<$Xx_KPWf$M7QBK%^+6qG&@c=fG;$uuZOal5;?lr
z$3(W~L#B+&R5P2NGrKoX-C?(aa}y04-H*@^J`Vz<APad>fIQS-i*Qqcdkr|?NChf{
zdwC}=<1GHBI5*wODNqzxR2Ii8(``<GDj+tk@^5mX`fe$Zbe(qUx*mvLyVtUhoa>k?
zP`dSoeRQ*9yNy=ksp+sA%y|`!R_g0d%;sAM|0%w<ex!%BT}EaRZ{NBoVvhJPvhfYA
z9P01iTB7?`a~lV9cz+32qx}2Jkl)U&A7~50?WNc#=fM)-|B~C7FX{Ca!hhv9Z?n@7
h7V}K|!bY+l2J&I6Lwim04!ifeH8es&_V4De{R8ca$)^AS

diff --git a/classes/__pycache__/Sediment_flux_BD_single.cpython-38.pyc b/classes/__pycache__/Sediment_flux_BD_single.cpython-38.pyc
index 2bf8666b0d6313ba8499e4f30e6f8fec227cfa3d..4dd3580ea4f24ed20c83f5db5defc6376c03d905 100644
GIT binary patch
delta 1063
zcmZ`&&rj4q6mF-#yW53ryR0iHU;;`EBzo|I7=zqAZb*!YX$n(HcT0COErc~w*MxY-
z^kUQl+`V}Bt|zZ1lX&&)pWvHr0}|s*=FNNGd~d$j*Y>piscmgrmMOq^{?iUVezv~K
zV}*y+Xu+<*dIBqbgam;~Jt0@Xin)qKjIe}dtY8&up_XeIqQZ$N3Yk>xa<wbfj(TdY
zXHrkgjZE(8xtS?FBd=xV8DDj*V`Gf<a|xU0D6e0@HC)HF3bi;&MQn8h+yGXCYG+mk
z7O<&~aDvXod<r;I)S`_(kEY>d8raP~BEP`5!FT#1Vbq|ILE$WKCUvTpky3`m59P*2
z?aHxv8C_m@Dv~wa%Iykq`v{Q7cqX@td+OXcvuTqzgetgG9=)SYpkD6?u7LH)qCC0H
zky#;kpmK*gP_+X&vt`b=t2zJWBWzBd@)VH=rQ!<&t~?REkSkk9ZC3#NS|#gNVu-9=
zvcZEU|HE{syN9|0b&5spSY*X}Z5!-wt?e>vi;TPjKTW;VPcRe16}Onx=bsV@z8@lU
z!@n-(`tfkz_tFDDj=eM^eiZI!Z2E6>Cx8p=39=J~7p&rqzS$U(D9M<z7Z3bwrB!^_
zm&VNSG4_V>AWNBXm_%7w2h&UUXb>}JbIS`sDe=<iWdQdD!<5|MCEes^o|^?Q3>}YH
z^C*bD;UG<;oj4$V5(aDrpuujGjQ|IA?>>&g2*m6p@JUdFhIN~1JS~F4m9lUqc3G2m
z!rO}vkE^_h6(5WRalQCryq=3eP>@tnt=W<;mJ>n5r&c^Omn2a~#Vd35?gsEynoRRN
zJlOR-rX+_4!x35J1*=1l@KdtPgLb#@<e6Ip{#AiF-JsH*w3;`yd>5?ME#AtmTD}uj
S+^Ma$xB^+fY91E7+VUSTw-ze^

delta 1027
zcmZ`%zi-n(6!zKikJxdVIB84z10kVS%8(+EU_(M}g_u~XE?!Pf&vBhNPIPvvraBX(
zN^D3$w=uP>urRQ*@ed%7EU_~42QcvLSS>~3r1$*3@80*`yYqcmov)gQrl||CUc5(c
z_oMlxG%IDWSWWn<V0&QEBT*2T)EANxc$CNl5s^rwL}a26)l(BC7MXC4kPwS~DN*B6
zfl7Tj(PE`QN?%RNu~s0hUrzK`zc9cmL?h)H(Jm#TUy4aaEog&Oh*7YWjAe+JErC=a
z%Vf%h8CRJC+)_(87cWs#g`6c;Vdfx1OR!Ue?D{~YKOwdtZVV7jnZ~Lufq^Qig%zge
zNX{YuE^j{8Z)}&Z(RIN&qB~?csTWLhAOiD*tR!`QU)h+k5^3esoYf#@ttB)CqAiSN
zqScI97ZM95wwMLeTA*3aHJ@*4{+llneQ~<ENO!I}{)X!Ot77fdn*xNlibjp1yhyhf
z17+ht1lP&_&9qpfCmsmQ;%)U5+5DY)_{_GR`a$4_9*+H?i+jEskW?Icwz*HIc<4kC
zj+~IB$ZI!JV-ostPP$P6PDa6G=u(kC*IEy$1n(-XIl=hY!O_qO0^D^&LbE5BS_``C
zdpL@z<9o+3m0^Rw)^^oiFmmE{lmF1RW_J0ijjiP&G_f1I``80nh$H{Zg%a*KqHCb1
z>zUig+$OkGJe}J06F0!)Q55;zz@<*;x%LWBqa#0_0`G@0en5QBk0aX(U5C0+d{w-C
z=Gtne_u<%bK6Hu>?0R+$xED-LivqsQKb7yG4*ynuxzUHtf}|kDup|vB;$J3ns&65Q
zztubKdyv(xrz*x|bcAs#hm+xWN^fU#D`RNjMD#8IoBz@`;SW`fmSis<@HeHVlHa1u
S_l?eSR)%(Nx*h(?*!}}Z9tyw!

diff --git a/classes/__pycache__/Uncertainty_estimation.cpython-38.pyc b/classes/__pycache__/Uncertainty_estimation.cpython-38.pyc
index d28a92c22b93675b2f981ff17ee60a4e38eebbe5..38ba114b8e76cf1fd8106e8c7ca91e5954b8f5e0 100644
GIT binary patch
literal 21419
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

literal 22208
zcmd6P34B~t_5Zv#OD2=0X_96sZ90^+O-h@#=>lCdX}Ut!EG;c5!({Hu%OsPT>6@9P
znZ6OBKqf+=AU}3%BB+!_0Z}Oml|>XqP&Va(2q<Di5d~xu`v0E$X3YZp@c$E&&%N)i
z=bn4Ed+xpOO-o*$&49l*zMUui<W7U(_moNh6OnNs1UDdJhTR4xFwraQ7Wh-#ZRAf=
zw|Tck(Ce~xTX|Xb?rc1bUR!t0?i|#anE8Ce?p!7|8LBO=a{<`a;1BdE9=RiAuWG2a
z*Uqn9Xt!_N(pbONW^3;71nmLEFDtHYJCf~+B-w-h_E4`&k(Sx}{9(J><+Cdi^8`bR
zr!5?k?4FR_<zw^wioM&<Jnelp6oh?DQtY7)$sUrF?x5Y@&NJ(`wAj~6K1p$T?c2g_
zUXR<p$>WxMLCNmIxKtACkeI!#&qjUM(dbR_(e3N}fa(f){JuGM$%A^u-XkeN<n0R+
z1H_@tvHKNUl`BLDD|UZ?I#mP9KD*ZigcAK~Mo&03FJ|}nIMN;d0H)CaXqZ^9$LqDX
zN%nA1Y7cwo*gygM&W+6*wzf3e>$mK(@2qcZtl!eSYdKnmI{c`WdL$i=r#s;FU~(X(
z;_`+1fU|A$+Qx<rXkWj2<ED+xyMVTR-NxoEYnz(v>$W!9>+Rd>8=E&av}~$xv~O!^
z+_tr8ZH?XD1hQcMwvQoaJ7<R?*_jk_dAvbPbr+Zy1WI0J?{M`<V4_>{^Z+53-3^II
zkZ^pUHka4$lljCjd`eJ&(Z+VW&mWp&4+66l9idPlxNP3M-rn9C*%z+yEAl+Bn%Eqi
zx2ncA44F1;sTMSIFysma-8qzx|MlY8j9^3vYSRsdn8<{3!=PcvFenTeqB$WkWDJ>5
zDwZ1#2nU2zy3@>z2gN}PTIDiRG>@61`D(tJS8Rw*P;;53OH`U!)<CJx#H<6Qp{zkG
z%Vsu~J!Bl1+&{TpU^y)Jd}}B>WQ$EE$ZG(9z{YFxM%P3O`bG4~Pu7TuKGBK&Hq=a@
z8g(LvGLaRqiL8(nv0^rfm9SD)#>&}bb^`KK*i=@*rZGD^kxgeOu}U_B&1AD!6{}{m
z*~x4Uo6Bn0JT{*#V6|)^Tf`Q#CF~S-DqG5yvE^(9Tgg_jI_6;YY&C0OYuH-0j;&`K
z*hY35JDqJ}o7on&m2G3&StDy=&8&s(U_03vY!}<j&Sb4@4?BxF+1bp++T`YFA#*dv
zB-YMk*1<filXWpK>t;UYX92dCDJ;lBEX;aXFWblZScL6oDvPo&uyfcK*}3dIc7UDF
zE?^h3eimZ`>`Uw-b}>81E@79lL+mnkIr}oZg8dJ>l3m5FX4kN5*>&uC_7!%ReU%Ne
zA@((P1G|xZoqdCSlikFQu$$Q}>{ig}HU#|3TcbtbU5;AFzBMEc6!LTtrK83D6Z;GM
zOWTd?+exlWOmJmjQfv~W=Jpi^c1KL?%<alLBq}QB;ho9WNgkr*9V-m|lfcLCBx@%n
zU_~dX1nVxe5Ya|t-yPis_1{}z2;~jtBlZ1qlH<F1d`G!KHVz5Vl2Bgf1QqdMzB)-3
zh6Gt;N7+4)-~vc+Df>SA0sA4lOE#&c&Rn&$bD}D!#!>^jx748K;&~s!G4>;N|3RZ*
zkPXo?gmRKzHAlyD&jSNiP^U0CGW1BziCN1HUC<q1Fd4N(OKR}|$1S4;d$1U-(C&m#
zR%bDE<tTfI{rI3UIz=rXoTN?}5(Go2WUy47teybsPYs#WsRxAURCOvlT5e!RyUd4-
z${Xxq%7YSFgCg1q$YoQmvkWOSQswL?p~*4p0ihK7CK%K*z@AF54;l9^<J2h!4&^*m
zhEy5*DSL$djQyNFDx1|ZXD;Slkv{K3;vQwd8WS<AjQI?dt5^(yS$3Cr$f8U}?iZ;X
z@WVU@r*L|dv&V=+L&5~a%#4{>6q>=*SiFWk4y!Va{W5At$*;-{ofS0a=!wWZk;n~X
zu_vR`nOU`??MdwMXeE0pI)gnOovBV!XQ(q-cA25rpjI+-k>Labd!`7v=q$BTorc`6
z*>BWY>=#r9K0jMzU>dcKR<Y;6iRaZ>RE~DPW!b=M8he3Ch6HL;YKT^|-$iF*<k`Ho
zNIi+Yc!D98MJ;$Qj0jjKvuD+lfx(G{0iGNqbsADLiUB)1hh<0Sra_smLpdQ6N{xCV
zFtDpN%uF?aJCD7jRsqUfbvEL8#e8JIo6lZW=M)nir$H(>zVY1e)oQey6YswOEsE3y
z;B~F9Oa;Fon~>V*e54<Vr$43!R9}d&h#ieCW`Bq-LHZPq;Ub!+x`blr(Bk;>l=yR@
z{=}%KvS*`9x#pIW=IXpv=c}ixwdzvYJS1=pU8Yt*QkQW_HSMiM`w40VdRM3wohPza
z*dGrfjne7ts4PG$D-M7*s9&xc)#aThkxr<&JVp9IwqUth0UMA_HXvHTUWEnt6B}lK
zX0OQ>wE{MvB54EuGL{YC8Uh=k=5qV8LS2FO+3c_Bc7naG+K~Sn`ezSTvNzb@heYK6
zL3upigzT&g&FGw|uEY%9Iw%Tcw?KpB`nyUt3=|_2LF?)e90>IYt1~pvxaaa{LrMeH
z2HoaB14~s{HrSz6iL&S#%zc(Bu(vV(KT8dv$$A~x1NIKWyX?J#;y`{Zzq1Ood7phi
zIrcC1A^V6Omrb#JXD+x~%#Nn(9(xF@dKSv7WBKej>GD8!e^!5Xe}231kiZN{d!3cE
z>1$QT;3TyE7bGm3dcYRd^O6tKN>+pCYpD)2Fd~?^zmOldxVs0e7{wYNMHpk0bul9#
ztRo0%EyXcfu8*0}ay^$X>)u<rJYwA#F!GcMDO10xKdW8De2mHdro?;(h$^#VxsbRG
z{kiP|TA7lqaucnh8_}vr-GEl7A$7945vkMF)78^pTONWgZ;BNIi%o<D=!+F>U_!qU
zm`~tzG$$d(DFFMwnakm3z}bu*cR_Ers9U&3yaF67BvX)=t(<P<ak|wGSlLl^3u(D%
zh;EC{#riO3aIU&doeOUau!oG%?dn!wvYpc-d+#6kC|l#YxK-V(ZUwgdS!x(CQ!U}i
zsgpGtOJLWSXwzTL=VBeRRTJ0DrkGi6l#RM>a_AG#dwMJjGvcxm<9T)zt2ps!LcbXl
zBF@-GLmjZt$T17rS^6zWTBf{DOOiXy#6z_i*tV#3n0*V)o^y=KcJLI+qB}Y7b^u~Q
ztU%ov=iM2xBJ??fQ!H!mU658ox|Z%)6y3#jRM*E{x{d<pT<~l+Al9h60sG9D0Z`85
zP;&NC`MenElR&9{L%+~p#OasxkrVz0xF$qf)mA{v2XFTD7xfo&nsCpU^S?MT(}9vC
zv=R=jAVIebXlJQs#i2Qq?TdN)iDR}uTRl78-W4j3VKh*$JXXY?<ae!(%g<^xM_mmI
z+rVH2qiv!2oeR*fkUfOB=%CmtM%__3xt+C1`_)E16#F48S;C^}B|m_zAkTwns+T|m
zAU9?}Dn^)uP{NKPE=4FqC_jj8I$$r18EK_~Z8BUSwgY-Bi#?0_$?Q4ACm>8Yh|PY6
zy_qv$P4tXe$LTrspc%eY-rgx_xd>1y5T+s6NfS}F80ixcrX!q$P)YtI%9kKLV|4l8
zDIEK<A>MoNRM_2w7U=MnqR&i(SqL;v6^G{@TsC9?9s;X|h39l83y=J4P+U^ooy%3y
zmy`JlV5B-#(pNc@&fzWRB2|MhPlx!iJ?4+@F)mjZ#!O>UegUU^Ek+!l^5{7R<@KIA
z<@5Jm32N4kkP7(Q<X?ZH^n6cm_sJ3jeHeSKTbR&{SaPi!$N@$RV>z62@QN@)l7b~9
zDX1AwN=`wW|DBYa`kAF<>3^M+tcc~ZZ-D~K5SGVvWTm<R8cU@sI2BhSwS=_vW2m?a
zZN{Qv-5BL#>k^CWpibSCW;y=*Xr^xD)TzhZh;FM7nmBD%s;6-)(tt9Za%+%EP!6@~
z>G1r>N>Yop>=%gFA*@H(a4;(YLp{B0tX3OGa)4!{-)V84k))rF@bB}0pl(V@IC7hL
zF2#{8|8*Q$7&DKsbrbk1vz6PrZJ5LOwhlcrY+ZU!-PRTDJ&$bN2&?w*u9Dji+W5-R
zIFJW#DKG9_H;uMy(RQ+HYCE@U&0Hf}Fr$QB<8zPYrLB__c$*z)vlHQrPq2Ug$yIXK
zf1Tv4RGam4oy2+%itT34a=AGZ=~mK9?q4>?z53bQJ3&A4>r;M0TE9J{sfQ-*y$5_-
zskUUaS;4iQ{Jn%-NUlqx^m#m+I)?w!Ii5`&<;jd=Wu2cFXZmyc3%LJ$c2e@=Cw(}l
zE<<e@uXT;CjmpW|wlQiuKE^Y$jA<=)bFRC=oAIp$dX8Z&^q#u4DBXKIS&RQ`&j@2A
zB?lO%`@R23kA{6-ax*S>SE@TkY4kF9nzY}L5K<bwV}wTU7^TsPe!51N@4c97^v(>8
zZs*ok2IPcBuT*!&3TO>avnd_C6|MFjgw$$}mgEzR+47TD{7%3cYsLR}Ekw!(NUi!^
zpEIYuqxP-i`mUf#H-heijcIF9`)M@hvwE+Lc93*?1D`HMLEq<0!O=Va6>(424|<R{
z8yLfr-OD9cL2XLDPt&CqW#q|rBt6+6aw*wHt29qG)#{Vw`v1z44UOPP`19fj=+wjS
z>nw*V6gquM-O`9umv&E+jeD93<*d*u)q<K{oWLZWbV9MOT)#2FsU}V-J-7vaC`uNl
zPxTbjIYdM?^XGoLL(y;1P^$8ql1_|kS3Bv3Ky59hQ~WL}L46cyFR$(5wcg|{LN{(s
zx^eF1Q>~qKQ9p0v<8A!OHUX8V)c}>~r*<kJ6dQQE^iqsHM(LjPp0X*rH*V{{kZA#c
z=Q#*pL^v1WJhUV!ZALhNa6Uo@%7U=j4t1|ebr+~4p%)@d!iw+;p8eMw5yuW%a2ghh
zhA~pT8fHY<0e+I??p%%Zmk=&OxHv?&iw(dpdkD9x{50kuk1ydpXdjr;_e($13DCbs
zJ6AgGRA+ilHh)S=9>QEML+g>$T#ND!lz)B{z5KIKG$B2}{#1nI$tTk3^7CcnulVFy
zqt$p)^gjp9x)kBuZ#DNfu0-qcW#%f>4seT`l9{VN<qWSu-_)t$YWTA_VMST?1xB26
zuU1!Q-c8Wiyy{hTjc*;IQ*OKJia(vWzxJtqH6UB#C&xX2bS=Vl2-hQg1>rElR}lsg
zhGeVS<IIhTYC!FY6~&6x)oQ)!Xty>Qs=g-RH5koW-xhRxf<c#-)#Sn}LXv_vV~kx=
zpS-{LTkBtnoL@JLm$nR=Ws4`+<?#&{ATw;G2;B{yZ4Vj@Zb~KosIeKL2q8EHk!(;6
zdy1pD^@<r(+=w%QY}#ewUK3sk6NlIGCWs7%7mpn=91%6KX1*qPjtE-TJ}2H(k|iY<
zmG8S7mbJD7@y1narxXl&+^!n0%hTqSTG#m9;cm$n3bxk!T;4vs<<q*(8{X%1`+a!n
zC#3Lqwp#0(*0;L7t{_#nphCfWNq7s&DFs8GZr-FO(5Kl};1#ft+ut2nwG4v>O^7VG
z6pB=Z)B3phIG$k53a{Vo@&;ESk?8jC5JO(b|0X!(yDKhuZTsEdI>x82<N*tX2(M=g
zDMj>Mj*vug{DJLg#<@@y6+++wGhl7voS?Nx=LG0p(vVItXAp1IIc2AJ_)mBliev)h
z;+TLlc?k+Q@kX3$1Xim)7AvACmyNOnRs~TZE*V&Z;@Aj^1=Xq9V|=UE)y9z;F<f2x
zaPsAU&n{YbY?ecQ@V4oVFHf7|kf*-&TGJQbI?*A|f72Iz;r0_8GCJ@-x%BnJ8*Zuk
zbDg}P^@UwKUp&Pj-}%u$_V?BmI%LiJyGMK8bvR^C_@>Ga7A|tg@0~RBXu%(sI^@BH
z{+9PITknu}9x;6F?Vjxp`Pi?1-ceMz%_0Bng_1*kS5!OXYtH}n-Ip739P)yNKizO)
z43MwBx4vu6B2?|X==6L3R=vU@AHU~{(yN}I=a7egaO>dXKH&W2tDm0n*heqb$xn0~
zx#WWz->Z|Ko%6&}<%Y!$`J|W4rHw<=Fr9Dzp?kq2(;afx``^!cb=7=_yy-Gq!Gn8|
zXgvIQ_gkUm4*B_(y{Fu?dx1kfR9}6#`S~h`d|k`+1Kl^y06w>Tx9LMR$07Ip=9$wR
zKg0x=-v9DB-(Ncs7~WR@<?p=;LVe$6?)%;%bZ<C++J);5E_BGYC!0F+KB#fXtrK5)
zw))x+>g4Mmy4`L5(niem#v*&kAJO=k2ksb%*f7CM&Y5`mfg6G9qI<t_$<YTZ9CF^=
zE1oN_!j$*@Ao$T4N9Q`^oWA@Cl@+TTvJ(95lV!ue=d|g2&U^IF4GuZx`NM4w44~Js
z@5~welM{2_f92cPSL|Btkjq{@W$3+&(Kxbm_$!v)T8I3_TMo2c@MF6}zGumnw#^$(
za>(c9xi|mhdq}js^ZT2s!$5xRu8q$;w+HkoTiG;tS*OJz+e4F04a-2on)&xO-n0sh
zmu-FM<*(b;Vy3Ted!gxa47%yATRYYp(d*kCUqAa_zXZFlT6rvQ#!+DSbIGy3@+r*y
zYi~aGZjNDtLw@I9?;J9{Fxw&jSlJOBey7|aKkT~y>Wf#EqWj(Rj_$sw(ji;U+Ocfw
zyBPGvGcWzkK06X8ExPUZ_n(UC^e&zE`;%`44V9A4S%)9Sbk4kB*{g+XmO13Na$mZ?
zYa`fnZ19QsPrZr81KBUVd21Ho{Np?CeDMJo3s&=7@$HvQcF41>r>N&#1L^&{^oPp*
zlfa7`)O(*`7o+MQw{PpZb}JIDSB8)6zYXj@u;-lLyjcdxyr=rFGtcaX*aV;c(K#^>
z&}h!@t-Jd|4AJwmkDhumzsw=O@Vm-?9-cDQA)ouq&O7g$@@AdfVmz?>0R<8@|KQH7
z-_F9^Pk8O7iw=d09r8_cUp)D_UqkgKym`a0`LukL{CdZ^SA4a^A#b~~@e6-@8jM?Z
zn7z`|@UJ?#{E}A}4*n9TPP{+z)Vdms?yCFk4Yyngb(rz|Z*HC=q3RWf^1G_9fSC2Z
z@ZYYw4O4#Nmc!Fxi?YCF<9ln^PysN!E$6|&a-ceA?n!SSehg!6xTyJx>CM^bm0P~(
znjKKarZ=`sowxGcI{BYV*2_2Fi#Ahse`Dtzr-IAZJ^to}$D1Hy=jGjV+SOl$sDFLR
zD-WLi461fq{My533<9yo-w(EIybc1etKp8C?W<06$lI&_asPc!V#*I0w(fs;F?xOD
zA4R*%Y9Qg4u7B>n4y6uiuKlVr|Ewhr`FC3`_)Fx1?GAZzd*HTRmriuZua|y!=Z{~_
zgT|e4>K}i)>{L`OS@%Ho5ClMZH*3{HmlQc<|2^Nl;b&do`&GN#&8t6zAl<j<{`K>o
zhlozQZ1r`;%b~Cfm+gO``vr_%a`Qje)CQ6Gc~6t6^f>6#k^8rem*;_EZ{53T@x1G2
z0*$AXx%(dzLGTyO{nql^AQI=?`CWt50d`wweOUI`;PE=S<K$PmE|~U0om_YB+PiPs
z{d%1&PyNE9^?sNp`<^#0|HZKn>*TxUJ#yu=EUQCa{7T{3Kj`>po&3}}SG+iL$y;^u
z(~Y-;jYBraa4qcYsC6j|g?t65L4vPKGihBK6mV~iio{w#Z%M`AHPCY?zDg;R(S=+D
zUqCYj_bU2=RBhC3VP|4_(6Yl$UprqZC>hk9nh}de7vShCryw5JEMaH2<O*teUcaob
zd)-+0Mj=j15=R{G1?z}Ujw7D2q$ZIq=Ey1)cxXm|*4J@b_eNl|4@Kjz<DY89tQLk@
z5-|A-STS?M&VV1Q_E@WCU;2=mIqdZ{1V>Fc>Bm)~HRse6tknYd9k5ozlb|;o5mNq~
zGK;X7L=kyye9G0LQcmfrWNFfa*^i>+%!!M{2l6_!yo6us+~Vq%v`O4K_4s6GheY2F
zINLpN!W8m6F;kOkpC_mZ5zR#N(DI$z_`D@W@hd@R#8l%B_Pj4FUso+^#-J3?%pQCo
zuun&`gs>v40mtYIcgxpaLw}DPi>z<*(!2NYgYYgs-rILefl%T#^|ku~cJh$uYlU`?
zSHe5&3f^cB;eB>`_Z?pbgy5oj?H>C|J6<#=Kw5SZie^!IT;8yxSpxBAFoZ7_lwr79
zkd-xy=gSBG`rW~I9=?5*Jhx%WYcDTZR;QJ0mRvq(j|8971IINngjU$?+UI1zts_|$
zpTm(lc^dhVhoRfLYiV}KE&T84I{DuD*UT<^dN*un!5K^M`so{ZpN{{%SQmFcVQchW
zPu9f~u=~}mmp<@z)va~$?ZFkt<dwEx-w;@-)eV!Nd)_~O{J0J%a8<(9D*RD`sCCW6
zEvERPzZ-q+el6SO4RpB33)gbO&Q!(<Mk>6RR6CKjJJ;&&y2P9=XF&1z6^}FE!q*}}
zXX9$uW@jX?mB2cY)_FcXl0V%(cW#f%hc72wNWCxE!z9-ae6x1`jEHET9+^2WeLs*O
ztCKS;;Kvsm_<EzJaXJt;<LeNwH<C{y_4<{rV8G>;TD9z?s78ug8>L{_8wxrb{C;eg
z<eJdF5Js_A3kn%S&FJ!ap$~I;y2IbgC05bQeCC=MUZ7>cQf%{M6EbpFMVl^eeh3iP
z#@Q*miT8D&hp?a&Q;6$jS<-eM5tU8osBA`rv~HE8eF5F4H)=wMmg`~roFq*FjIT{l
z;!|<!QyF2j!oV+SLPsH+w3YJ{$X3C0h@IS|^Vf^?w7}CzWD}bauGk8Fq(t)Kfye{p
zd}KAD^N3NQPc)PX6z!mhTbiUzIrn1`OHy$OdU7h(B&gUa(s~m|j?yELOB(i_=n5=|
zgi0etXHc|@qBAMV#OM4^htH_h(9kL3y;LkM@%OQWA&ygdYL_H#8HTnUkE5cQvDXbm
zbY%DvAZj_Z33jq}Co!5+EfcqklDJ`$J3bR>+2yn<Oe}b0^^^4AFlW%r<13E^X58m=
zk08XQ;|_)jY_sFyJtr|(<p90jC*mbPW4j525b$}7Atc1`dY1lqOyUq>6yhW}W4jne
zA}Xm!4CEz;BSGFFV;q{WB|%S%ZUWK>YSOae1l5VT8{=rD+{H*OO~JV77%}^6le34*
z@&3Y3d!CSXv;fD)%nwB1O-Q~Y0#}G?qapzd9iMijP)=wmNqyi0lh|8C@uLF4b{zJH
zHqBa=#~1Lzf{jl;TCq9b?K<CahQkR5xx~LNmr25jTxqu`ZW^7G0pp}l%apqxrW0fQ
z@yE7wopCEiECeR_7Hb41Mr9@8KvI>CP8y{&v8QJQf9^|1NjVFBGw>o{NfAxag^MU`
zMw)mgzv3BJJhK3ci>Dn4PG5d90}q&l68;t0piJ#*Ma#G|rR8%O<WlE^80qZJr0+u+
zlcDuk>7a=GUa-YaX%ZI2OHoo(c(;V8<U&+3NI*w>R5|t{G}2s&DRaf}>48oRWe<(#
zq==geqgI$XnUta8=w;68k@Q(<rCYYZ3zWP}ciG$N%&!an`zV}gx#u{~L4uRJGIivH
z4F}(3z@6omfi@gTY{~BFV#4Lws2R6AJGHFs&X7Ok@@hsn*dwIq#dH*h$#oxvPLlhx
z6X;A&x2k*(6!)=<45{^-?|qc1gpqFCl@QWe7H}X3XapXwq~kFPh5vsPQ4~TbNSK(z
zPDL7t$E*KwJd_^7C{u7=OUD9-&ZNjnHX>{Yvf4dz&=Zj~BMW#mVU1>PgHh}nCN?F`
z#Dl}!70K32`{1Q(Hp%PpNxdEx>cE2F3h?fhZkN&}!Ig9Sy?(UOv%E_5_G)JAPbIHr
ziTD+G`dW67J_VK)sV_3QvK0r=9f~A}y)I?H*H_ix^i@TwtD}|GCgnmx^?ZspQ`C<L
zCO@+@k`oRD@Le(gs(P5TnKn9bnlx*>9|z-@U8IcQR@<w(WxKcXto^M@_x`yHq8MVB
zwyBz_&F^Kf3>Q<z(#!W)5px9XtEmnXHFvu@{R+mOOHItZ9Ugawmd$6yCpi&ry0gI<
zNp3=%n&5n2XvOX;;FCRbzyf$Ew0FZW5rUD^*5==b#nRm&1<^_h1hs6p3ttSkVQUmA
z$s~(TlW65ASsvda!6?U_;g4~Pm2E&p*-jCumC{5}ru0<9@FhK6&BnlIKVOGOvaZ3o
z-{+hk1@Aytqs}$XDdJkBxM3{n{}feP2`3zwNSd5RKvPI^VY>hhczi()Ps^g=@d12f
zN+x|;{n)vXSnh8CS0g8VTrJ@-&s(i!;|uq_Vaez2(<VFdMRmxT00MlH8=?5#ZMY6o
zI!x5zf=D7cd?n56<ne}r#HC|Z4ZJk?RLmp$BjVh-k>#JdqrElIZ4W#52j*}Jk=UA2
z<kduPFrgS+Q#j3U1a83iBEpzUwXGe*1wFCfj8tU~&2=MMITnA&R1VKXq)pXH1Subj
zN)X)+KU5!D9kGvw?%a=GCz#_S*&yMtDqkeL&ZX!)iVjf3k-vaaNvRo*B0EavEhrql
zqJ6Bq$Jbvj?OeP`+Cd-M6lf+N*4?r8Qu{MR-^3Mj>R7Xr_Qj{BWh?$ZmzTFZajcd^
zhh%FYz^BS*PFkWB>1G72QWB`;k<iPqP?Asavq)to+%zFeka>iJWZ2G>h>##hrhh!J
zC`oO3I?FRq8^xOB(wcF<6~Ez1Iu@J*DK?0jHM#B1#ZeHyyBuRRJ(6U{SlhMa(COE%
z`aytxXjhi-!ZL?HA}V(f>9fKCXTa+ZjWB;Ve}+N1|Dq3FI`*K-cQE9Lk#0#JDKa~g
zF)*$f>m=9^)fEa1niw~rDVZ5V#mABpD5I9!?O{Gzn7Gi+%p5k;h;jLfM)h9!6_Rkb
zUvYPMSfu9D^opCY0POP!>z!tR$S_YKB}lU}86t<}lMak|G<-8Lu40t&&gh_-;2eY#
z)|-nzNxqid?op&R#pCXZEXYJZMX7P7j~OieUv^1Nes~6re&Sf>G!yR;H_|xrmH63k
zF?YX5xcyq0UdmhX%|O$d2EHMPFJRBs$uC9dod#T0{AD}cu)kd=xAVV09+QC*{;D0I
zE;)vrx)Dod%Pi;i%7~4g`-6Q!%$t{W$De^p%|^$-eQk=r*Qe#+>=#FwaO))BFzv$Q
zL;oFXr<N@-S<;=u?3DkQgWqEDxV#=$P-4|)&7wP0fQozd5Z-?9;*gkk3gXb%1&Ir4
zwqAmSgXcgH$BGxHhB;a%|Kd^l`%7IUmr!oq*5Rqd2{cY1XAJY>vq?CZ#63R!bPkR+
zv5#@KIM+EN`Fw(j<+U=I$FJ;!-B6LzF}u||^<nnwt8#))*ah$f`Vpez&nWsiMUN7q
zI=x@78>X!l<a{h_FmaFDE8*=pm}g6PmJ@`JnDFf8aUfztI*w~R&GC$wFy#gwZ;u#T
zX05AUgR32%2QH3g3Hj+24b2EUOLqVv9K2E<-g?-F2mPE-KtB|<zzL(bPCSHkC!uMB
z{?Mx=IOnGWAaA(a7u3W6)3Vp#^@nxjRuGeXZdXXl#vz<9hyzqUrV|$rINZfA?(`|#
ziLiq6{McBtxZtz<m;#%J5m1Z`0E8!qO9+=wGvja@co~70md9~)`ux6#r1)`p5u_F-
zI%Ct%rWy&;X#^(+5Tp=%YFuw<mL^O>3UU`n%TgqM*aOK5w?TH?d?+RC)2xc*!iob#
zEp#yNa{)C)COY95k9jZ@uwW#8_zjkB&EoSb-PrtEfJ89djY^6F-jHS`$XGvunw8(Y
zw7C?R9uz>TB^h(Y*g$Tdz7yi<K0R&K%RSwIffjvUq;enxUGc+xEthW`aL0#VR0?TX
zLHvLawr!e;oL0@!L+TXN%<W!3IDp%{?arl(fs;qVEuj>`T|-FP2PP}@6He8={5DF<
z0;B-;UD||r!U>3B&`--t9_Zoi7UFD&A3q<Y*?MZ7EKb@SOd1=!KIg`!ty*p(L#BsT
z@&JD=Ml-s5K{gu0*{Dr$#ox1X@*AI^HmMtj>`wf`6?x!vN5@~jqB8}i30<181y9;u
z0WF%G)$I&A=~@!QdB7c~huc3O8_(&@a9e`QPo7q)Ng~Yr3Q)_{ZvyojF|CCE@=<EB
zj9+4D6XS1O1(Q{puul_qX$4$_o%>SdI7|y_xyefyy1>b0i|3~rWU;05ooy1+@-nWh
z@NOBJid|43Usw}l&8T$vHIX6Ti&^4#r9v*89Bbw-=!Z)a+uhhTQXzDdW~v$6-L=?0
zcStS;gL##Dnx)vFC=HYV`8qUH*a=uT8PQ=Np?Ad%Q>x!;G*{M8pKLx0e%X|okjK}q
zWpmyk<=65Xaj*mv5rRa9I)Yk`&+kldRGX+DchgZjY#(m1z$EAo-J)P2Z-53Ta{4t-
zRy?Z-UTs28PyCiP&Kn#Y=oc_xHLR1*?Z(!E9&|LOWhaNi2?IZ5cjCSX1MoCqK-p~a
zA-PeeD{!80dNdn>(FF~6!$2%?QjLq(M1`b@-CzsJ8#N~W<?7wSN;}SqlcQpy>7!CM
zKaLR5fUp=r7AnFSQNZcpCzhHCXK9_9nc_}hP>UMKEi8+v1!-Vd%c-fCSy0Bupmuzh
zte0D<E#<X>G>&jL7Lo!JA;ON)5s#0IbdI!-s~Jbn8h3XWXo*y<W`(8K^$LOnTZbbp
zSUo};YY^JO&7`$Jv$iBs(9`Xttn0J_&?&XDf}$`5x_v{>?!NdUo(1`#0}n_wY!U=1
z?IM7?!__CG&eZgKbBQF?MG-%@4N!{T<?tJ@7RsJL5jpWn8%4KJw1c8{itePyPSJ@J
z(Yc|1N>)WF`pq+CIz@L;<fCXJMRbs)6{q3nOuY6-i+At^+HaT(gqbFjXcDYBR>2~g
zO!>lOVX|?uP?&8KMC?-de=21V$4h6{eEM8Eypg>|=F{80Wy%{9!&IBkC-rwzVXlyC
z%*W}wMYP&-g$hvAD%iyW!Ge+sAz!c?O@aye3ZY8Cg^rjjT2V^DhJ3zgqo>&<6bi-S
z6k$4^Ce-B<mqhRi|5HS}I1|t5cv4(wECZ}uV=h|J=zt&puMtef=|aBICgcjmfNL`r
z0v=&g>?^@d7Wm17NzAtvBzsYBj4l)#XVS=ko==zpf9h=mZYJdQ62h5k2z#5cLbL&A
z8|Hxf2eVZu5N#h>j5ebcBT}DyV=+O@vx-(=VmodXffbLZ8!>Zgi<W?A0yLrohm?;Q
z6@ZR5^tAy3^{~Zh9M8q!*g#7waIu)JrV_CP*cOr;2qpvl^XCUv3udn8KC&7Mgm~_F
zE+CiTKOcR{0H;i-6>2$@F<Xn!65e+N^sEG}tQZwNk6XuqOZ>=efw9xZEdveX^+Y{_
zMbHvyz%AkU62{4XR+{zL_>Mu153E_1IR8@E>ix&Zdy1fALDHMRKY>YM3KMe$B)mc#
zAD{8)HwG8XC6KC7qk`uts>IW2R7t}HTr5seGtLj98|hwx&!3In`9dY+z<S&SO|lwI
zVwJhjm<!HWZ5CUJ84_YB5%NDWaSR9t&P4%w_mSmzuBjla78qC{XYrN>y)DV%sJ249
zt+7m`da{3zh$O7}&^JJWUKI%Qg_)uf#SW}GPs?&TncwYnDzDRuV8%;Q_yt$~0?9<&
zT#$$F^|ayjdEM97pUQjG7Tzy@G&QI^PZ`mVRSzE<pfhcHICT94D0Lpi*Bt8#oCAct
U(kf~eq<yPtBD50o;j#Gt0CYn!cmMzZ

diff --git a/path_files.txt b/path_files.txt
index 533de3e..5eeb523 100644
--- a/path_files.txt
+++ b/path_files.txt
@@ -1 +1 @@
-C:\Users\jessica.laible\Documents\Mesures\Manips&Sites\Grenoble_Campus\20230510_Campus
\ No newline at end of file
+C:\Users\jessica.laible\Documents\Mesures\Manips&Sites\Grenoble_Campus\20221129_Campus
\ No newline at end of file
-- 
GitLab