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: ...@@ -36,6 +36,11 @@ class AMVFiles:
dto_end = dto + datetime.timedelta(minutes=file_time_span) dto_end = dto + datetime.timedelta(minutes=file_time_span)
self.ftimes.append((dto_start.timestamp(), dto_end.timestamp())) 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): def get_datetime(self, pathname):
return None return None
...@@ -96,6 +101,11 @@ class CarrStereo(AMVFiles): ...@@ -96,6 +101,11 @@ class CarrStereo(AMVFiles):
def __init__(self, files_path, file_time_span, band='14'): def __init__(self, files_path, file_time_span, band='14'):
super().__init__(files_path, file_time_span, 'tdw_qc_GOES*'+'ch_'+band+'.nc', band) 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): def get_navigation(self):
return GEOSNavigation(sub_lon=-137.0) return GEOSNavigation(sub_lon=-137.0)
...@@ -108,7 +118,7 @@ class CarrStereo(AMVFiles): ...@@ -108,7 +118,7 @@ class CarrStereo(AMVFiles):
return dto return dto
def get_parameters(self): 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'] 'InversionFlag', 'CloudPhase', 'CloudType']
return params return params
...@@ -378,6 +388,7 @@ sub_lon = -137.0 # GOES-17 ...@@ -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) # 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): def match_amvs_to_aeolus(aeolus_dict, amv_files_path, amv_source='OPS', band='14', amv_files=None):
nav = amv_files.get_navigation() nav = amv_files.get_navigation()
amv_params = amv_files.get_parameters()
match_dict = {} match_dict = {}
keys = list(aeolus_dict.keys()) keys = list(aeolus_dict.keys())
...@@ -402,14 +413,28 @@ def match_amvs_to_aeolus(aeolus_dict, amv_files_path, amv_source='OPS', band='14 ...@@ -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: if f_idx != last_f_idx:
last_f_idx = f_idx last_f_idx = f_idx
ds = Dataset(fname) 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_lons = ds[amv_lon_name][:]
amv_lats = ds[amv_lat_name][:] amv_lats = ds[amv_lat_name][:]
amv_spd = ds[amv_spd_name][:] cc = ds[amv_files.elem_name][:]
amv_dir = ds[amv_dir_name][:] ll = ds[amv_files.line_name][:]
amv_pres = ds[amv_press_name][:]
cc = ds[amv_elem_name][:]
ll = ds[amv_line_name][:]
# cc, ll = nav.earth_to_lc_s(amv_lons, amv_lats) # 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() ds.close()
in_cc = np.logical_and(cc > c_rng[0], cc < c_rng[1]) 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 ...@@ -420,7 +445,10 @@ def match_amvs_to_aeolus(aeolus_dict, amv_files_path, amv_source='OPS', band='14
if num_amvs == 0: if num_amvs == 0:
continue continue
dist = haversine_np(lon, lat, amv_lons[in_box], amv_lats[in_box]) 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 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