diff --git a/pytrack/matching/mpmatching.py b/pytrack/matching/mpmatching.py index 9de529e..d306550 100644 --- a/pytrack/matching/mpmatching.py +++ b/pytrack/matching/mpmatching.py @@ -79,6 +79,8 @@ def viterbi_search(G, trellis, start="start", target="target", beta=mpmatching_u except Exception as error: print(error) - predecessor = mpmatching_utils.get_predecessor("target", predecessor) + # get_predecessor and viterbi_search should seperate. Decoupling! + + #predecessor = mpmatching_utils.get_predecessor("target", predecessor) return joint_prob[target], predecessor diff --git a/pytrack/matching/mpmatching_utils.py b/pytrack/matching/mpmatching_utils.py index 74e8abf..973899f 100644 --- a/pytrack/matching/mpmatching_utils.py +++ b/pytrack/matching/mpmatching_utils.py @@ -187,10 +187,22 @@ def get_predecessor(target, predecessor): pred_elab: dict Dictionary containing the predecessors of the best nodes of a decoded Trellis DAG. """ + + """ + 2023/02/03 + + the key "target" may not be in the predecessor + check if key in the predecessor or not before the "get" occurs + """ + pred_elab = {} + if target not in predecessor: + return {} pred = predecessor[target] while pred != "start": pred_elab[target.split("_")[0]] = pred target = pred + if target not in predecessor: + return {} pred = predecessor[target] return pred_elab