Open Huzaifg opened 3 years ago
Currently I don't think it is possible. I also want to add a feature like that, but it requires to reformat the code... However I think you can tune these parameters to have a similar behavior: https://github.com/arthurdjn/noiseplanet/blob/master/noiseplanet/matcher/model/leuven.py#L106
Hope it helps !
Okay! Thanks. Yes I am trying to tune them now. However I am getting a new error
--------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-100-d927c3d75145> in <module>
1 try:
----> 2 track_coor, route_corr, edgeid, stats = matching.match(G, track, method='hmm')
3 except Exception as e:
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/noiseplanet/matcher/matching.py in match(graph, track, method)
62 elif method == 'hmm':
---> 63 track_corr, route_corr, edgeid, stats = model.match_leuven(graph, track)
64 return track_corr, route_corr, edgeid, stats
/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/noiseplanet/matcher/model/leuven.py in match_leuven(graph, track)
135 for i in range(len(track) - 1):
--> 136 if edgeid[i] != edgeid[i+1]:
137 route.append(track_corr[i])
IndexError: list index out of range
This is due to the match
function from Leuven returning empty states (checked the length of the states returned). Trying to figure out why this is happening. This is for the DistanceMatcher
with the default settings . When I use the NewsonKrummMatcher
I get a ValueError: math domain error
at lat2 = asin(sin(lat1) * cos(d) + cos(lat1) * sin(d) * cos(bearing))
which is wierd.
If you have any insights as to why the match
function returns empty states, please do let me know. There is also a similar issue raised on the leuven repo.
https://github.com/wannesm/LeuvenMapMatching/issues/15#issue-930321194
Best
Seems like I need to dive a little deeper in the code. I will try to figure it out this weekend, if I find any fixes I will update this thread !
matching.match(graph, track, method='hmm')
raises an exception when no matching node is found and stops the program. Can we skip the point is there is no matching node found in order to prevent the program from ending?
Hello! I am also facing this problem, Have you figured it out? Thanks!
matching.match(graph, track, method='hmm')
raises an exception when no matching node is found and stops the program. Can we skip the point is there is no matching node found in order to prevent the program from ending?Hello! I am also facing this problem, Have you figured it out? Thanks!
Hello! The only way I could solve this is by playing around with the parametrers (max_dist , max_dist_init etc) defined while generating a DistanceMatcher object
Okay! Thanks. Yes I am trying to tune them now. However I am getting a new error
-------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-100-d927c3d75145> in <module> 1 try: ----> 2 track_coor, route_corr, edgeid, stats = matching.match(G, track, method='hmm') 3 except Exception as e: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/noiseplanet/matcher/matching.py in match(graph, track, method) 62 elif method == 'hmm': ---> 63 track_corr, route_corr, edgeid, stats = model.match_leuven(graph, track) 64 return track_corr, route_corr, edgeid, stats /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/noiseplanet/matcher/model/leuven.py in match_leuven(graph, track) 135 for i in range(len(track) - 1): --> 136 if edgeid[i] != edgeid[i+1]: 137 route.append(track_corr[i]) IndexError: list index out of range
This is due to the
match
function from Leuven returning empty states (checked the length of the states returned). Trying to figure out why this is happening. This is for theDistanceMatcher
with the default settings . When I use theNewsonKrummMatcher
I get aValueError: math domain error
atlat2 = asin(sin(lat1) * cos(d) + cos(lat1) * sin(d) * cos(bearing))
which is wierd.If you have any insights as to why the
match
function returns empty states, please do let me know. There is also a similar issue raised on the leuven repo. wannesm/LeuvenMapMatching#15 (comment)Best
Hello, dear Huzaifg! The same problem happened to me. Have you progressed ? Thanks in advance!
Okay! Thanks. Yes I am trying to tune them now. However I am getting a new error
-------------------------------------------------------------------------- IndexError Traceback (most recent call last) <ipython-input-100-d927c3d75145> in <module> 1 try: ----> 2 track_coor, route_corr, edgeid, stats = matching.match(G, track, method='hmm') 3 except Exception as e: /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/noiseplanet/matcher/matching.py in match(graph, track, method) 62 elif method == 'hmm': ---> 63 track_corr, route_corr, edgeid, stats = model.match_leuven(graph, track) 64 return track_corr, route_corr, edgeid, stats /Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/noiseplanet/matcher/model/leuven.py in match_leuven(graph, track) 135 for i in range(len(track) - 1): --> 136 if edgeid[i] != edgeid[i+1]: 137 route.append(track_corr[i]) IndexError: list index out of range
This is due to the
match
function from Leuven returning empty states (checked the length of the states returned). Trying to figure out why this is happening. This is for theDistanceMatcher
with the default settings . When I use theNewsonKrummMatcher
I get aValueError: math domain error
atlat2 = asin(sin(lat1) * cos(d) + cos(lat1) * sin(d) * cos(bearing))
which is wierd. If you have any insights as to why thematch
function returns empty states, please do let me know. There is also a similar issue raised on the leuven repo. wannesm/LeuvenMapMatching#15 (comment) BestHello, dear Huzaifg! The same problem happened to me. Have you progressed ? Thanks in advance!
I found the same problem, have you solved it?
Hello,
This was very long ago and I work on different things now. Sorry, I will not be able to help you on this. Good luck!
Hello,
This was very long ago and I work on different things now. Sorry, I will not be able to help you on this. Good luck!
Thanks for your kind reply. I tried some other libs and it cloud work
matching.match(graph, track, method='hmm')
raises an exception when no matching node is found and stops the program. Can we skip the point is there is no matching node found in order to prevent the program from ending?