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