diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index b44f163cd2397a74384a4a92920393d5cf0696bf..9bb73d8c2ecf5ebd8fbe2fbe970fd6a70bf17887 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -241,6 +241,7 @@ def create_file2(filename, raob_to_amv_dct, raob_dct, amv_files):
 def run_best_fit_all(amv_dir, source, product_dir, product, raob_path=None, gfs_path=None, full_domain=False):
     amv_files = get_datasource(amv_dir, 10, source)
     prd_files = get_datasource(product_dir, 10, product)
+    gfs_files = get_datasource(gfs_path, 10, 'GFS')
 
     raob_dir = '/home/rink/data/raob/'
     raob_files = ['raob_soundings20191117_0000.cdf',
@@ -284,7 +285,10 @@ def run_best_fit_all(amv_dir, source, product_dir, product, raob_path=None, gfs_
         for k, file in enumerate(raob_files):
             raob_dct, ts = get_raob_dict_cdf(raob_dir+file)
             m_d = match_amvs_to_raobs(raob_dct, ts, amv_files)
-            bf_dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k])
+            gfs_file = gfs_files.get_file(ts)[0]
+            if gfs_file is None:
+                continue
+            bf_dct = run_best_fit(m_d, raob_dct, gfs_file)
             prd_dct = get_product_at_locs(m_d, ts, prd_files)
             out_list.append((bf_dct, prd_dct))
 
@@ -316,7 +320,10 @@ def run_best_fit_all(amv_dir, source, product_dir, product, raob_path=None, gfs_
         for k, file in enumerate(raob_files):
             raob_dct, ts = get_raob_dict_cdf(raob_dir+file)
             amvs = get_amvs(amv_files, ts)
-            bfs = run_best_fit_gfs(amvs, gfs_dir+gfs_files[k], amv_lat_idx=0, amv_lon_idx=1, amv_prs_idx=4, amv_spd_idx=5, amv_dir_idx=6)
+            gfs_file = gfs_files.get_file(ts)[0]
+            if gfs_file is None:
+                continue
+            bfs = run_best_fit_gfs(amvs, gfs_file, amv_lat_idx=0, amv_lon_idx=1, amv_prs_idx=4, amv_spd_idx=5, amv_dir_idx=6)
             alons = amvs[:, 0]
             alats = amvs[:, 1]
             prds = get_product_at_lat_lons(prd_files, ts, alons, alats, filepath=None)
diff --git a/modules/aeolus/datasource.py b/modules/aeolus/datasource.py
index e3d9c743051a4b3dc4f91a4c3411e8eec7a4926b..586d79e32e332911d970363c4f3af2d2b89898b9 100644
--- a/modules/aeolus/datasource.py
+++ b/modules/aeolus/datasource.py
@@ -335,5 +335,7 @@ def get_datasource(files_path, file_time_span, source, band='14'):
         return FrameworkCloudPhase(files_path, file_time_span)
     elif source == 'OPS_CLD_PHASE':
         return OpsCloudPhase(files_path, file_time_span)
+    elif source == 'GFS':
+        return GFSfiles(files_path, file_time_span, 'gfs*.h5')
     else:
         raise GenericException('Unknown data source type')
\ No newline at end of file