diff --git a/modules/amv/aeolus.py b/modules/amv/aeolus.py index b1ce78d8675f649c9620e59f8ca972efbec6ff51..db0b18bead75da210376d2402de78dd56f34f555 100644 --- a/modules/amv/aeolus.py +++ b/modules/amv/aeolus.py @@ -9,6 +9,7 @@ from metpy import * import h5py from netCDF4 import Dataset +from aeolus.aeolus_amv import get_aeolus_time_dict from util.lon_lat_grid import earth_to_indexs from util.geos_nav import GEOSNavigation from util.util import bin_data_by, get_bin_ranges @@ -133,81 +134,6 @@ def get_file_containing_time(timestamp, files_path, dto_func, file_time_span): return flist[k], ftimes[k], k -# imports the S4 NOAA output -# filename: full path as a string, '/home/user/filename' -# returns a dict: time -> list of profiles (a profile is a list of levels) -def get_aeolus_time_dict(filename, lon360=False, do_sort=True): - time_dict = {} - - with open(filename) as file: - while True: - prof_hdr = file.readline() - if not prof_hdr: - break - toks = prof_hdr.split() - - yr = int(float(toks[0])) - mon = int(float(toks[1])) - dy = int(float(toks[2])) - hr = int(float(toks[3])) - mn = int(float(toks[4])) - ss = int(float(toks[5])) - lon = float(toks[6]) - lat = float(toks[7]) - nlevs = int(toks[8]) - - if lon360: - if lon < 0: - lon += 360.0 - else: - if lon > 180.0: - lon -= 360.0 - - dto = datetime.datetime(year=yr, month=mon, day=dy, hour=hr, minute=mn, second=ss) - dto = dto.replace(tzinfo=timezone.utc) - timestamp = dto.timestamp() - - prof = [] - if time_dict.get(timestamp, -1) == -1: - prof_s = [] - prof_s.append(prof) - time_dict[timestamp] = prof_s - else: - prof_s = time_dict.get(timestamp) - prof_s.append(prof) - - for k in range(nlevs): - line = file.readline() - toks = line.split() - lvlidx = int(toks[0]) - hhh = float(toks[1]) * 1000.0 - hht = float(toks[2]) * 1000.0 - hhb = float(toks[3]) * 1000.0 - err = float(toks[4]) - azm = float(toks[5]) - ws = float(toks[6]) - len = float(toks[7]) - - tup = (lat, lon, hhh, hht, hhb, azm, ws) - - prof.append(tup) - - file.close() - - if do_sort: - keys = np.array(list(time_dict.keys())) - keys.sort() - keys = keys.tolist() - - sorted_time_dict = {} - - for key in keys: - sorted_time_dict[key] = time_dict.get(key) - time_dict = sorted_time_dict - - return time_dict - - def time_dict_to_cld_layers(time_dict): time_dict_layers = {}