diff --git a/modules/util/viirs_l1b_l2.py b/modules/util/viirs_l1b_l2.py
index fac91e95c2fc51059b35708f853940b67533ea6c..78fa3d18478e9d8e850fbebce284d1856888f264 100644
--- a/modules/util/viirs_l1b_l2.py
+++ b/modules/util/viirs_l1b_l2.py
@@ -53,14 +53,15 @@ emis_params = ['temp_10_4um_nom', 'temp_11_0um_nom', 'temp_12_0um_nom', 'temp_13
 
 # l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'cloud_fraction']
 # l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cld_opd_dcomp']
-# l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_probability']
-l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_fraction']
+l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_probability']
+# l2_params = ['temp_11_0um_nom', 'temp_12_0um_nom', 'refl_0_65um_nom', 'cloud_fraction']
 
 label_params = l2_params
 data_params = l2_params
 
 
 def keep_tile(param_s, tile):
+    pass
     k = param_s.index('cloud_fraction')
     grd_k = tile[k, ].flatten()
     keep = np.invert(np.isnan(grd_k))
@@ -76,6 +77,19 @@ def keep_tile(param_s, tile):
         return False
 
 
+def process_cld_prob(param_s, tile):
+    k = param_s.index('cloud_probability')
+    grd_k = tile[k, ].flatten().copy()
+    keep = np.invert(np.isnan(grd_k))
+    total = np.sum(keep)
+    if total == 0:
+        return None
+
+    grd_k = np.where(np.logical_and(keep, grd_k < 0.5), 0.0, 1.0)
+    tile[k,] = grd_k
+    return tile
+
+
 def run_all(directory, out_directory, day_night='ANY'):
 
     cnt = 10
@@ -244,7 +258,10 @@ def run(data_h5f, param_s, train_tiles, valid_tiles, num_keep_x_tiles=8, tile_wi
             nda = data[:, j_a:j_b, i_a:i_b]
             if not keep_tile(param_s, nda):
                 continue
-            valid_tiles.append(nda)
+
+            nda = process_cld_prob(param_s, nda)
+            if nda is not None:
+                valid_tiles.append(nda)
 
 
 def scan(directory):