From 866cf7db8413af8f4067653e5443bfd6db7f704f Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Mon, 24 May 2021 15:27:21 -0500
Subject: [PATCH] try to eliminate adjacent duplicate pilot reports

---
 modules/icing/pirep_goes.py | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/modules/icing/pirep_goes.py b/modules/icing/pirep_goes.py
index acf468f7..7d01553f 100644
--- a/modules/icing/pirep_goes.py
+++ b/modules/icing/pirep_goes.py
@@ -227,26 +227,33 @@ def run(pirep_dct, outfile=None, outfile_l1b=None, dt_str_start=None, dt_str_end
         else:
             h5f = last_h5f
 
+        cc = ll = -1
         reports = pirep_dct[time]
         for tup in reports:
             lat, lon, fl, I, uid, rpt_str = tup
             lat_s[0] = lat
             lon_s[0] = lon
 
-            cc, ll = nav.earth_to_lc_s(lon_s, lat_s)
-            if cc[0] < 0:
+            cc_a, ll_a = nav.earth_to_lc_s(lon_s, lat_s)  # non-navigable, skip
+            if cc_a[0] < 0:
                 continue
 
+            if cc_a[0] == cc and ll_a[0] == ll:  # time adjacent duplicate, skip
+                continue
+            else:
+                cc = cc_a[0]
+                ll = ll_a[0]
+
             cnt_a = 0
             for didx, ds_name in enumerate(ds_list):
-                gvals = get_grid_values(h5f, ds_name, ll[0], cc[0], 20)
+                gvals = get_grid_values(h5f, ds_name, ll_a[0], cc_a[0], 20)
                 if gvals is not None:
                     ds_grd_dct[ds_name].append(gvals)
                     cnt_a += 1
 
             cnt_b = 0
             for didx, ds_name in enumerate(l1b_ds_list):
-                gvals = get_grid_values(h5f, ds_name, ll[0], cc[0], 20)
+                gvals = get_grid_values(h5f, ds_name, ll_a[0], cc_a[0], 20)
                 if gvals is not None:
                     l1b_grd_dct[ds_name].append(gvals)
                     cnt_b += 1
-- 
GitLab