Skip to content
Snippets Groups Projects
Commit 9a36ce1b authored by tomrink's avatar tomrink
Browse files

snapshot...

parent 0a417797
No related branches found
No related tags found
No related merge requests found
...@@ -415,7 +415,10 @@ def analyze2(raob_to_amv_dct, raob_dct): ...@@ -415,7 +415,10 @@ def analyze2(raob_to_amv_dct, raob_dct):
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 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())) 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_size = 200.0 bin_size = 200.0
bin_ranges = get_press_bin_ranges(50, 1050, bin_size=bin_size)
vld_bf = bfs[:, 3] == 0 vld_bf = bfs[:, 3] == 0
keep_idxs = vld_bf keep_idxs = vld_bf
...@@ -433,7 +436,6 @@ def analyze2(raob_to_amv_dct, raob_dct): ...@@ -433,7 +436,6 @@ def analyze2(raob_to_amv_dct, raob_dct):
print('press bias/rms: {0:.2f} {1:.2f} '.format(pd_mean, np.sqrt(pd_mean**2 + pd_std**2))) print('press bias/rms: {0:.2f} {1:.2f} '.format(pd_mean, np.sqrt(pd_mean**2 + pd_std**2)))
print('------------------------------------------') print('------------------------------------------')
bin_ranges = get_press_bin_ranges(50, 1050, bin_size=bin_size)
bin_pres = bin_data_by(diff, amv_p, bin_ranges) bin_pres = bin_data_by(diff, amv_p, bin_ranges)
amv_spd = good_amvs[keep_idxs, sidx] amv_spd = good_amvs[keep_idxs, sidx]
...@@ -484,6 +486,75 @@ def analyze2(raob_to_amv_dct, raob_dct): ...@@ -484,6 +486,75 @@ def analyze2(raob_to_amv_dct, raob_dct):
.format(int(x_values[i]), num_pres[i], np.average(np.abs(bin_pres[i])), np.average(bin_pres[i]), .format(int(x_values[i]), num_pres[i], np.average(np.abs(bin_pres[i])), np.average(bin_pres[i]),
np.average(np.abs(bin_spd[i])), np.average(bin_spd[i]), np.average(np.abs(bin_dir[i])), np.average(bin_dir[i]))) np.average(np.abs(bin_spd[i])), np.average(bin_spd[i]), np.average(np.abs(bin_dir[i])), np.average(bin_dir[i])))
# Direct comparison to RAOB profile ---------------------------------------------------------------
vld = raob_match[:, 3] == 0
keep_idxs = vld
amv_p = good_amvs[keep_idxs, pidx]
bf_p = raob_match[keep_idxs, 2]
diff = amv_p - bf_p
mad = np.average(np.abs(diff))
bias = np.average(diff)
print('********************************************************')
print('Number of good best fits: ', bf_p.shape[0])
print('press, MAD: {0:.2f}'.format(mad))
print('press, bias: {0:.2f}'.format(bias))
pd_std = np.std(diff)
pd_mean = np.mean(diff)
print('press bias/rms: {0:.2f} {1:.2f} '.format(pd_mean, np.sqrt(pd_mean**2 + pd_std**2)))
print('------------------------------------------')
bin_pres = bin_data_by(diff, amv_p, bin_ranges)
amv_spd = good_amvs[keep_idxs, sidx]
amv_dir = good_amvs[keep_idxs, didx]
bf_spd, bf_dir = raob_match[keep_idxs, 0], raob_match[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))
print('spd, bias: {0:.2f}'.format(spd_bias))
spd_mean = np.mean(diff)
spd_std = np.std(diff)
print('spd MAD/bias/rms: {0:.2f} {1:.2f} {2:.2f}'.format(np.average(np.abs(diff)), spd_mean, np.sqrt(spd_mean**2 + spd_std**2)))
print('-----------------')
bin_spd = bin_data_by(diff, amv_p, bin_ranges)
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('-------------------------------------')
bin_dir = bin_data_by(dir_diff, amv_p, bin_ranges)
amv_u, amv_v = uv_from_spd_dir(good_amvs[keep_idxs, sidx], good_amvs[keep_idxs, didx])
bf_u, bf_v = uv_from_spd_dir(raob_match[keep_idxs, 0], raob_match[keep_idxs, 1])
u_diffs = amv_u - bf_u
v_diffs = amv_v - bf_v
vd = np.sqrt(u_diffs**2 + v_diffs**2)
vd_mean = np.mean(vd)
vd_std = np.std(vd)
print('VD bias/rms: {0:.2f} {1:.2f}'.format(vd_mean, np.sqrt(vd_mean**2 + vd_std**2)))
print('******************************************************')
x_values = []
num_pres = []
num_spd = []
num_dir = []
print('level num cases hgt MAD/bias spd MAD/bias dir MAD/bias')
print('-------------------------------------------------------------------')
for i in range(len(bin_ranges)):
x_values.append(np.average(bin_ranges[i]))
num_pres.append(bin_pres[i].shape[0])
num_spd.append(bin_spd[i].shape[0])
num_dir.append(bin_dir[i].shape[0])
print('{0:d} {1:d} {2:.2f}/{3:.2f} {4:.2f}/{5:.2f} {6:.2f}/{7:.2f}'
.format(int(x_values[i]), num_pres[i], np.average(np.abs(bin_pres[i])), np.average(bin_pres[i]),
np.average(np.abs(bin_spd[i])), np.average(bin_spd[i]), np.average(np.abs(bin_dir[i])), np.average(bin_dir[i])))
# imports the S4 NOAA output # imports the S4 NOAA output
# filename: full path as a string, '/home/user/filename' # filename: full path as a string, '/home/user/filename'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment