diff --git a/modules/deeplearning/cloud_opd_fcn_abi.py b/modules/deeplearning/cloud_opd_fcn_abi.py
index 9280e9b07e56a98ac4cbdd02ab35ef8f801a5f34..57182e52662de637821cb0e762226c8f5abe195a 100644
--- a/modules/deeplearning/cloud_opd_fcn_abi.py
+++ b/modules/deeplearning/cloud_opd_fcn_abi.py
@@ -57,10 +57,10 @@ mean_std_dct.update(mean_std_dct_l2)
 
 IMG_DEPTH = 1
 
-label_param = 'cloud_probability'
+label_param = 'cld_opd_dcomp'
 
-params = ['temp_11_0um_nom', 'refl_0_65um_nom', 'refl_submin_ch01', 'refl_submax_ch01', 'refl_substddev_ch01', label_param]
-params_i = ['temp_11_0um_nom', 'refl_0_65um_nom', label_param]
+params = ['temp_11_0um_nom', 'refl_0_65um_nom', 'refl_submin_ch01', 'refl_submax_ch01', 'refl_substddev_ch01', 'cloud_probability', label_param]
+params_i = ['temp_11_0um_nom', 'refl_0_65um_nom', 'cloud_probability', label_param]
 # data_params_half = ['temp_11_0um_nom']
 data_params_half = ['temp_11_0um_nom', 'refl_0_65um_nom']
 sub_fields = ['refl_submin_ch01', 'refl_submax_ch01', 'refl_substddev_ch01']
@@ -156,48 +156,25 @@ def get_min_max_std(grd_k):
     return lo, hi, std, avg
 
 
-def get_label_data_5cat(grd_k):
-    grd_k = np.where(np.isnan(grd_k), 0, grd_k)
-    grd_k = np.where(grd_k < 0.5, 0, 1)
-
-    s = grd_k[:, 0::4, 0::4] + grd_k[:, 1::4, 0::4] + grd_k[:, 2::4, 0::4] + grd_k[:, 3::4, 0::4] + \
-        grd_k[:, 0::4, 1::4] + grd_k[:, 1::4, 1::4] + grd_k[:, 2::4, 1::4] + grd_k[:, 3::4, 1::4] + \
-        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_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)
+def get_cldy_frac_opd(cld_prob, opd):
+    cld_prob = np.where(np.isnan(cld_prob), 0, cld_prob)
+    cld = np.where(cld_prob < 0.5, 0, 1)
+    opd[cld == 0] = 0.0
 
-    s[cat_0] = 0
-    s[cat_1] = 1
-    s[cat_2] = 2
-    s[cat_3] = 3
-    s[cat_4] = 4
+    s = cld[:, 0::4, 0::4] + cld[:, 1::4, 0::4] + cld[:, 2::4, 0::4] + cld[:, 3::4, 0::4] + \
+        cld[:, 0::4, 1::4] + cld[:, 1::4, 1::4] + cld[:, 2::4, 1::4] + cld[:, 3::4, 1::4] + \
+        cld[:, 0::4, 2::4] + cld[:, 1::4, 2::4] + cld[:, 2::4, 2::4] + cld[:, 3::4, 2::4] + \
+        cld[:, 0::4, 3::4] + cld[:, 1::4, 3::4] + cld[:, 2::4, 3::4] + cld[:, 3::4, 3::4]
 
-    return s
+    cldy_opd = np.sum([opd[:, 0::4, 0::4], opd[:, 1::4, 0::4], opd[:, 2::4, 0::4], opd[:, 3::4, 0::4],
+                       opd[:, 0::4, 1::4], opd[:, 1::4, 1::4], opd[:, 2::4, 1::4], opd[:, 3::4, 1::4],
+                       opd[:, 0::4, 2::4], opd[:, 1::4, 2::4], opd[:, 2::4, 2::4], opd[:, 3::4, 2::4],
+                       opd[:, 0::4, 3::4], opd[:, 1::4, 3::4], opd[:, 2::4, 3::4], opd[:, 3::4, 3::4]], axis=0)
 
+    s = np.where(s == 0, 1, s)
+    cldy_opd /= s
 
-def get_label_data(grd_k):
-    grd_k = np.where(np.isnan(grd_k), 0, grd_k)
-    grd_k = np.where(grd_k < 0.5, 0, 1)
-
-    s = grd_k[:, 0::4, 0::4] + grd_k[:, 1::4, 0::4] + grd_k[:, 2::4, 0::4] + grd_k[:, 3::4, 0::4] + \
-        grd_k[:, 0::4, 1::4] + grd_k[:, 1::4, 1::4] + grd_k[:, 2::4, 1::4] + grd_k[:, 3::4, 1::4] + \
-        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 < 3)
-    cat_1 = np.logical_and(s >= 3, s < 14)
-    cat_2 = np.logical_and(s >= 14, s <= 16)
-
-    s[cat_0] = 0
-    s[cat_1] = 1
-    s[cat_2] = 2
-
-    return s
+    return cldy_opd
 
 
 class SRCNN:
@@ -343,10 +320,7 @@ class SRCNN:
         # -----------------------------------------------------
         label = input_label[:, label_idx_i, :, :]
         label = label[:, y_64, x_64]
-        if NumClasses == 5:
-            label = get_label_data_5cat(label)
-        else:
-            label = get_label_data(label)
+        label = get_cldy_frac_opd(label)
 
         label = np.where(np.isnan(label), 0, label)
         label = np.expand_dims(label, axis=3)