diff --git a/modules/icing/pirep_goes.py b/modules/icing/pirep_goes.py
index b3321185842e16d6ad0c926ff035b4d3ebadabd3..1b62287877d905604858e90ad7198067dc2b2774 100644
--- a/modules/icing/pirep_goes.py
+++ b/modules/icing/pirep_goes.py
@@ -624,6 +624,49 @@ def process(ice_dct, no_ice_dct, neg_ice_dct):
     return new_ice_dct, new_no_ice_dct, new_neg_ice_dct
 
 
+def process_boeing(ice_dct, no_ice_dct):
+    new_no_ice_dct = {}
+
+    print('num keys ice, no_ice: ', len(ice_dct), len(no_ice_dct))
+
+    no_ice_keys = []
+    no_ice_tidx = []
+    for ts in list(no_ice_dct.keys()):
+        rpts = no_ice_dct[ts]
+        for idx, tup in enumerate(rpts):
+            no_ice_keys.append(ts)
+            no_ice_tidx.append(idx)
+
+    # -----------------------------------------------------
+    no_ice_keys = np.array(no_ice_keys)
+    no_ice_tidx = np.array(no_ice_tidx)
+    print('no ice total: ', no_ice_keys.shape[0])
+    np.random.seed(42)
+    ridxs = np.random.permutation(np.arange(no_ice_keys.shape[0]))
+    no_ice_keys = no_ice_keys[ridxs]
+    no_ice_tidx = no_ice_tidx[ridxs]
+    no_ice_keys = no_ice_keys[::10]
+    no_ice_tidx = no_ice_tidx[::10]
+    print('no ice reduced: ', no_ice_keys.shape[0])
+
+    sidxs = np.argsort(no_ice_keys)
+    no_ice_keys = no_ice_keys[sidxs]
+    no_ice_tidx = no_ice_tidx[sidxs]
+
+    for idx, key in enumerate(no_ice_keys):
+        rpts = no_ice_dct[key]
+        tup = rpts[no_ice_tidx[idx]]
+
+        n_rpts = new_no_ice_dct.get(key)
+        if n_rpts is None:
+            n_rpts = []
+            new_no_ice_dct[key] = n_rpts
+        n_rpts.append(tup)
+    # -------------------------------------------------
+
+    return ice_dct, new_no_ice_dct
+
+
 def analyze2(filename, filename_l1b):
     f = h5py.File(filename, 'r')
     icing_alt = f['icing_altitude'][:]
@@ -1659,34 +1702,7 @@ def spatial_filter(icing_dict):
     return grd_bins, grd_bins_keys
 
 
-def spatial_filter2(icing_dict):
-    keys = icing_dict.keys()
-    grd_x_hi = lon_space.shape[0] - 1
-    grd_y_hi = lat_space.shape[0] - 1
-
-    grd_bins = np.full((lat_space.shape[0], lon_space.shape[0]), 0)
-    grd_bins_keys = [[[] for i in range(lon_space.shape[0])] for j in range(lat_space.shape[0])]
-
-    for key in keys:
-            tup = icing_dict.get(key)
-            lat = tup[0]
-            lon = tup[1]
-
-            lon_idx = np.searchsorted(lon_space, lon)
-            lat_idx = np.searchsorted(lat_space, lat)
-
-            if lon_idx < 0 or lon_idx > grd_x_hi:
-                continue
-            if lat_idx < 0 or lat_idx > grd_y_hi:
-                continue
-
-            grd_bins[lat_idx, lon_idx] += 1
-            grd_bins_keys[lat_idx][lon_idx].append(key)
-
-    return grd_bins, grd_bins_keys
-
-
-def process_boeing(boeing_dct, pirep_dct, threshold=3000):
+def remove_common(boeing_dct, pirep_dct, threshold=3000):
 
     boeing_times = list(boeing_dct.keys())
     pirep_times = np.array(list(pirep_dct.keys()))