From 3a9b247ef1731b87db66c4af7a6439633dbf67ef Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Tue, 29 Dec 2020 16:49:50 -0600
Subject: [PATCH] snapshot...

---
 modules/aeolus/aeolus_amv.py | 69 ++++++++++++++++++++++++++----------
 1 file changed, 50 insertions(+), 19 deletions(-)

diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py
index b2e3be1b..24bdd571 100644
--- a/modules/aeolus/aeolus_amv.py
+++ b/modules/aeolus/aeolus_amv.py
@@ -826,7 +826,7 @@ def compare_amvs_bestfit_driver(all_list, bin_size=200):
     amvs = np.concatenate(amvs_list)
     bfs = np.concatenate(bfs_list)
     rbm = np.concatenate(rb_list)
-    #bfs_gfs = np.concatenate(bfs_gfs_list)
+    bfs_gfs = np.concatenate(bfs_gfs_list)
     prd = np.concatenate(prd_list)
 
     thin = np.logical_and(prd[:, 2] > 0, prd[:, 2] < 1)
@@ -841,35 +841,53 @@ def compare_amvs_bestfit_driver(all_list, bin_size=200):
     bfs_thick = bfs[thick, :]
     bfs_deep = bfs[deep, :]
 
-    #bfs_gfs_thin = bfs_gfs[thin, :]
-    #bfs_gfs_thick = bfs_gfs[thick, :]
-    #bfs_gfs_deep = bfs_gfs[deep, :]
+    bfs_gfs_thin = bfs_gfs[thin, :]
+    bfs_gfs_thick = bfs_gfs[thick, :]
+    bfs_gfs_deep = bfs_gfs[deep, :]
 
     rbm_thin = rbm[thin, :]
     rbm_thick = rbm[thick, :]
     rbm_deep = rbm[deep, :]
 
-    values = []
+    # values_pres = []
     # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thin, bfs_thin, bin_size=bin_size)
-    # values.append(bin_pres)
+    # values_pres.append(bin_pres)
     #
     # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thick, bfs_thick, bin_size=bin_size)
-    # values.append(bin_pres)
+    # values_pres.append(bin_pres)
     #
     # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs, bfs, bin_size=bin_size)
-    # values.append(bin_pres)
+    # values_pres.append(bin_pres)
+    #
+    # values_spd = []
+    # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thin, bfs_gfs_thin, bin_size=bin_size)
+    # values_spd.append(bin_spd)
+    #
+    # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thick, bfs_gfs_thick, bin_size=bin_size)
+    # values_spd.append(bin_spd)
+    #
+    # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs, bfs_gfs, bin_size=bin_size)
+    # values_spd.append(bin_spd)
 
-    values = []
+    values_prs = []
+    values_spd = []
+    values_dir = []
     bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thin, rbm_thin, bin_size=bin_size)
-    values.append(bin_spd)
+    values_prs.append(bin_pres)
+    values_spd.append(bin_spd)
+    values_dir.append(bin_dir)
 
     bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thick, rbm_thick, bin_size=bin_size)
-    values.append(bin_spd)
+    values_prs.append(bin_pres)
+    values_spd.append(bin_spd)
+    values_dir.append(bin_dir)
 
     bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs, rbm, bin_size=bin_size)
-    values.append(bin_spd)
+    values_prs.append(bin_pres)
+    values_spd.append(bin_spd)
+    values_dir.append(bin_dir)
 
-    make_plot(bin_ranges, values)
+    return bin_ranges, values_prs, values_spd, values_dir
 
 
 def compare_amvs_bestfit(amvs, bfs, bin_size=200):
@@ -939,9 +957,11 @@ def compare_amvs_bestfit(amvs, bfs, bin_size=200):
     amv_spd = good_amvs[keep_idxs, sidx]
     amv_dir = good_amvs[keep_idxs, didx]
     bf_spd, bf_dir = spd_dir_from_uv(bfs[keep_idxs, 0], bfs[keep_idxs, 1])
+    # bf_spd, bf_dir = bfs[keep_idxs, 0], bfs[keep_idxs, 1]
 
     diff = amv_spd * units('m/s') - bf_spd
     diff = diff.magnitude
+    # diff = amv_spd - bf_spd
     spd_mad = np.average(np.abs(diff))
     spd_bias = np.average(diff)
     print('spd, MAD: {0:.2f}'.format(spd_mad))
@@ -953,6 +973,7 @@ def compare_amvs_bestfit(amvs, bfs, bin_size=200):
     bin_spd = bin_data_by(diff, amv_p, bin_ranges)
 
     dir_diff = direction_difference(amv_dir, bf_dir.magnitude)
+    # dir_diff = direction_difference(amv_dir, bf_dir)
     print('dir, MAD: {0:.2f}'.format(np.average(np.abs(dir_diff))))
     print('dir bias: {0:.2f}'.format(np.average(dir_diff)))
     print('-------------------------------------')
@@ -999,11 +1020,13 @@ def make_plot(bin_ranges, bin_values):
     num_vals = []
     mad = []
     bias = []
+    std = []
     mad_r = []
     bias_r = []
+    std_r = []
     mad_g = []
     bias_g = []
-
+    std_g = []
 
     num_r = 0
     num_g = 0
@@ -1016,27 +1039,35 @@ def make_plot(bin_ranges, bin_values):
     for i in range(len(bin_ranges)):
         x_values.append(np.average(bin_ranges[i]))
 
-        num_vals_r.append((bin_vals_r[i].shape[0])/num_r)
-        num_vals_g.append((bin_vals_g[i].shape[0])/num_g)
-        num_vals.append((bin_vals[i].shape[0])/num)
+        # num_vals_r.append((bin_vals_r[i].shape[0])/num_r)
+        # num_vals_g.append((bin_vals_g[i].shape[0])/num_g)
+        # num_vals.append((bin_vals[i].shape[0])/num)
+        num_vals_r.append(np.log10(bin_vals_r[i].shape[0]))
+        num_vals_g.append(np.log10(bin_vals_g[i].shape[0]))
+        num_vals.append(np.log10(bin_vals[i].shape[0]))
 
         mad_r.append(np.average(np.abs(bin_vals_r[i])))
         bias_r.append(np.average(bin_vals_r[i]))
+        std_r.append(np.std(bin_vals_r[i]))
 
         mad_g.append(np.average(np.abs(bin_vals_g[i])))
         bias_g.append(np.average(bin_vals_g[i]))
+        std_g.append(np.std(bin_vals_g[i]))
 
         mad.append(np.average(np.abs(bin_vals[i])))
         bias.append(np.average(bin_vals[i]))
+        std.append(np.std(bin_vals[i]))
 
 
-    do_plot(x_values, [mad_r, mad_g, mad], ['THIN', 'THICK', 'ALL'], ['blue', 'red', 'black'], title='ACHA - RAOB PRES MATCH', x_axis_label='MAD (m/s)', y_axis_label='hPa', invert=True, flip=True)
+    do_plot(x_values, [std_r, std_g, std], ['THIN', 'THICK', 'ALL'], ['blue', 'red', 'black'], title='ACHA - RAOB Pres Match', x_axis_label='STD (hPa)', y_axis_label='hPa', invert=True, flip=True)
+    #do_plot(x_values, [std_r, std_g, std], ['THIN', 'THICK', 'ALL'], ['blue', 'red', 'black'], title='ACHA - RAOB Pres Match', x_axis_label='STD (deg)', y_axis_label='hPa', invert=True, flip=True)
+    #do_plot(x_values, [mad_r, mad_g, mad], ['THIN', 'THICK', 'ALL'], ['blue', 'red', 'black'], title='ACHA - RAOB Pres Match', x_axis_label='MAD (deg)', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [mad_r, mad_g, mad], ['THIN', 'THICK', 'ALL'], ['blue', 'red', 'black'], title='ACHA - BestFit Full Domain (GFS)', x_axis_label='MAD', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [pres_mad_r, pres_mad_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='MAD', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [spd_mad_r, spd_mad_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='MAE (m/s)', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [pres_bias_r, pres_bias_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='BIAS', y_axis_label='hPa', invert=True, flip=True)
     #do_plot(x_values, [spd_bias_r, spd_bias_g], ['RAOB', 'GFS'], ['blue', 'red'], title='ACHA - BestFit', x_axis_label='BIAS (m/s)', y_axis_label='hPa', invert=True, flip=True)
-    #do_plot(x_values, [num_pres_r, num_pres_g], ['RAOB:'+str(num_r), 'GFS:'+str(num_g)], ['blue', 'red'], x_axis_label='Normalized Count', y_axis_label='hPa', invert=True, flip=True)
+    #do_plot(x_values, [num_vals_r, num_vals_g, num_vals], ['THIN: '+str(num_r), 'THICK: '+str(num_g), 'ALL: '+str(num)], ['blue', 'red', 'black'], title='ACHA - RAOB PRES MATCH', x_axis_label='log(Count)', y_axis_label='hPa', invert=True, flip=True)
 
 
 def make_plot2(bin_pres_r, bin_ranges):
-- 
GitLab