diff --git a/modules/icing/pirep_goes.py b/modules/icing/pirep_goes.py index ddf06e815b50ed2f39e72602d197e7effedc32ab..8ac6e275af4c09210b4c94c8b9f280446fe39bf2 100644 --- a/modules/icing/pirep_goes.py +++ b/modules/icing/pirep_goes.py @@ -255,6 +255,40 @@ def run(pirep_dct, outfile=None, outfile_l1b=None, dt_str_start=None, dt_str_end create_file(outfile_l1b, data_dct, l1b_ds_list, lon_c, lat_c, time_s, fl_alt_s) +def analyze2(ice_dct): + intensity = [] + cnt_0 = 0 + cnt_1 = 0 + cnt_2 = 0 + cnt_3 = 0 + cnt_4 = 0 + cnt_5 = 0 + cnt_6 = 0 + for ts in list(ice_dct.keys()): + reports = ice_dct[ts] + for tup in reports: + it = tup[3] + if it == 0: + cnt_0 += 1 + print(tup[4]) + elif it == 1: + cnt_1 += 1 + elif it == 2: + cnt_2 += 1 + elif it == 3: + cnt_3 += 1 + elif it == 4: + cnt_4 += 1 + elif it == 5: + cnt_5 += 1 + elif it == 6: + cnt_6 += 1 + intensity.append(tup[3]) + intensity = np.array(intensity) + print(np.histogram(intensity, bins=7)) + print(cnt_0, cnt_1, cnt_2, cnt_3, cnt_4, cnt_5, cnt_6) + + def analyze(ice_dct, no_ice_dct): last_file = None @@ -318,6 +352,127 @@ def analyze(ice_dct, no_ice_dct): print(dt_str[2:]) +def analyze_all(ice_dct, no_ice_dct, neg_ice_dct): + + last_file = None + ice_files = [] + ice_times = [] + ice_files_5_6 = [] + ice_times_5_6 = [] + ice_files_1 = [] + ice_times_1 = [] + ice_files_4 = [] + ice_times_4 = [] + ice_files_3 = [] + ice_times_3 = [] + ice_files_2 = [] + ice_times_2 = [] + for ts in list(ice_dct.keys()): + try: + ds = get_goes_datasource(ts) + goes_file, t_0, _ = ds.get_file(ts) + print(goes_file, t_0) + if goes_file is not None and goes_file != last_file: + rpts = ice_dct[ts] + for tup in rpts: + if tup[3] == 5 or tup[3] == 6: + ice_files_5_6.append(goes_file) + ice_times_5_6.append(t_0) + elif tup[3] == 1: + ice_files_1.append(goes_file) + ice_times_1.append(t_0) + elif tup[3] == 4: + ice_files_4.append(goes_file) + ice_times_4.append(t_0) + elif tup[3] == 3: + ice_files_3.append(goes_file) + ice_times_3.append(t_0) + else: + ice_files_2.append(goes_file) + ice_times_2.append(t_0) + last_file = goes_file + except Exception: + continue + + last_file = None + no_ice_files = [] + no_ice_times = [] + for ts in list(no_ice_dct.keys()): + try: + ds = get_goes_datasource(ts) + goes_file, t_0, _ = ds.get_file(ts) + if goes_file is not None and goes_file != last_file: + no_ice_files.append(goes_file) + no_ice_times.append(t_0) + last_file = goes_file + except Exception: + continue + + last_file = None + neg_ice_files = [] + neg_ice_times = [] + for ts in list(neg_ice_dct.keys()): + try: + ds = get_goes_datasource(ts) + goes_file, t_0, _ = ds.get_file(ts) + if goes_file is not None and goes_file != last_file: + neg_ice_files.append(goes_file) + neg_ice_times.append(t_0) + last_file = goes_file + except Exception: + continue + + ice_times_5_6 = np.array(ice_times_5_6) + ice_times = ice_times_1 + ice_files_2 + ice_files_3 + ice_files_4 + ice_times = np.array(ice_times) + ice_times_4 = np.array(ice_files_4) + ice_times_3 = np.array(ice_files_3) + ice_times_2 = np.array(ice_files_2) + ice_times_1 = np.array(ice_files_1) + no_ice_times = np.array(no_ice_times) + neg_ice_times = np.array(neg_ice_times) + + itrsct_vals, comm1, comm2 = np.intersect1d(ice_times_5_6, ice_times_4, return_indices=True) + print(itrsct_vals.shape) + itrsct_vals, comm1, comm2 = np.intersect1d(ice_times_5_6, ice_times_3, return_indices=True) + print(itrsct_vals.shape) + itrsct_vals, comm1, comm2 = np.intersect1d(ice_times_5_6, ice_times_2, return_indices=True) + print(itrsct_vals.shape) + itrsct_vals, comm1, comm2 = np.intersect1d(ice_times_5_6, ice_times_1, return_indices=True) + print(itrsct_vals.shape) + itrsct_vals, comm1, comm2 = np.intersect1d(ice_times_5_6, no_ice_times, return_indices=True) + print(itrsct_vals.shape) + itrsct_vals, comm1, comm2 = np.intersect1d(ice_times_5_6, neg_ice_times, return_indices=True) + print(itrsct_vals.shape) + + # ice_indexes = np.arange(len(ice_times)) + # + # ucomm2 = np.setxor1d(comm2, ice_indexes) + # np.random.shuffle(ucomm2) + # ucomm2 = ucomm2[0:8000] + # + # files_comm = [] + # for i in comm2: + # files_comm.append(ice_files[i]) + # + # files_extra = [] + # times_extra = [] + # for i in ucomm2: + # files_extra.append(ice_files[i]) + # times_extra.append(ice_times[i]) + # + # files = files_comm + files_extra + # times = itrsct_vals.tolist() + times_extra + # times = np.array(times) + # + # sidxs = np.argsort(times) + # for i in sidxs: + # filename = os.path.split(files[i])[1] + # so = re.search('_s\\d{11}', filename) + # dt_str = so.group() + # print(dt_str[2:]) + + def run_qc(filename, filename_l1b): f = h5py.File(filename, 'r') icing_alt = f['icing_altitude'][:]