2

Given I have gps tracks from many users running or hiking, how can I find out who were running together? In other words, which algorithms are there to find out who were in the same party?

Haven't worked much with GIS so I might use the wrong terms. Matching GPS tracks is almost what I want but it doesn't considering time. My own algorithm would be something like: if two tracks are within 10 meters in distance for 50% of the time they are considered traveling together. Of course the actual tolerances might change. That is easy to code but if there are more general algorithms that calculates the total "distance" or correlation between to gps tracks I would like to use those.

  • 1
    There would be no algorithm. the receivers would likely have separate timestamps on each packet. The tracks may even have different start/end points depending on when the runner started their track. If the timestamps were within 2 mins of each other and with a few hundred feet of the same spot. you might decide for yourself they were running together. But if it is a race and someone is right next to me I wouldn't say they are running with me. This question seems too much opinion based and not really geared for this site. – Brad Nesom Dec 31 '14 at 22:52
  • 1
    Maybe it would help if you can come up with an objective definition of "running together" and "in the same party" we might be able to help. – BradHards Dec 31 '14 at 23:05
  • 1
    I'll try to explain a bit more. Haven't worked much with GIS so I might use the wrong terms. Question 81551 is almost what I want but it doesn't considering time. My own algorithm would be something like: if two tracks are within 10 meters in distance for 50% of the time they are considered travelling together. Of course the actual tolerances might change. That is easy to code but if there are more general algorithms that calculates the total "distance" or correlation between to gps tracks I would like to use those. – Dala Jan 1 '15 at 9:04
  • 1
    @Brad Question 81551 differs in that it does not exploit the time stamps. This is more than "different dimensionality:" it is a fundamental difference that can be exploited to answer the present question. There exist much better methods than simply confounding time with distance as suggested by the current answer here. – whuber Jan 3 '15 at 17:02
1

As mentioned by @mdsummer, there is a very good answer to a similar question here

If you also need some tolerance on the time in your case, you can modify the distance calculation. Instead of a 2D euclidian distance, use a third dimension for the time. You then compute the distance in a new space that would help you identify "together runners". In order to easily handle the time variable, I would convert it into meters before running the distance calculation: convert your date to a number of second since 2000 (for example) and divide it by the runner speed. This speed could be a typical running speed (depending on the runners category), or it could be derived from your GPS track.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.