diff --git a/modules/icing/util.py b/modules/icing/util.py
index 98e9517b9ab50a714c75645a7d41593bce3f4dce..95c7724ade4b06e6e1f98d6b1e3a2c3b04f070e4 100644
--- a/modules/icing/util.py
+++ b/modules/icing/util.py
@@ -359,14 +359,14 @@ def prepare_evaluate1x1(h5f, name_list, satellite='GOES16', domain='FD', res_fac
     ll = [(offset+j_0) + j*s_y for j in range(n_y)]
     cc = [(offset+i_0) + i*s_x for i in range(n_x)]
 
-    grd_dct_n = {name: [] for name in name_list}
+    grd_s = []
 
     cnt_a = 0
     for ds_name in name_list:
         fill_value, fill_value_name = get_fill_attrs(ds_name)
         gvals = get_grid_values(h5f, ds_name, j_0, i_0, None, num_j=ylen, num_i=xlen, fill_value_name=fill_value_name, fill_value=fill_value)
         if gvals is not None:
-            grd_dct_n[ds_name] = gvals.flatten()
+            grd_s.append(gvals.flatten())
             cnt_a += 1
 
     if cnt_a > 0 and cnt_a != len(name_list):
@@ -379,7 +379,9 @@ def prepare_evaluate1x1(h5f, name_list, satellite='GOES16', domain='FD', res_fac
     satzen = satzen[0:n_y*s_y:s_y, 0:n_x*s_x:s_x]
     cldmsk = cldmsk[0:n_y*s_y:s_y, 0:n_x*s_x:s_x]
 
-    return grd_dct_n, solzen.flatten(), satzen.flatten(), cldmsk.flatten(), ll, cc
+    varX = np.stack(grd_s, axis=1)
+
+    return varX, solzen.flatten(), satzen.flatten(), cldmsk.flatten(), ll, cc
 
 
 flt_level_ranges_str = {k: None for k in range(6)}
@@ -1492,8 +1494,10 @@ def run_icing_predict_image_1x1(clvrx_dir='/Users/tomrink/data/clavrx/RadC/', ou
     #                                           use_flight_altitude=use_flight_altitude)
 
     # load parameter stats and model from disk
-    stdSclr = joblib.load('/home/rink/stdSclr_4.pkl')
-    model = joblib.load('/home/rink/icing_gbm.pkl')
+    stdSclr_day = joblib.load('/home/rink/stdSclr_4_day.pkl')
+    day_model = joblib.load('/home/rink/icing_gbm_day.pkl')
+    stdSclr_nght = joblib.load('/home/rink/stdSclr_4_nght.pkl')
+    nght_model = joblib.load('/home/rink/icing_gbm_nght.pkl')
 
     if use_flight_altitude is True:
         flight_levels = [0, 1, 2, 3, 4]
@@ -1518,7 +1522,8 @@ def run_icing_predict_image_1x1(clvrx_dir='/Users/tomrink/data/clavrx/RadC/', ou
     #     train_params = day_train_params
     # elif day_night == 'NIGHT':
     #     train_params = nght_train_params
-    train_params = ['cld_temp_acha', 'supercooled_cloud_fraction', 'cld_reff_dcomp', 'cld_opd_dcomp']
+    day_train_params = ['cld_temp_acha', 'supercooled_cloud_fraction', 'cld_reff_dcomp', 'cld_opd_dcomp']
+    nght_train_params = ['cld_temp_acha', 'supercooled_cloud_fraction', 'cld_reff_acha', 'cld_opd_acha']
 
     if satellite == 'H08':
         clvrx_ds = CLAVRx_H08(clvrx_dir)
@@ -1551,62 +1556,38 @@ def run_icing_predict_image_1x1(clvrx_dir='/Users/tomrink/data/clavrx/RadC/', ou
             keep_lons = None
             keep_lats = None
 
-        data_dct, solzen, satzen, cldmsk, ll, cc = prepare_evaluate1x1(h5f, name_list=train_params, satellite=satellite, domain=domain, offset=8)
+        varX_day, solzen, satzen, cldmsk, ll, cc = prepare_evaluate1x1(h5f, name_list=day_train_params, satellite=satellite, domain=domain, offset=8)
+        varX_ngth, solzen, satzen, cldmsk, ll, cc = prepare_evaluate1x1(h5f, name_list=nght_train_params, satellite=satellite, domain=domain, offset=8)
         num_elems = len(cc)
         num_lines = len(ll)
 
         day_idxs = solzen < 80.0
-        day_idxs = day_idxs.flatten()
         num_day_tiles = np.sum(day_idxs)
 
         nght_idxs = solzen > 100.0
-        nght_idxs = nght_idxs.flatten()
         num_nght_tiles = np.sum(nght_idxs)
 
-        # initialize output arrays
-        probs_2d_dct = {flvl: None for flvl in flight_levels}
-        preds_2d_dct = {flvl: None for flvl in flight_levels}
-        for flvl in flight_levels:
-            fd_preds = np.zeros(num_lines * num_elems, dtype=np.int8)
-            fd_preds[:] = -1
-            fd_probs = np.zeros(num_lines * num_elems, dtype=np.float32)
-            fd_probs[:] = -1.0
-            preds_2d_dct[flvl] = fd_preds
-            probs_2d_dct[flvl] = fd_probs
+        cldy_idxs = cldmsk >= 2
+        num_cldy_tiles = np.sum(cldy_idxs)
+
+        fd_preds = np.zeros(num_lines * num_elems, dtype=np.int8)
+        fd_probs = np.zeros(num_lines * num_elems, dtype=np.float32)
+        fd_preds[:] = -1
+        fd_probs[:] = -1.0
 
         if (day_night == 'AUTO' or day_night == 'DAY') and num_day_tiles > 0:
 
-            for flvl in flight_levels:
-                preds = preds_day_dct[flvl].flatten()
-                probs = probs_day_dct[flvl].flatten()
-                fd_preds = preds_2d_dct[flvl]
-                fd_probs = probs_2d_dct[flvl]
-                fd_preds[day_idxs] = preds[day_idxs]
-                fd_probs[day_idxs] = probs[day_idxs]
+            varX_std = stdSclr_day.transform(varX_day)
+            probs = day_model.predict_proba(varX_std)
+            fd_probs[:] = probs[day_idxs]
 
         if (day_night == 'AUTO' or day_night == 'NIGHT') and num_nght_tiles > 0:
 
-            for flvl in flight_levels:
-                preds = preds_nght_dct[flvl].flatten()
-                probs = probs_nght_dct[flvl].flatten()
-                fd_preds = preds_2d_dct[flvl]
-                fd_probs = probs_2d_dct[flvl]
-                fd_preds[nght_idxs] = preds[nght_idxs]
-                fd_probs[nght_idxs] = probs[nght_idxs]
+            varX_std = stdSclr_nght.transform(varX_ngth)
+            probs = nght_model.predict_proba(varX_std)
+            fd_probs[:] = probs[nght_idxs]
 
-        for flvl in flight_levels:
-            fd_preds = preds_2d_dct[flvl]
-            fd_probs = probs_2d_dct[flvl]
-            preds_2d_dct[flvl] = fd_preds.reshape((num_lines, num_elems))
-            probs_2d_dct[flvl] = fd_probs.reshape((num_lines, num_elems))
-
-        prob_s = []
-        for flvl in flight_levels:
-            probs = probs_2d_dct[flvl]
-            prob_s.append(probs)
-        prob_s = np.stack(prob_s, axis=-1)
-        max_prob = np.max(prob_s, axis=2)
-        max_prob = np.where(max_prob < 0.5, np.nan, max_prob)
+        max_prob = fd_probs.reshape((num_lines, num_elems))
 
         make_icing_image(h5f, max_prob, None, None, clvrx_str_time, satellite, domain,
                          ice_lons_vld=keep_lons, ice_lats_vld=keep_lats, extent=extent)