Skip to content
Snippets Groups Projects
Commit 37e6923e authored by tomrink's avatar tomrink
Browse files

snapshot...

parent 02352b70
No related branches found
No related tags found
No related merge requests found
...@@ -465,18 +465,15 @@ def run_best_fit_all(): ...@@ -465,18 +465,15 @@ def run_best_fit_all():
'gfs.19112812_F012.h5', 'gfs.19112812_F012.h5',
'gfs.19112912_F012.h5'] 'gfs.19112912_F012.h5']
amvs_list = [] out_list = []
bf_list = []
raob_match_list = []
bf_gfs_list = []
amv_prod_list = []
for k, file in enumerate(raob_files): for k, file in enumerate(raob_files):
raob_dct, ts = get_raob_dict_cdf(raob_dir+file) raob_dct, ts = get_raob_dict_cdf(raob_dir+file)
m_d = match_amvs_to_raobs(raob_dct, ts, amv_files=amv_files) m_d = match_amvs_to_raobs(raob_dct, ts, amv_files=amv_files)
amvs_list, bf_list, raob_match_list, bf_gfs_list = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k], dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k])
amvs_list=amvs_list, bf_list=bf_list, raob_match_list=raob_match_list, bf_gfs_list=bf_gfs_list) out_list.append(dct)
prd_dct = get_product_at_locs(m_d, ts, prd_files, amv_prod_list=amv_prod_list) prd_dct = get_product_at_locs(m_d, ts, prd_files)
analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list)
#analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list)
# amvs = get_amvs(amv_files, ts) # amvs = get_amvs(amv_files, ts)
# amvs_list.append(amvs) # amvs_list.append(amvs)
...@@ -484,12 +481,12 @@ def run_best_fit_all(): ...@@ -484,12 +481,12 @@ def run_best_fit_all():
# bf_list.append(bfs) # bf_list.append(bfs)
# bin_ranges, bin_pres, bin_spd, bin_dir = analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list) # bin_ranges, bin_pres, bin_spd, bin_dir = analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list)
bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit_all(amvs_list, bf_list, bin_size=100) # bin_ranges, bin_pres, bin_spd, bin_dir = compare_amvs_bestfit_all(amvs_list, bf_list, bin_size=100)
return bin_ranges, bin_pres, bin_spd, bin_dir return out_list
def get_product_at_locs(raob_to_amv_dct, ts, files, amv_prod_list=[], filepath=None): def get_product_at_locs(raob_to_amv_dct, ts, files, filepath=None):
keys = list(raob_to_amv_dct.keys()) keys = list(raob_to_amv_dct.keys())
m_dct = {} m_dct = {}
...@@ -521,7 +518,6 @@ def get_product_at_locs(raob_to_amv_dct, ts, files, amv_prod_list=[], filepath=N ...@@ -521,7 +518,6 @@ def get_product_at_locs(raob_to_amv_dct, ts, files, amv_prod_list=[], filepath=N
aaa[:, k] = param_nd[:, ll[k], cc[k]] aaa[:, k] = param_nd[:, ll[k], cc[k]]
m_dct[key] = aaa m_dct[key] = aaa
amv_prod_list.append(aaa)
ds.close() ds.close()
...@@ -632,7 +628,8 @@ def run_best_fit2(raob_to_amv_dct, raob_dct, gfs_filename=None): ...@@ -632,7 +628,8 @@ def run_best_fit2(raob_to_amv_dct, raob_dct, gfs_filename=None):
return bfs_dct return bfs_dct
def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_list=[], raob_match_list=[], bf_gfs_list=[]): def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None):
out_dct = {}
keys = list(raob_to_amv_dct.keys()) keys = list(raob_to_amv_dct.keys())
do_gfs_best_fit = False do_gfs_best_fit = False
...@@ -667,6 +664,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_ ...@@ -667,6 +664,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_
amvs = raob_to_amv_dct.get(key) amvs = raob_to_amv_dct.get(key)
amvs_list.append(amvs) amvs_list.append(amvs)
num_amvs = amvs.shape[1] num_amvs = amvs.shape[1]
bf_list = []
raob_match_list = []
bf_gfs_list = []
for i in range(num_amvs): for i in range(num_amvs):
amv_lon = amvs[0, i] amv_lon = amvs[0, i]
amv_lat = amvs[1, i] amv_lat = amvs[1, i]
...@@ -689,7 +689,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_ ...@@ -689,7 +689,9 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None, amvs_list=[], bf_
bf = best_fit(amv_spd, amv_dir, amv_prs, amv_lat, amv_lon, gfs_spd[key_idx], gfs_dir[key_idx], gfs_press) bf = best_fit(amv_spd, amv_dir, amv_prs, amv_lat, amv_lon, gfs_spd[key_idx], gfs_dir[key_idx], gfs_press)
bf_gfs_list.append(bf) bf_gfs_list.append(bf)
return amvs_list, bf_list, raob_match_list, bf_gfs_list out_dct[key] = (np.transpose(amvs, axes=[1, 0]), np.array(bf_list), np.array(raob_match_list), np.array(bf_gfs_list))
return out_dct
def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list): def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
...@@ -704,6 +706,12 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list): ...@@ -704,6 +706,12 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
amv_prd = np.concatenate(amv_prod_list, axis=1) amv_prd = np.concatenate(amv_prod_list, axis=1)
amv_prd = np.transpose(amv_prd, axes=[1, 0]) amv_prd = np.transpose(amv_prd, axes=[1, 0])
vld = amv_prd[:, 2] > 0
#print(np.histogram(amv_prd[:, 0]))
#print(np.histogram(amv_prd[:, 1]))
print(np.histogram(amv_prd[vld, 2], bins=20))
good_amvs = amvs good_amvs = amvs
num_good = good_amvs.shape[0] num_good = good_amvs.shape[0]
didx = 6 didx = 6
...@@ -1028,7 +1036,7 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list): ...@@ -1028,7 +1036,7 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list):
.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])))
return bin_ranges, bin_pres, bin_spd, bin_dir #return bin_ranges, bin_pres, bin_spd, bin_dir
def compare_amvs_bestfit_all(amvs_list, bfs_list, bin_size=200): def compare_amvs_bestfit_all(amvs_list, bfs_list, bin_size=200):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment