diff --git a/modules/util/acspo_validate.py b/modules/util/acspo_validate.py index 92f93dae000f393ef6bd1ec8605d5275069aeed1..ce87039566564c8a2825a3ef1db01089d52c04af 100644 --- a/modules/util/acspo_validate.py +++ b/modules/util/acspo_validate.py @@ -65,22 +65,33 @@ def acspo_validate(oper_file, cspp_file, rel_tol=0.001, outfile_nc=None): start_idx_cspp, stop_idx_cspp = -1, -1 # Average latitude spacing: 0.00652 deg + thresh = 0.0002 # deg for k in range(len(cntr_lat_oper)): - c_a = np.isclose(cntr_lat_oper[k], cntr_lat_cspp) - if np.sum(c_a) == 1: - if start_idx_oper == -1: - start_idx_oper = k - start_idx_cspp = np.nonzero(c_a)[0][0] - break - - for k in range(len(cntr_lat_oper)-1, 0, -1): - c_a = np.isclose(cntr_lat_oper[k], cntr_lat_cspp) - if np.sum(c_a) == 1: - if stop_idx_oper == -1: - stop_idx_oper = k - stop_idx_cspp = np.nonzero(c_a)[0][0] - break + diff = np.abs(cntr_lat_oper[k] - cntr_lat_cspp) + idx_a = np.where(diff < thresh)[0] + if len(idx_a) == 0: + continue + elif len(idx_a) == 1: + start_idx_oper = k + start_idx_cspp = idx_a[0] + break + else: + print("weirdness") + break + + if start_idx_oper < 0: + print("no overlap found") + + num_oper_remain = (oper_track_len - 1) - start_idx_oper + num_cspp_remain = (cspp_track_len - 1) - start_idx_cspp + + if num_oper_remain <= num_cspp_remain: + stop_idx_oper = start_idx_oper + num_oper_remain + stop_idx_cspp = start_idx_cspp + num_oper_remain + else: + stop_idx_oper = start_idx_oper + num_cspp_remain + stop_idx_cspp = start_idx_cspp + num_cspp_remain print('oper start, stop ', start_idx_oper, stop_idx_oper) print('cspp start, stop ', start_idx_cspp, stop_idx_cspp)