wannesm / LeuvenMapMatching

Leuven.MapMatching toolbox for aligning GPS measurements to locations on a map.
Other
228 stars 44 forks source link

What does "non-emitting states" mean? #14

Open SpectorSong opened 3 years ago

SpectorSong commented 3 years ago

Hello! First of all, thank you for developing this model, it helps me a lot in my project. Now I have difficulty understanding "non-emitting states". The Annotation in newsonkrumm.py says: Newson and Krumm use shortest path to handle situations where the distances between observations are larger than distances between nodes in the graph. The LeuvenMapMatching toolbox uses non-emitting states to handle this. We thus do not implement the shortest path algorithm in this class. So what is the main difference between the two algorithm? I noticed that your model refers to the paper: Meert Wannes, Mathias Verbeke, "HMM with Non-Emitting States for Map Matching", European Conference on Data Analysis (ECDA), Paderborn, Germany, 2018. But I failed to find it on the internet. If you can help me on the question, or tell me where to find the paper, I'd be very grateful. Thanks for reading!

wannesm commented 3 years ago

Hi, we indeed only have an abstract available online. Put simply, a non-emitting state is a state that is not necessarily associated with an observation. Whereas a normal (emitting) state in an HMM is always associated with an observation.

In our setting an edge in the graph is a state. This means that if we have a road that consists out of 10 edges but only 2 GPS observation locations, we are not forced to map each edge to an observation. This would mean that the matching does not stop after two edges when it runs out of observations.

We have started working more actively on this toolbox again. A new version will soon be released (already available in branch feature/expand) and hope to finally write a longer description of the algorithm.