diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index 1c01354f4e12fab5884da7f25743c1bfa61395ef..b44f163cd2397a74384a4a92920393d5cf0696bf 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -1137,6 +1137,14 @@ def compare_amvs_bestfit(amvs, bfs, bin_size=200):
     # Comparison to Level of Best Fit (LBF) ------------------------------------------------------------------
     # --------------------------------------------------------------------------------------------------------
     bin_ranges = get_press_bin_ranges(100, 1000, bin_size=bin_size)
+    bin_ranges = []
+    bin_ranges.append([50, 300])
+    bin_ranges.append([300, 400])
+    bin_ranges.append([400, 500])
+    bin_ranges.append([500, 600])
+    bin_ranges.append([600, 700])
+    bin_ranges.append([700, 800])
+    bin_ranges.append([800, 1000])
 
     vld_bf = bfs[:, 3] == 0
     keep_idxs = vld_bf
@@ -1261,14 +1269,14 @@ def make_plot(bin_ranges, bin_values):
         bias.append(np.average(bin_vals[i]))
         std.append(np.std(bin_vals[i]))
 
-    title='ACHA - RAOB Pres Match'
-    x_axis_label = 'STD (m/s)'
+    title='ACHA - RAOB BestFit'
+    x_axis_label = 'STD (deg)'
     do_plot(x_values, [std_r, std_g, std], ['ICE', 'NOT ICE', 'ALL'], ['blue', 'red', 'black'], title=title, x_axis_label=x_axis_label, y_axis_label='hPa', invert=True, flip=True)
 
-    x_axis_label = 'BIAS (m/s)'
+    x_axis_label = 'BIAS (deg)'
     do_plot(x_values, [bias_r, bias_g, bias], ['ICE', 'NOT ICE', 'ALL'], ['blue', 'red', 'black'], title=title, x_axis_label=x_axis_label, y_axis_label='hPa', invert=True, flip=True)
 
-    x_axis_label = 'MAD (m/s)'
+    x_axis_label = 'MAD (deg)'
     do_plot(x_values, [mad_r, mad_g, mad], ['ICE', 'NOT ICE', 'ALL'], ['blue', 'red', 'black'], title=title, x_axis_label=x_axis_label, y_axis_label='hPa', invert=True, flip=True)
 
     do_plot(x_values, [num_vals_r, num_vals_g, num_vals], ['ICE: '+str(num_r), 'NOT ICE: '+str(num_g), 'ALL: '+str(num)], ['blue', 'red', 'black'], title=title, x_axis_label='log(Count)', y_axis_label='hPa', invert=True, flip=True)
diff --git a/modules/aeolus/datasource.py b/modules/aeolus/datasource.py
index b395682ab3659dc8d2630d0048529065f6755cde..678f87bb3f183ae3ae9bf0db0d4be37492091e6f 100644
--- a/modules/aeolus/datasource.py
+++ b/modules/aeolus/datasource.py
@@ -7,6 +7,54 @@ from aeolus.geos_nav import GEOSNavigation
 from util.util import GenericException
 
 
+class Files:
+    def __init__(self, files_path, file_time_span, pattern):
+        #self.flist = glob.glob(files_path + 'raob_soundings*.nc')
+        self.flist = glob.glob(files_path + pattern)
+        if len(self.flist) == 0:
+            raise GenericException('no matching files found in: ' + files_path)
+
+        self.ftimes = []
+        self.span_seconds = datetime.timedelta(minutes=file_time_span).seconds
+
+        for pname in self.flist:
+            dto = self.get_datetime(pname)
+            dto_start = dto
+            dto_end = dto + datetime.timedelta(minutes=file_time_span)
+            self.ftimes.append((dto_start.timestamp(), dto_end.timestamp()))
+
+        self.ftimes = np.array(self.ftimes)
+        self.flist = np.array(self.flist)
+        sidxs = np.argsort(self.ftimes[:, 0])
+        self.ftimes = self.ftimes[sidxs, :]
+        self.flist = self.flist[sidxs]
+
+    def get_datetime(self, pathname):
+        filename = os.path.split(pathname)[1]
+        dt_str = (((filename.split('raob_soundings'))[1]).split('.'))[0]
+        dto = datetime.datetime.strptime(dt_str, '%Y%m%d_%H%M').replace(tzinfo=timezone.utc)
+        return dto
+
+    def get_file_containing_time(self, timestamp):
+        k = -1
+        for i in range(self.ftimes.shape[0]):
+            if (timestamp >= self.ftimes[i, 0]) and (timestamp < self.ftimes[i, 1]):
+                k = i
+                break
+        if k < 0:
+            return None, None, None
+
+        return self.flist[k], self.ftimes[k, 0], k
+
+    def get_file(self, timestamp):
+        diff = self.ftimes[:, 0] - timestamp
+        midx = np.argmin(np.abs(diff))
+        if np.abs(self.ftimes[midx, 0] - timestamp) < self.span_seconds:
+            return self.flist[midx], self.ftimes[midx, 0], midx
+        else:
+            return None, None, None
+
+
 class AMVFiles:
 
     def __init__(self, files_path, file_time_span, pattern, band='14', elem_name=None, line_name=None, lat_name=None,