From 7611b9ac552c183f93c1db754b8b3fb92ddd9de1 Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Wed, 9 Dec 2020 11:05:28 -0600 Subject: [PATCH] snapshot... --- modules/aeolus/aeolus_amv.py | 116 +++++++++++++++++------------------ 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py index e63c678d..517ccda0 100644 --- a/modules/aeolus/aeolus_amv.py +++ b/modules/aeolus/aeolus_amv.py @@ -483,64 +483,64 @@ def run_best_fit(raob_to_amv_dct, raob_dct, gfs_filename=None): return amvs_list, bf_list, raob_match_list, bf_gfs_list -def analyze2(raob_to_amv_dct, raob_dct, gfs_filename=None): - keys = list(raob_to_amv_dct.keys()) - - do_gfs_best_fit = False - gfs_press = None - gfs_spd = None - gfs_dir = None - bf_gfs_list = None - if gfs_filename is not None: - locs = np.array(keys) - do_gfs_best_fit = True - xr_dataset = xr.open_dataset(gfs_filename) - bf_gfs_list = [] - gfs_press = xr_dataset['pressure levels'] - gfs_press = gfs_press.values - gfs_press = gfs_press[::-1] - - uv_wind = get_vert_profile_s(xr_dataset, ['u-wind', 'v-wind'], locs[:, 1], locs[:, 0], method='nearest') - uv_wind = uv_wind.values - wspd, wdir = spd_dir_from_uv(uv_wind[0, :, :], uv_wind[1, :, :]) - wspd = wspd.magnitude - wdir = wdir.magnitude - gfs_spd = wspd[:, ::-1] - gfs_dir = wdir[:, ::-1] - - amvs_list = [] - bf_list = [] - raob_match_list = [] - for key_idx, key in enumerate(keys): - raob = raob_dct.get(key) - nlevs = raob.shape[0] - raob_prs = raob[:, 0] - raob_spd = raob[:, 2] - raob_dir = raob[:, 3] - amvs = raob_to_amv_dct.get(key) - amvs_list.append(amvs) - num_amvs = amvs.shape[1] - for i in range(num_amvs): - amv_lon = amvs[0, i] - amv_lat = amvs[1, i] - amv_prs = amvs[4, i] - amv_spd = amvs[5, i] - amv_dir = amvs[6, i] - - bf = best_fit(amv_spd, amv_dir, amv_prs, amv_lat, amv_lon, raob_spd, raob_dir, raob_prs) - bf_list.append(bf) - - pdiff = amv_prs - raob_prs - lev_idx = np.argmin(np.abs(pdiff)) - if np.abs(pdiff[lev_idx]) > 100.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) - raob_match_list.append(tup) - - if do_gfs_best_fit: - 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) +def analyze2(raob_to_amv_dct, raob_dct, amvs_list, bf_list, raob_match_list, bf_gfs_list, gfs_filename=None): + # keys = list(raob_to_amv_dct.keys()) + # + # do_gfs_best_fit = False + # gfs_press = None + # gfs_spd = None + # gfs_dir = None + # bf_gfs_list = None + # if gfs_filename is not None: + # locs = np.array(keys) + # do_gfs_best_fit = True + # xr_dataset = xr.open_dataset(gfs_filename) + # bf_gfs_list = [] + # gfs_press = xr_dataset['pressure levels'] + # gfs_press = gfs_press.values + # gfs_press = gfs_press[::-1] + # + # uv_wind = get_vert_profile_s(xr_dataset, ['u-wind', 'v-wind'], locs[:, 1], locs[:, 0], method='nearest') + # uv_wind = uv_wind.values + # wspd, wdir = spd_dir_from_uv(uv_wind[0, :, :], uv_wind[1, :, :]) + # wspd = wspd.magnitude + # wdir = wdir.magnitude + # gfs_spd = wspd[:, ::-1] + # gfs_dir = wdir[:, ::-1] + # + # amvs_list = [] + # bf_list = [] + # raob_match_list = [] + # for key_idx, key in enumerate(keys): + # raob = raob_dct.get(key) + # nlevs = raob.shape[0] + # raob_prs = raob[:, 0] + # raob_spd = raob[:, 2] + # raob_dir = raob[:, 3] + # amvs = raob_to_amv_dct.get(key) + # amvs_list.append(amvs) + # num_amvs = amvs.shape[1] + # for i in range(num_amvs): + # amv_lon = amvs[0, i] + # amv_lat = amvs[1, i] + # amv_prs = amvs[4, i] + # amv_spd = amvs[5, i] + # amv_dir = amvs[6, i] + # + # bf = best_fit(amv_spd, amv_dir, amv_prs, amv_lat, amv_lon, raob_spd, raob_dir, raob_prs) + # bf_list.append(bf) + # + # pdiff = amv_prs - raob_prs + # lev_idx = np.argmin(np.abs(pdiff)) + # if np.abs(pdiff[lev_idx]) > 100.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) + # raob_match_list.append(tup) + # + # if do_gfs_best_fit: + # 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) amvs = np.concatenate(amvs_list, axis=1) amvs = np.transpose(amvs, axes=[1, 0]) -- GitLab