diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py index 378b5879fcb9f4d61318d81f992f362822f427db..07a9481a6831b7185e3467cbe8cf12cd8e9aaf04 100644 --- a/modules/aeolus/aeolus_amv.py +++ b/modules/aeolus/aeolus_amv.py @@ -422,7 +422,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None): pdiff = np.abs(amv_prs - raob_prs) lev_idx = np.argmin(pdiff) - if pdiff[lev_idx] > 60.0: + if raob_spd[lev_idx] < 0 or raob_dir[lev_idx] < 0: + tup = (raob_spd[lev_idx], raob_dir[lev_idx], raob_prs[lev_idx], -9) + elif pdiff[lev_idx] > 60.0: tup = (raob_spd[lev_idx], raob_dir[lev_idx], raob_prs[lev_idx], -9) else: tup = (raob_spd[lev_idx], raob_dir[lev_idx], raob_prs[lev_idx], 0) @@ -790,21 +792,21 @@ def compare_amvs_bestfit_driver(all_list, bin_size=200): 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)) + 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)) # amvs_list = [] @@ -816,18 +818,17 @@ def compare_amvs_bestfit_driver(all_list, bin_size=200): # 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]) + # 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) + 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) deep = np.logical_and(prd[:, 2] >= 6, prd[:, 2] <= 20) @@ -844,15 +845,29 @@ def compare_amvs_bestfit_driver(all_list, bin_size=200): #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 = [] + # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thin, bfs_thin, bin_size=bin_size) + # values.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) + # + # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs, bfs, bin_size=bin_size) + # values.append(bin_pres) + values = [] bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thin, bfs_thin, bin_size=bin_size) - values.append(bin_pres) + values.append(bin_spd) + bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thick, bfs_thick, bin_size=bin_size) - values.append(bin_pres) + values.append(bin_spd) + bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs, bfs, bin_size=bin_size) - values.append(bin_pres) - #bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_thick, bfs_thick, bin_size=bin_size) - #bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit(amvs_deep, bfs_deep, bin_size=bin_size) + values.append(bin_spd) make_plot(bin_ranges, values) @@ -1015,7 +1030,8 @@ def make_plot(bin_ranges, bin_values): bias.append(np.average(bin_vals[i])) - 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, [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, [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)