Skip to content
Snippets Groups Projects
Commit 677aebd6 authored by rink's avatar rink
Browse files

snapshot..

parent 033d6548
No related branches found
No related tags found
No related merge requests found
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment