From b24927f7c32b9b30c7f51c50d834a9d345d7c7cf Mon Sep 17 00:00:00 2001
From: tomrink <rink@ssec.wisc.edu>
Date: Thu, 18 Feb 2021 16:41:25 -0600
Subject: [PATCH] snapshot...

---
 modules/amv/intercompare.py | 17 ++++++++++++-----
 1 file changed, 12 insertions(+), 5 deletions(-)

diff --git a/modules/amv/intercompare.py b/modules/amv/intercompare.py
index 6f7c4edd..8c1affa9 100644
--- a/modules/amv/intercompare.py
+++ b/modules/amv/intercompare.py
@@ -475,14 +475,19 @@ def get_raob_neighbors(lats, lons, raob_dct, dist_threshold=150):
         alon = lons[j]
 
         dist = haversine_np(rlons, rlats, alon, alat)
-
         ridxs = (np.nonzero(dist < dist_threshold))[0]
 
         if ridxs.shape[0] != 0:
+            # sort by distance
+            dist = dist[ridxs]
+            sidxs = np.argsort(dist)
+            dist = dist[sidxs]
+            ridxs = ridxs[sidxs]
+
             nbor_keys = []
             for i in range(ridxs.shape[0]):
                 nbor_keys.append(keys[ridxs[i]])
-            nbor_dct[j] = (nbor_keys, dist[ridxs])
+            nbor_dct[j] = (nbor_keys, dist)
         else:
             nbor_dct[j] = None
 
@@ -544,9 +549,9 @@ def amv_raob_diff(amv_lat, amv_lon, amv_spd, amv_dir, amv_press, raob_dct):
         tup = raob_nbor_dct[j]
         if tup is not None:
             nbor_keys = tup[0]
-            nbor_dsts = tup[1]
+            # nbor_dsts = tup[1] future use maybe
 
-            for ll_tup in nbor_keys:
+            for ll_tup in nbor_keys:  # using only closest (see break below)
                 raob = raob_dct.get(ll_tup)
 
                 pdiff = amv_press[j] - raob[:, raob_pres_idx]
@@ -577,6 +582,8 @@ def amv_raob_diff(amv_lat, amv_lon, amv_spd, amv_dir, amv_press, raob_dct):
                 v_diffs.append(vdiff)
                 prs_diffs.append(pdiff[lev_idx])
 
+                break  # Use first (closest) raob only
+
     num = len(u_diffs)
     dir_diffs = np.array(dir_diffs)
     spd_diffs = np.array(spd_diffs)
@@ -627,7 +634,7 @@ def run_best_fit(amvs, raob_dct, dist_threshold=200, min_num_levs=20):
             s_i = np.argsort(nbor_dsts).tolist()
 
             for k in range(len(nbor_keys)):
-                dist = nbor_dsts[s_i[k]]
+                # dist = nbor_dsts[s_i[k]]
                 ll_tup = nbor_keys[s_i[k]]
                 raob = raob_dct.get(ll_tup)
 
-- 
GitLab