diff --git a/modules/icing/pirep_goes.py b/modules/icing/pirep_goes.py index 69f10c24d6b3a681b03820b9f52581d956b107fd..177e8bd2fd12466f4db2e6f9049da28229cb826e 100644 --- a/modules/icing/pirep_goes.py +++ b/modules/icing/pirep_goes.py @@ -832,8 +832,10 @@ def apply_qc_icing_pireps(icing_alt, cld_top_hgt, cld_phase, cld_opd, cld_mask, def apply_qc_no_icing_pireps(icing_alt, cld_top_hgt, cld_phase, cld_opd, cld_mask, bt_11um, solzen, satzen, day_night='ANY'): opd_thick_threshold = 2 + opd_thin_threshold = 0.1 if day_night == 'DAY': opd_thick_threshold = 20 + opd_thin_threshold = 1 closeness = 100.0 # meters num_obs = len(icing_alt) cld_mask = cld_mask.reshape((num_obs, -1)) @@ -858,27 +860,32 @@ def apply_qc_no_icing_pireps(icing_alt, cld_top_hgt, cld_phase, cld_opd, cld_mas keep_0 = np.logical_or(cld_mask[i,] == 2, cld_mask[i,] == 3) # cloudy keep_1 = np.invert(np.isnan(cld_top_hgt[i,])) keep_2 = np.invert(np.isnan(bt_11um[i,])) - # keep_3 = np.invert(np.isnan(cld_opd[i,])) - # keep = keep_0 & keep_1 & keep_2 & keep_3 - # num_keep = np.sum(keep) - keep = keep_0 & keep_1 & keep_2 + keep_3 = np.invert(np.isnan(cld_opd[i,])) + keep = keep_0 & keep_1 & keep_2 & keep_3 num_keep = np.sum(keep) if num_keep == 0: continue + # Test1 keep = np.where(keep, cld_top_hgt[i,] > icing_alt[i], False) - # keep = np.where(keep, - # np.invert((cld_phase[i,] == 4) & - # np.logical_and(cld_top_hgt[i,]+closeness > icing_alt[i], cld_top_hgt[i,]-closeness < icing_alt[i])), - # False) - # keep = np.where(keep, (cld_opd[i,] >= opd_thick_threshold) & (cld_phase[i,] == 4) & (cld_top_hgt[i,] > icing_alt[i]), False) - # - # keep = np.where(keep, np.invert((cld_phase[i,] == 4) & (cld_opd[i,] < 0.1) & (cld_top_hgt[i,] > icing_alt[i])), False) - # - keep = np.where(keep, bt_11um[i,] > 270.0, False) - - keep = np.where(keep, bt_11um[i,] < 228.0, False) + # Test2 + keep = np.where(keep, + ((cld_phase[i,] == 4) & + np.logical_and(cld_top_hgt[i,]+closeness > icing_alt[i], cld_top_hgt[i,]-closeness < icing_alt[i])), + False) + + # Test4 + keep = np.where(keep, ((cld_phase[i,] == 4) & (cld_opd[i,] < opd_thin_threshold) & (cld_top_hgt[i,] > icing_alt[i])), False) + + # Test5 + keep = np.where(keep, (bt_11um[i,] > 270.0), False) + + # Test6 + keep = np.where(keep, (bt_11um[i,] < 228.0), False) + + # Test3 + keep = np.where(keep, np.invert((cld_opd[i,] >= opd_thick_threshold) & (cld_phase[i,] == 4) & (cld_top_hgt[i,] > icing_alt[i])), False) mask.append(keep) idxs.append(i)