From d5f8ca767433fb95280d5cd5e380a9be58953119 Mon Sep 17 00:00:00 2001 From: tomrink <rink@ssec.wisc.edu> Date: Wed, 28 Oct 2020 10:04:34 -0500 Subject: [PATCH] snapshot... --- modules/aeolus/aeolus_amv.py | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py index e3809f47..5914182c 100644 --- a/modules/aeolus/aeolus_amv.py +++ b/modules/aeolus/aeolus_amv.py @@ -579,12 +579,25 @@ def subset_by_time(match_file, dt_str_0, dt_str_1, amv_var_names): a_nc_vars.append(rootgrp[vname]) nvars = len(a_nc_vars) + mf_vars = list(rootgrp.variables.keys()) + p_lon_v = rootgrp['prof_longitude'] p_lat_v = rootgrp['prof_latitude'] - p_azm_v = rootgrp['prof_azm'] - p_spd_v = rootgrp['prof_spd'] - p_hhb_v = rootgrp['prof_hhb'] - p_hht_v = rootgrp['prof_hht'] + p_vars = [] + p_var_names = [] + if 'prof_hhb' in mf_vars: + p_vars.append(rootgrp['prof_hhb']) + p_var_names.append('layer_bot') + if 'prof_hht' in mf_vars: + p_vars.append(rootgrp['prof_hht']) + p_var_names.append('layer_top') + if 'prof_spd' in mf_vars: + p_vars.append(rootgrp['prof_spd']) + p_var_names.append('speed') + if 'prof_azm' in mf_vars: + p_vars.append(rootgrp['prof_azm']) + p_var_names.append('azimuth') + npvars = len(p_vars) dto = datetime.datetime.strptime(dt_str_0, '%Y-%m-%d_%H:%M').replace(tzinfo=timezone.utc) dto.replace(tzinfo=timezone.utc) @@ -614,7 +627,7 @@ def subset_by_time(match_file, dt_str_0, dt_str_1, amv_var_names): mx_nlevs = np.max(n_levs_per_prof[time_idxs[0]:time_idxs[0]+n_times]) amvs = np.zeros((n_times, mx_namvs, nvars)) - profs = np.zeros((n_times, mx_nlevs, 4)) + profs = np.zeros((n_times, mx_nlevs, npvars)) amvs.fill(np.nan) profs.fill(np.nan) @@ -633,15 +646,13 @@ def subset_by_time(match_file, dt_str_0, dt_str_1, amv_var_names): for k in range(nvars): amvs[idx, 0:n_amvs, k] = a_nc_vars[k][a:b] - profs[idx, 0:n_levs, 0] = p_spd_v[c:d] - profs[idx, 0:n_levs, 1] = p_azm_v[c:d] - profs[idx, 0:n_levs, 2] = p_hhb_v[c:d] - profs[idx, 0:n_levs, 3] = p_hht_v[c:d] + for k in range(nvars): + profs[idx, 0:n_levs, k] = p_vars[k][c:d] accum_amv += n_amvs accum_prf += n_levs - coords = {'num_profs': times[time_idxs], 'num_params': ['speed', 'azimuth', 'layer_bot', 'layer_top']} + coords = {'num_profs': times[time_idxs], 'num_params': p_var_names} prof_da = xr.DataArray(profs, coords=coords, dims=['num_profs', 'max_num_levels', 'num_params']) coords = {'num_profs': times[time_idxs], 'num_params': amv_var_names} -- GitLab