diff --git a/modules/util/viirs_l1b_l2.py b/modules/util/viirs_l1b_l2.py
index 2172c92001634f724e712dc77399ce2758f92483..66d4e51a90b152349e602b3cc391df7f22446d03 100644
--- a/modules/util/viirs_l1b_l2.py
+++ b/modules/util/viirs_l1b_l2.py
@@ -78,14 +78,14 @@ def keep_tile(param_s, tile):
 
 def process_cld_prob(param_s, tile):
     k = param_s.index('cloud_probability')
-    grd_k = tile[k,].copy()
+    grd_k = tile[k, ].copy()
     keep = np.invert(np.isnan(grd_k))
-    total = np.sum(keep)
-    if total == 0:
+    if keep / grd_k.size < 0.95:
         return None
-
-    grd_k = np.where(np.logical_and(keep, grd_k < 0.5), 0.0, 1.0)
+    grd_k = np.where(np.invert(keep), 0, grd_k)
+    grd_k = np.where(grd_k < 0.5, 0.0, 1.0)
     tile[k,] = grd_k
+
     return tile