diff --git a/modules/amv/intercompare.py b/modules/amv/intercompare.py index 6f7c4edd121819f6f470ea268eba1d594441e88f..8c1affa9a21df4f2d12796c6657f6ad3c586bca9 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)