From 5d374d679f77adc87c5c11639a9315c5445f17f0 Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Tue, 29 Dec 2020 20:07:04 -0600
Subject: [PATCH] snapshot...

---
 modules/aeolus/aeolus_amv.py | 150 ++++++++++++++++++++++-------------
 1 file changed, 96 insertions(+), 54 deletions(-)

diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index e25ba803..db685703 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -215,7 +215,7 @@ def create_file2(filename, raob_to_amv_dct, raob_dct, amv_files):
     rootgrp.close()
 
 
-def run_best_fit_all():
+def run_best_fit_all(full_domain=False):
     amv_files = get_datasource('/apollo/cloud/scratch/AMV_BUST/FMWK_TEST3/', 10, 'FMWK')
     prd_files = get_datasource('/apollo/cloud/scratch/AMV_BUST/FMWK_TEST3/', 10, 'FMWK_CLD_HGT')
 
@@ -252,22 +252,66 @@ def run_best_fit_all():
                  'gfs.19112912_F012.h5']
 
     out_list = []
-    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=amv_files)
-        bf_dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k])
-        prd_dct = get_product_at_locs(m_d, ts, prd_files)
-        out_list.append((bf_dct, prd_dct))
+    amvs_list = []
+    bfs_list = []
+    rb_list = []
+    bfs_gfs_list = []
+    prd_list = []
+    if not full_domain:
+        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=amv_files)
+            bf_dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k])
+            prd_dct = get_product_at_locs(m_d, ts, prd_files)
+            out_list.append((bf_dct, prd_dct))
+
+        for tup in out_list:
+            ab_dct = tup[0]
+            pr_dct = tup[1]
+
+            keys = list(ab_dct.keys())
+            for key in keys:
+                tup = ab_dct.get(key)
+                amvs_list.append(tup[0])
+                bfs_list.append(tup[1])
+                rb_list.append(tup[2])
+                bfs_gfs_list.append(tup[3])
+
+            keys = list(pr_dct.keys())
+            for key in keys:
+                prd_list.append(pr_dct.get(key))
+    else:
+        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)
+            alons = amvs[:, 0]
+            alats = amvs[:, 1]
+            prds = get_product_at_lat_lons(prd_files, ts, alons, alats, filepath=None)
+
+            out_list.append((amvs, np.array(bfs), prds))
+
+        for dct in out_list:
+            keys = list(dct.keys())
+            for key in keys:
+                tup = dct.get(key)
+                amvs_list.append(tup[0])
+                bfs_list.append(tup[1])
+
+        for tup in out_list:
+            amvs_list.append(tup[0])
+            bfs_list.append(tup[1])
+            prd_list.append(tup[2])
+
+    amvs = np.concatenate(amvs_list)
+    bfs = np.concatenate(bfs_list)
+    rbm = np.concatenate(rb_list)
+    bfs_gfs = np.concatenate(bfs_gfs_list)
+    prd = np.concatenate(prd_list)
 
-        # 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)
-        # alons = amvs[:, 0]
-        # alats = amvs[:, 1]
-        # prds = get_product_at_lat_lons(prd_files, ts, alons, alats, filepath=None)
-        #
-        # out_list.append((amvs, np.array(bfs), prds))
+    tup = (amvs, bfs, prd, bfs_gfs, rbm)
 
-    return out_list
+    return tup
 
 
 def get_product_at_locs(raob_to_amv_dct, ts, files, filepath=None):
@@ -451,7 +495,6 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
         amv_prd = np.transpose(amv_prd, axes=[1, 0])
 
     vld = amv_prd[:, 2] > 0
-
     #print(np.histogram(amv_prd[:, 0]))
     #print(np.histogram(amv_prd[:, 1]))
     print(np.histogram(amv_prd[vld, 2], bins=20))
@@ -783,50 +826,49 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
     #return bin_ranges, bin_pres, bin_spd, bin_dir
 
 
-def compare_amvs_bestfit_driver(all_list, bin_size=200):
-    ntimes = len(all_list)
-
-    amvs_list = []
-    bfs_list = []
-    rb_list = []
-    bfs_gfs_list = []
-    prd_list = []
-    for tup in all_list:
-        ab_dct = tup[0]
-        pr_dct = tup[1]
-
-        keys = list(ab_dct.keys())
-        for key in keys:
-            tup = ab_dct.get(key)
-            amvs_list.append(tup[0])
-            bfs_list.append(tup[1])
-            rb_list.append(tup[2])
-            bfs_gfs_list.append(tup[3])
-
-        keys = list(pr_dct.keys())
-        for key in keys:
-            prd_list.append(pr_dct.get(key))
-
+def compare_amvs_bestfit_driver(amvs, bfs, prd, bfs_gfs, rbm, bin_size=200):
 
     # amvs_list = []
     # bfs_list = []
-    # for dct in all_list:
-    #     keys = list(dct.keys())
+    # rb_list = []
+    # bfs_gfs_list = []
+    # prd_list = []
+    # for tup in all_list:
+    #     ab_dct = tup[0]
+    #     pr_dct = tup[1]
+    #
+    #     keys = list(ab_dct.keys())
     #     for key in keys:
-    #         tup = dct.get(key)
+    #         tup = ab_dct.get(key)
     #         amvs_list.append(tup[0])
     #         bfs_list.append(tup[1])
-
-    # for tup in all_list:
-    #     amvs_list.append(tup[0])
-    #     bfs_list.append(tup[1])
-    #     prd_list.append(tup[2])
-
-    amvs = np.concatenate(amvs_list)
-    bfs = np.concatenate(bfs_list)
-    rbm = np.concatenate(rb_list)
-    bfs_gfs = np.concatenate(bfs_gfs_list)
-    prd = np.concatenate(prd_list)
+    #         rb_list.append(tup[2])
+    #         bfs_gfs_list.append(tup[3])
+    #
+    #     keys = list(pr_dct.keys())
+    #     for key in keys:
+    #         prd_list.append(pr_dct.get(key))
+    #
+    #
+    # # amvs_list = []
+    # # bfs_list = []
+    # # for dct in all_list:
+    # #     keys = list(dct.keys())
+    # #     for key in keys:
+    # #         tup = dct.get(key)
+    # #         amvs_list.append(tup[0])
+    # #         bfs_list.append(tup[1])
+    #
+    # # for tup in all_list:
+    # #     amvs_list.append(tup[0])
+    # #     bfs_list.append(tup[1])
+    # #     prd_list.append(tup[2])
+    #
+    # amvs = np.concatenate(amvs_list)
+    # bfs = np.concatenate(bfs_list)
+    # rbm = np.concatenate(rb_list)
+    # bfs_gfs = np.concatenate(bfs_gfs_list)
+    # prd = np.concatenate(prd_list)
 
     thin = np.logical_and(prd[:, 2] > 0, prd[:, 2] < 1)
     thick = np.logical_and(prd[:, 2] >= 1, prd[:, 2] < 6)
-- 
GitLab