From c52ce979d373bbcaea92eae0e78bdd61e0e40db5 Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Thu, 4 Jan 2024 18:59:14 -0600
Subject: [PATCH] snapshot...

---
 modules/util/abi_surfrad.py | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)

diff --git a/modules/util/abi_surfrad.py b/modules/util/abi_surfrad.py
index f7faf59b..4b4427bb 100644
--- a/modules/util/abi_surfrad.py
+++ b/modules/util/abi_surfrad.py
@@ -70,10 +70,21 @@ def process_cld_prob(grd_k):
 
 
 def process_cloud_frac(grd_k):
-    pass
+    keep = np.invert(np.isnan(grd_k))
+    num_keep = np.sum(keep)
+
+    grd_by_cat = get_cloud_frac_5cat(grd_k)
+    # if at least 20% mixed pass
+    keep_mix = np.where(keep, 0 < grd_by_cat < 4, False)
+    frac_mix = np.sum(keep_mix)/num_keep
+    if frac_mix < 0.20:
+        return None
+    grd_k = np.where(np.invert(keep), 0, grd_k)  # Convert NaN to 0
+    return grd_k
 
 
 def get_cloud_frac_5cat(grd_k):
+    grd_k = grd_k.copy()
     grd_k = np.where(np.isnan(grd_k), 0, grd_k)
     grd_k = np.where(grd_k < 0.5, 0, 1)
 
@@ -82,11 +93,11 @@ def get_cloud_frac_5cat(grd_k):
         grd_k[:, 0::4, 2::4] + grd_k[:, 1::4, 2::4] + grd_k[:, 2::4, 2::4] + grd_k[:, 3::4, 2::4] + \
         grd_k[:, 0::4, 3::4] + grd_k[:, 1::4, 3::4] + grd_k[:, 2::4, 3::4] + grd_k[:, 3::4, 3::4]
 
-    cat_0 = np.logical_and(s >= 0, s < 2)
-    cat_1 = np.logical_and(s >= 2, s < 6)
+    cat_0 = np.logical_and(s >= 0, s < 1)
+    cat_1 = np.logical_and(s >= 1, s < 6)
     cat_2 = np.logical_and(s >= 6, s < 11)
-    cat_3 = np.logical_and(s >= 11, s < 15)
-    cat_4 = np.logical_and(s >= 15, s <= 16)
+    cat_3 = np.logical_and(s >= 11, s <= 15)
+    cat_4 = np.logical_and(s > 15, s <= 16)
 
     s[cat_0] = 0
     s[cat_1] = 1
-- 
GitLab