From 5d374d679f77adc87c5c11639a9315c5445f17f0 Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Tue, 29 Dec 2020 20:07:04 -0600 Subject: [PATCH] snapshot... --- modules/aeolus/aeolus_amv.py | 150 ++++++++++++++++++++++------------- 1 file changed, 96 insertions(+), 54 deletions(-) diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py index e25ba803..db685703 100644 --- a/modules/aeolus/aeolus_amv.py +++ b/modules/aeolus/aeolus_amv.py @@ -215,7 +215,7 @@ def create_file2(filename, raob_to_amv_dct, raob_dct, amv_files): rootgrp.close() -def run_best_fit_all(): +def run_best_fit_all(full_domain=False): amv_files = get_datasource('/apollo/cloud/scratch/AMV_BUST/FMWK_TEST3/', 10, 'FMWK') prd_files = get_datasource('/apollo/cloud/scratch/AMV_BUST/FMWK_TEST3/', 10, 'FMWK_CLD_HGT') @@ -252,22 +252,66 @@ def run_best_fit_all(): 'gfs.19112912_F012.h5'] out_list = [] - for k, file in enumerate(raob_files): - raob_dct, ts = get_raob_dict_cdf(raob_dir+file) - m_d = match_amvs_to_raobs(raob_dct, ts, amv_files=amv_files) - bf_dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k]) - prd_dct = get_product_at_locs(m_d, ts, prd_files) - out_list.append((bf_dct, prd_dct)) + amvs_list = [] + bfs_list = [] + rb_list = [] + bfs_gfs_list = [] + prd_list = [] + if not full_domain: + for k, file in enumerate(raob_files): + raob_dct, ts = get_raob_dict_cdf(raob_dir+file) + m_d = match_amvs_to_raobs(raob_dct, ts, amv_files=amv_files) + bf_dct = run_best_fit(m_d, raob_dct, gfs_dir+gfs_files[k]) + prd_dct = get_product_at_locs(m_d, ts, prd_files) + out_list.append((bf_dct, prd_dct)) + + for tup in out_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)) + else: + for k, file in enumerate(raob_files): + raob_dct, ts = get_raob_dict_cdf(raob_dir+file) + amvs = get_amvs(amv_files, ts) + bfs = run_best_fit_gfs(amvs, gfs_dir+gfs_files[k], amv_lat_idx=0, amv_lon_idx=1, amv_prs_idx=4, amv_spd_idx=5, amv_dir_idx=6) + alons = amvs[:, 0] + alats = amvs[:, 1] + prds = get_product_at_lat_lons(prd_files, ts, alons, alats, filepath=None) + + out_list.append((amvs, np.array(bfs), prds)) + + for dct in out_list: + keys = list(dct.keys()) + for key in keys: + tup = dct.get(key) + amvs_list.append(tup[0]) + bfs_list.append(tup[1]) + + for tup in out_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) + bfs_gfs = np.concatenate(bfs_gfs_list) + prd = np.concatenate(prd_list) - # amvs = get_amvs(amv_files, ts) - # bfs = run_best_fit_gfs(amvs, gfs_dir+gfs_files[k], amv_lat_idx=0, amv_lon_idx=1, amv_prs_idx=4, amv_spd_idx=5, amv_dir_idx=6) - # alons = amvs[:, 0] - # alats = amvs[:, 1] - # prds = get_product_at_lat_lons(prd_files, ts, alons, alats, filepath=None) - # - # out_list.append((amvs, np.array(bfs), prds)) + tup = (amvs, bfs, prd, bfs_gfs, rbm) - return out_list + return tup def get_product_at_locs(raob_to_amv_dct, ts, files, filepath=None): @@ -451,7 +495,6 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list): 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)) @@ -783,50 +826,49 @@ def analyze2(amvs_list, bf_list, raob_match_list, bf_gfs_list, amv_prod_list): #return bin_ranges, bin_pres, bin_spd, bin_dir -def compare_amvs_bestfit_driver(all_list, bin_size=200): - ntimes = len(all_list) - - amvs_list = [] - bfs_list = [] - 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)) - +def compare_amvs_bestfit_driver(amvs, bfs, prd, bfs_gfs, rbm, bin_size=200): # amvs_list = [] # bfs_list = [] - # for dct in all_list: - # keys = list(dct.keys()) + # 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 = dct.get(key) + # tup = ab_dct.get(key) # 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]) - - amvs = np.concatenate(amvs_list) - bfs = np.concatenate(bfs_list) - rbm = np.concatenate(rb_list) - bfs_gfs = np.concatenate(bfs_gfs_list) - prd = np.concatenate(prd_list) + # 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 = [] + # # bfs_list = [] + # # for dct in all_list: + # # keys = list(dct.keys()) + # # for key in keys: + # # tup = dct.get(key) + # # 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]) + # + # amvs = np.concatenate(amvs_list) + # bfs = np.concatenate(bfs_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) -- GitLab