From 677aebd6a3f7b872de90bda777ae9f2115edb706 Mon Sep 17 00:00:00 2001 From: rink <rink@ssec.wisc.edu> Date: Mon, 12 Oct 2020 18:50:17 -0500 Subject: [PATCH] snapshot.. --- modules/aeolus/aeolus_amv.py | 42 ++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/modules/aeolus/aeolus_amv.py b/modules/aeolus/aeolus_amv.py index c496c8ad..923f02ee 100644 --- a/modules/aeolus/aeolus_amv.py +++ b/modules/aeolus/aeolus_amv.py @@ -36,6 +36,11 @@ class AMVFiles: dto_end = dto + datetime.timedelta(minutes=file_time_span) self.ftimes.append((dto_start.timestamp(), dto_end.timestamp())) + self.elem_name = None + self.line_name = None + self.lat_name = None + self.lon_name = None + def get_datetime(self, pathname): return None @@ -96,6 +101,11 @@ class CarrStereo(AMVFiles): def __init__(self, files_path, file_time_span, band='14'): super().__init__(files_path, file_time_span, 'tdw_qc_GOES*'+'ch_'+band+'.nc', band) + self.elem_name = 'Element' + self.line_name = 'Line' + self.lon_name = 'Lon' + self.lat_name = 'Lat' + def get_navigation(self): return GEOSNavigation(sub_lon=-137.0) @@ -108,7 +118,7 @@ class CarrStereo(AMVFiles): return dto def get_parameters(self): - params = ['Lat', 'Lon', 'Element', 'Line', 'V_3D', 'H_3D', 'pres', 'Fcst_Spd', 'Fcst_Dir', 'SatZen', + params = ['V_3D', 'H_3D', 'pres', 'Fcst_Spd', 'Fcst_Dir', 'SatZen', 'InversionFlag', 'CloudPhase', 'CloudType'] return params @@ -378,6 +388,7 @@ sub_lon = -137.0 # GOES-17 # return dict: aeolus time -> tuple (amv_lon, amv_lat, amv_pres, amv_spd, amv_dir) def match_amvs_to_aeolus(aeolus_dict, amv_files_path, amv_source='OPS', band='14', amv_files=None): nav = amv_files.get_navigation() + amv_params = amv_files.get_parameters() match_dict = {} keys = list(aeolus_dict.keys()) @@ -402,14 +413,28 @@ def match_amvs_to_aeolus(aeolus_dict, amv_files_path, amv_source='OPS', band='14 if f_idx != last_f_idx: last_f_idx = f_idx ds = Dataset(fname) + # amv_lons = ds[amv_lon_name][:] + # amv_lats = ds[amv_lat_name][:] + # amv_spd = ds[amv_spd_name][:] + # amv_dir = ds[amv_dir_name][:] + # amv_pres = ds[amv_press_name][:] + # cc = ds[amv_files.elem_name][:] + # ll = ds[amv_files.line_name][:] + amv_lons = ds[amv_lon_name][:] amv_lats = ds[amv_lat_name][:] - amv_spd = ds[amv_spd_name][:] - amv_dir = ds[amv_dir_name][:] - amv_pres = ds[amv_press_name][:] - cc = ds[amv_elem_name][:] - ll = ds[amv_line_name][:] + cc = ds[amv_files.elem_name][:] + ll = ds[amv_files.line_name][:] # cc, ll = nav.earth_to_lc_s(amv_lons, amv_lats) + + param_s = [] + param_s.append(amv_lons) + param_s.append(amv_lats) + param_s.append(cc) + param_s.append(ll) + for param in amv_params: + param_s.append(ds[param][:]) + ds.close() in_cc = np.logical_and(cc > c_rng[0], cc < c_rng[1]) @@ -420,7 +445,10 @@ def match_amvs_to_aeolus(aeolus_dict, amv_files_path, amv_source='OPS', band='14 if num_amvs == 0: continue dist = haversine_np(lon, lat, amv_lons[in_box], amv_lats[in_box]) - match_dict[key] = (amv_lons[in_box], amv_lats[in_box], amv_pres[in_box], amv_spd[in_box], amv_dir[in_box], dist) + params_nd = np.vstack(param_s) + params_nd = params_nd[:, in_box] + print(params_nd.shape) + #match_dict[key] = (amv_lons[in_box], amv_lats[in_box], amv_pres[in_box], amv_spd[in_box], amv_dir[in_box], dist) return match_dict -- GitLab