diff --git a/GUI_Elbow.py b/GUI_Elbow.py
index 9eb15cad86659992c236bd38925d212b5e5f2ee4..fc7c14cca7d630e1e0f16305867b7fb50896233f 100644
--- a/GUI_Elbow.py
+++ b/GUI_Elbow.py
@@ -622,50 +622,66 @@ class mainPanel(wx.Panel):
     #
     def OnClicked_btn_uncertainty(self,e):
         # calculate the uncertainty for the flow meter
+        # calculate for the whole dataset
+        calc_all = False
+        
         if self.pathint.any():
-            if flow.case == "SingleElbow":
-                self.fm_mean = np.zeros((len(flow.Rk),len(flow.dist),len(flow.phi)))
-                self.fm_std  = np.zeros((len(flow.Rk),len(flow.dist),len(flow.phi)))
-                for i,rc in enumerate(flow.Rk):
-                    for j,dist in enumerate(flow.dist):
-                        for k,phi in enumerate(flow.phi[:,0]):
-                            self.fm_mean[i,j,k], self.fm_std[i,j,k] = self.get_uncertainty(rc,0,dist,phi)
+            if calc_all:
+                if flow.case == "SingleElbow":
+                    self.fm_mean = np.zeros((len(flow.Rk),len(flow.dist),len(flow.phi)))
+                    self.fm_std  = np.zeros((len(flow.Rk),len(flow.dist),len(flow.phi)))
+                    for i,rc in enumerate(flow.Rk):
+                        for j,dist in enumerate(flow.dist):
+                            for k,phi in enumerate(flow.phi[:,0]):
+                                self.fm_mean[i,j,k], self.fm_std[i,j,k] = self.get_uncertainty(rc,0,dist,phi)
+                            #
                         #
-                    #
-                    print(rc)
-                #
-                self.regint_mean = interpol.RegularGridInterpolator((flow.Rk,flow.dist,flow.phi[:,0]),self.fm_mean,bounds_error = False,fill_value=None)
-                self.regint_std  = interpol.RegularGridInterpolator((flow.Rk,flow.dist,flow.phi[:,0]),self.fm_std,bounds_error = False,fill_value=None)
-            else:
-                self.fm_mean = np.zeros((len(flow.Rk),len(flow.dl),len(flow.dist),len(flow.phi)))
-                self.fm_std  = np.zeros((len(flow.Rk),len(flow.dl),len(flow.dist),len(flow.phi)))
-                for i,rc in enumerate(flow.Rk):
-                    for j,dl in enumerate(flow.dl):
-                        for k,dist in enumerate(flow.dist):
-                            for p,phi in enumerate(flow.phi[:,0]):
-                                self.fm_mean[i,j,k,p], self.fm_std[i,j,k,p] = self.get_uncertainty(rc,dl,dist,phi)
+                        print(rc)
+                    # end loops
+                    self.regint_mean = interpol.RegularGridInterpolator((flow.Rk,flow.dist,flow.phi[:,0]),self.fm_mean,bounds_error = False,fill_value=None)
+                    self.regint_std  = interpol.RegularGridInterpolator((flow.Rk,flow.dist,flow.phi[:,0]),self.fm_std,bounds_error = False,fill_value=None)
+                else:
+                    self.fm_mean = np.zeros((len(flow.Rk),len(flow.dl),len(flow.dist),len(flow.phi)))
+                    self.fm_std  = np.zeros((len(flow.Rk),len(flow.dl),len(flow.dist),len(flow.phi)))
+                    for i,rc in enumerate(flow.Rk):
+                        for j,dl in enumerate(flow.dl):
+                            for k,dist in enumerate(flow.dist):
+                                for p,phi in enumerate(flow.phi[:,0]):
+                                    self.fm_mean[i,j,k,p], self.fm_std[i,j,k,p] = self.get_uncertainty(rc,dl,dist,phi)
+                                #
                             #
                         #
-                    #
-                    print(rc)
+                        print(rc)
+                    # end loops
+                    self.regint_mean = interpol.RegularGridInterpolator((flow.Rk,flow.dl,flow.dist,flow.phi[:,0]),self.fm_mean,bounds_error = False,fill_value=None)
+                    self.regint_std  = interpol.RegularGridInterpolator((flow.Rk,flow.dl,flow.dist,flow.phi[:,0]),self.fm_std,bounds_error = False,fill_value=None)
                 #
-                self.regint_mean = interpol.RegularGridInterpolator((flow.Rk,flow.dl,flow.dist,flow.phi[:,0]),self.fm_mean,bounds_error = False,fill_value=None)
-                self.regint_std  = interpol.RegularGridInterpolator((flow.Rk,flow.dl,flow.dist,flow.phi[:,0]),self.fm_std,bounds_error = False,fill_value=None)
-            #
+            # the uncertainty is only calculated for the one case that is selected
+            else:
+                self.fm_mean = np.zeros((len(flow.dist),len(flow.phi)))
+                self.fm_std  =  np.zeros((len(flow.dist),len(flow.phi)))
+                print("calculating uncertainty for distance:")
+                for j,dist in enumerate(flow.dist):
+                    print(dist)
+                    for k,phi in enumerate(flow.phi[:,0]):
+                        self.fm_mean[j,k], self.fm_std[j,k] = self.get_uncertainty(self.Rc,self.dl,dist,phi)
+                #
+                self.regint_mean = interpol.RegularGridInterpolator((flow.dist,flow.phi[:,0]),self.fm_mean,bounds_error = False,fill_value=None)
+                self.regint_std  = interpol.RegularGridInterpolator((flow.dist,flow.phi[:,0]),self.fm_std,bounds_error = False,fill_value=None)
             self.draw_meter()
         #
     def interpol_meter(self,Rc,dl,dist,phi):
         y_u = np.zeros(0)
         if flow.case == "SingleElbow":
             if self.fm_mean.any():
-                y   = self.regint_mean((Rc,dist,phi))
-                y_u = self.regint_std((Rc,dist,phi))
+                y   = self.regint_mean((dist,phi))
+                y_u = self.regint_std((dist,phi))
             else:
                 y   = self.regint_fm((Rc,dist,phi))
         else:
             if self.fm_mean.any():
-                y   = self.regint_mean((Rc,dl,dist,phi))
-                y_u = self.regint_std((Rc,dl,dist,phi))
+                y   = self.regint_mean((dist,phi))
+                y_u = self.regint_std((dist,phi))
             else:
                 y   = self.regint_fm((Rc,dl,dist,phi))
         return y, y_u
@@ -737,32 +753,35 @@ class mainPanel(wx.Panel):
         self.ax_meter.set_xlabel(xlabel)
         self.ax_meter.set_ylabel(ylabel)
         self.ax_meter.plot(x,y,'-')
-        
-        
-        
+        #
+        # get the y-limits of the plot
         ymin = self.ax_meter.get_ylim()[0]
         ymax = self.ax_meter.get_ylim()[1]
-        ydiff = ymax-ymin
-        #print(ydiff)
-        if ydiff < ylimiter:
-            ymin = self.ax_meter.get_ylim()[0]-(ylimiter-ydiff)/2
-            ymax = self.ax_meter.get_ylim()[1]+(ylimiter-ydiff)/2
-            # print("min")
-            # print(ymin)
-            # print("max")
-            # print(ymax)
-            self.ax_meter.set_ylim(ymin,ymax)
         #
-        # the line-plot of the selected parameter within the x axes 
-        self.ax_meter.plot([x_selected,x_selected],[ymin,ymax],'r-',linewidth=1)
         if y_u.any():
             self.ax_meter.fill_between(x, y - y_u, y + y_u,
                  facecolor='green', 
                  alpha = 0.3,
                  interpolate=True, label="std")
+            # if the axis zoom is too large set the axis limits to be larger
+            ymin = self.ax_meter.get_ylim()[0]
+            ymax = self.ax_meter.get_ylim()[1]
             self.ax_meter.text(x_selected, ymin, " " + str(np.round(np.interp(x_selected,x, y),2)) + " | " + str(np.round(np.interp(x_selected,x, y_u),2)), fontsize=14,color='r')
+
         else:
             self.ax_meter.text(x_selected, ymin, " " + str(np.round(np.interp(x_selected,x, y),2)), fontsize=14,color='r')
+        #
+        # if the axis zoom is too large set the axis limits to be larger
+        ydiff = ymax -ymin
+        #print(ydiff)
+        if ydiff < ylimiter:
+            ymin = self.ax_meter.get_ylim()[0]-(ylimiter-ydiff)/2
+            ymax = self.ax_meter.get_ylim()[1]+(ylimiter-ydiff)/2
+            # set the axis limits of the y axis
+            self.ax_meter.set_ylim(ymin,ymax)
+ 
+        # the line-plot of the selected parameter within the x axes 
+        self.ax_meter.plot([x_selected,x_selected],[ymin,ymax],'r-',linewidth=1)
         
         self.ax_meter.grid("on")
         self.fig_meter.tight_layout()