diff --git a/modules/icing/pirep_goes.py b/modules/icing/pirep_goes.py index 206f0b969ee7ea060e6eaf14125142ed151cfb11..248105c5f3e34a37368326cf070b0a286e2323ba 100644 --- a/modules/icing/pirep_goes.py +++ b/modules/icing/pirep_goes.py @@ -1042,13 +1042,13 @@ def run_qc(filename, filename_l1b, day_night='ANY', pass_thresh_frac=0.20, icing for i in range(len(mask)): keep_idxs.append(idxs[i]) - # # frac = np.sum(mask[i]) / nx_x_ny - # frac = np.sum(mask[i]) / num_tested[i] - # if icing: - # if frac > pass_thresh_frac: - # keep_idxs.append(idxs[i]) - # elif frac > pass_thresh_frac: - # keep_idxs.append(idxs[i]) + # frac = np.sum(mask[i]) / nx_x_ny + frac = np.sum(mask[i]) / num_tested[i] + if icing: + if frac > pass_thresh_frac: + keep_idxs.append(idxs[i]) + elif frac > pass_thresh_frac: + keep_idxs.append(idxs[i]) print('day_night, icing, all, valid, pass: ', day_night, icing, len(icing_alt), len(mask), len(keep_idxs)) print('-----------------------') @@ -1241,6 +1241,7 @@ def apply_qc_icing_pireps(icing_alt, cld_top_hgt, cld_geo_dz, cld_phase, cld_opd cld_top_hgt = cld_top_hgt.reshape((num_obs, -1)) cld_geo_dz = cld_geo_dz.reshape((num_obs, -1)) bt_11um = bt_11um.reshape((num_obs, -1)) + cld_top_temp = cld_top_temp.reshape((num_obs, -1)) mask = [] idxs = [] @@ -1271,25 +1272,26 @@ def apply_qc_icing_pireps(icing_alt, cld_top_hgt, cld_geo_dz, cld_phase, cld_opd if num_keep / nx_x_ny < cloud_fraction: # At least this fraction cloudy continue - # keep = np.where(keep, (cld_top_hgt[i,] + closeness_top) > icing_alt[i], False) + keep = np.where(keep, (cld_top_hgt[i,] + closeness_top) > icing_alt[i], False) # keep = np.where(keep, cld_top_hgt[i,] < max_cld_altitude, False) - # keep = np.where(keep, (cld_top_hgt[i,] - max_cld_depth) < icing_alt[i], False) + keep = np.where(keep, (cld_top_hgt[i,] - max_cld_depth) < icing_alt[i], False) # keep = np.where(keep, np.logical_and(bt_11um[i,] > 228.0, bt_11um[i,] < 270.0), False) # keep = np.where(keep, bt_11um[i,] < 275.0, False) + keep = np.where(keep, cld_top_temp[i,] < 275.0, False) - cld_hgt = cld_top_hgt[i, ].flatten() - med_cld_hgt = np.median(cld_hgt[keep]) - if icing_alt[i] > med_cld_hgt: - continue - - cld_tmp = cld_top_temp[i, ].flatten() - med_cld_tmp = np.median(cld_tmp[keep]) - if med_cld_tmp > 275.0: - continue - - if icing_alt[i] < med_cld_hgt - max_cld_depth: - continue + # cld_hgt = cld_top_hgt[i, ].flatten() + # med_cld_hgt = np.median(cld_hgt[keep]) + # if icing_alt[i] > med_cld_hgt: + # continue + # + # cld_tmp = cld_top_temp[i, ].flatten() + # med_cld_tmp = np.median(cld_tmp[keep]) + # if med_cld_tmp > 275.0: + # continue + # + # if icing_alt[i] < med_cld_hgt - max_cld_depth: + # continue mask.append(keep) idxs.append(i) @@ -1317,6 +1319,7 @@ def apply_qc_no_icing_pireps(icing_alt, cld_top_hgt, cld_geo_dz, cld_phase, cld_ cld_top_hgt = cld_top_hgt.reshape((num_obs, -1)) cld_geo_dz = cld_geo_dz.reshape((num_obs, -1)) bt_11um = bt_11um.reshape((num_obs, -1)) + cld_top_temp = cld_top_temp.reshape((num_obs, -1)) mask = [] idxs = [] @@ -1347,25 +1350,26 @@ def apply_qc_no_icing_pireps(icing_alt, cld_top_hgt, cld_geo_dz, cld_phase, cld_ if num_keep / nx_x_ny < cloudy_frac: # At least this fraction cloudy continue - # keep = np.where(keep, (cld_top_hgt[i,] + closeness_top) > icing_alt[i], False) + keep = np.where(keep, (cld_top_hgt[i,] + closeness_top) > icing_alt[i], False) # keep = np.where(keep, cld_top_hgt[i,] < max_cld_altitude, False) - # keep = np.where(keep, (cld_top_hgt[i,] - max_cld_depth) < icing_alt[i], False) + keep = np.where(keep, (cld_top_hgt[i,] - max_cld_depth) < icing_alt[i], False) # keep = np.where(keep, np.logical_and(bt_11um[i,] > 228.0, bt_11um[i,] < 270.0), False) # keep = np.where(keep, bt_11um[i,] < 275.0, False) + keep = np.where(keep, cld_top_temp[i,] < 275.0, False) - cld_hgt = cld_top_hgt[i, ].flatten() - med_cld_hgt = np.median(cld_hgt[keep]) - if icing_alt[i] > med_cld_hgt: - continue - - cld_tmp = cld_top_temp[i, ].flatten() - med_cld_tmp = np.median(cld_tmp[keep]) - if med_cld_tmp > 275.0: - continue - - if icing_alt[i] < med_cld_hgt - max_cld_depth: - continue + # cld_hgt = cld_top_hgt[i, ].flatten() + # med_cld_hgt = np.median(cld_hgt[keep]) + # if icing_alt[i] > med_cld_hgt: + # continue + # + # cld_tmp = cld_top_temp[i, ].flatten() + # med_cld_tmp = np.median(cld_tmp[keep]) + # if med_cld_tmp > 275.0: + # continue + # + # if icing_alt[i] < med_cld_hgt - max_cld_depth: + # continue mask.append(keep) idxs.append(i)