Skip to content
Snippets Groups Projects
Commit 91ab55a6 authored by tomrink's avatar tomrink
Browse files

snapshot...

parent 99166021
No related branches found
No related tags found
No related merge requests found
...@@ -947,22 +947,59 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200): ...@@ -947,22 +947,59 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200):
amvs = np.transpose(amvs, axes=[1, 0]) amvs = np.transpose(amvs, axes=[1, 0])
bfs = np.stack(bfs_list, axis=0) bfs = np.stack(bfs_list, axis=0)
didx = 4 good_amvs = amvs
sidx = 3 num_good = good_amvs.shape[0]
pidx = 2 didx = 6
sidx = 5
pidx = 4
vld_bf = bfs[:, 3] == 0 print('Number of AMVs: {0:d}'.format(num_good))
keep_idxs = vld_bf spd_min = good_amvs[:, sidx].min()
spd_max = good_amvs[:, sidx].max()
print('spd min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(spd_min, spd_max, np.average(good_amvs[:, sidx])))
p_min = good_amvs[:, pidx].min()
p_max = good_amvs[:, pidx].max()
print('pres min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(p_min, p_max, np.average(good_amvs[:, pidx])))
low = good_amvs[:, pidx] >= 700
mid = np.logical_and(good_amvs[:, pidx] < 700, good_amvs[:, pidx] > 400)
hgh = good_amvs[:, pidx] <= 400
n_low = np.sum(low)
n_mid = np.sum(mid)
n_hgh = np.sum(hgh)
print('% low: {0:.2f}'.format(100.0*(n_low/num_good)))
print('% mid: {0:.2f}'.format(100.0*(n_mid/num_good)))
print('% hgh: {0:.2f}'.format(100.0*(n_hgh/num_good)))
print('---------------------------')
print('Low Spd min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(good_amvs[low, sidx].min(), good_amvs[low, sidx].max(), good_amvs[low,sidx].mean()))
print('Low Press min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(good_amvs[low, pidx].min(), good_amvs[low, pidx].max(), good_amvs[low, pidx].mean()))
print('---------------------------')
print('Mid Spd min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(good_amvs[mid, sidx].min(), good_amvs[mid, sidx].max(), good_amvs[mid, sidx].mean()))
print('Mid Press min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(good_amvs[mid, pidx].min(), good_amvs[mid, pidx].max(), good_amvs[mid, pidx].mean()))
print('---------------------------')
print('Hgh Spd min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(good_amvs[hgh, sidx].min(), good_amvs[hgh, sidx].max(), good_amvs[hgh, sidx].mean()))
print('Hgh Press min/max/mean: {0:.2f} {1:.2f} {2:.2f}'.format(good_amvs[hgh, pidx].min(), good_amvs[hgh, pidx].max(), good_amvs[hgh, pidx].mean()))
# Comparison to Level of Best Fit (LBF) ------------------------------------------------------------------
# --------------------------------------------------------------------------------------------------------
bin_ranges = get_press_bin_ranges(50, 1050, bin_size=bin_size) bin_ranges = get_press_bin_ranges(50, 1050, bin_size=bin_size)
amv_p = amvs[keep_idxs, pidx] vld_bf = bfs[:, 3] == 0
keep_idxs = vld_bf
amv_p = good_amvs[keep_idxs, pidx]
bf_p = bfs[keep_idxs, 2] bf_p = bfs[keep_idxs, 2]
diff = amv_p - bf_p diff = amv_p - bf_p
mad = np.average(np.abs(diff)) mad = np.average(np.abs(diff))
bias = np.average(diff) bias = np.average(diff)
print('********************************************************') print('********************************************************')
print('Number of good best fits: ', bf_p.shape[0]) print('Number of good best fits to RAOB: ', bf_p.shape[0])
print('press, MAD: {0:.2f}'.format(mad)) print('press, MAD: {0:.2f}'.format(mad))
print('press, bias: {0:.2f}'.format(bias)) print('press, bias: {0:.2f}'.format(bias))
pd_std = np.std(diff) pd_std = np.std(diff)
...@@ -972,8 +1009,8 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200): ...@@ -972,8 +1009,8 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200):
bin_pres = bin_data_by(diff, amv_p, bin_ranges) bin_pres = bin_data_by(diff, amv_p, bin_ranges)
amv_spd = amvs[keep_idxs, sidx] amv_spd = good_amvs[keep_idxs, sidx]
amv_dir = amvs[keep_idxs, didx] 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 = spd_dir_from_uv(bfs[keep_idxs, 0], bfs[keep_idxs, 1])
diff = amv_spd * units('m/s') - bf_spd diff = amv_spd * units('m/s') - bf_spd
...@@ -994,7 +1031,7 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200): ...@@ -994,7 +1031,7 @@ def compare_amvs_bestfit(amvs_list, bfs_list, bin_size=200):
print('-------------------------------------') print('-------------------------------------')
bin_dir = bin_data_by(dir_diff, amv_p, bin_ranges) bin_dir = bin_data_by(dir_diff, amv_p, bin_ranges)
amv_u, amv_v = uv_from_spd_dir(amvs[keep_idxs, sidx], amvs[keep_idxs, didx]) amv_u, amv_v = uv_from_spd_dir(good_amvs[keep_idxs, sidx], good_amvs[keep_idxs, didx])
u_diffs = amv_u - (bfs[keep_idxs, 0] * units('m/s')) u_diffs = amv_u - (bfs[keep_idxs, 0] * units('m/s'))
v_diffs = amv_v - (bfs[keep_idxs, 1] * units('m/s')) v_diffs = amv_v - (bfs[keep_idxs, 1] * units('m/s'))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment