0

I have a number of coordinates. The coordinates are gathered from noisy gps-data. I need a way of discovering the path that the coordinates are describing. The data is gathered over a long time, so just drawing through all the points isn't a solution. Instead I need to find a curve that is in the center of the point cloud, without necessarily going through any of the points.

I also need to find the start and end points of the path, so just doing a linear regression isn't possible.

I've looked at the problem and figured out that this seems to be called a principal curve. This is a complex problem, but there are known algorithms to figure it out.

Writing the whole algorithm from scratch seems unnecessarily complicated to me, so I was wondering if there is some library that can do this?

Astrogat
  • 1,617
  • 12
  • 24
  • Just a thought, maybe if you have a time component for each coordinate then it would be much simpler to just sort them by time then draw the path from each point to the next one... – A4L Mar 14 '19 at 13:48
  • Possible duplicate of [Java curve fitting library](https://stackoverflow.com/questions/878200/java-curve-fitting-library) – Arthur Attout Mar 14 '19 at 13:50
  • The data is aggregated over a long time period, since I never get 100% accuracy from the gps. I also don't want to necessarily visit all points, since some of them are just noise. – Astrogat Mar 14 '19 at 13:51
  • Possibly duplicate of https://stackoverflow.com/questions/4480434/simplification-optimization-of-gps-track. You might also want to look at this github library https://github.com/hgoebl/simplify-java. – ditkin Mar 14 '19 at 13:52
  • Simplify (and the question) deals with removing points so simplify the track. Curve fitting deals with finding a line that goes through the points in a nice way. The problem here is finding a line that's not directly connected to the points, and instead goes through the center of the point cloud. – Astrogat Mar 14 '19 at 13:55

0 Answers0