-
Notifications
You must be signed in to change notification settings - Fork 83
Description
I'm looking for guidelines for getting consistent results.
I started off with a data set of around 250k GPS points. I got great results, but as I add more points I am seeing inconsistency. For instance, initially it took around 20 seconds to run, but after adding points, suddenly it dropped to around 2 seconds despite there being more points! It also seems to sometimes improperly gap across points on the map instead of following the concave shape, even in areas nowhere near where new points were added.
I thought to fix this problem by taking the resulting set of points from a good run with concaveman and then adding the new points and rerunning the algorithm. This worked fine the first time, but the second time it seems to have become intractible, running over 20 minutes before I interrupted the process, with only 26.3k points in the input, of which 21.6k were from the previously found results.
I'm mostly using the default concavity of 2, except occasionally I have pushed it as low as 1.3 when I find the output has weird jumps where it shouldn't. There seems to be some kind of threshold where as I lower the number it takes about the same amount of time and then suddenly it becomes intractible again. In the latest case, I found that if concavity was 2.4491023 or above, it would consistently take between 2.0 and 2.2s to complete, but at 2.4491022 and below it would never seem to finish. Upping the length threshold has no effect. However, the results in this case are unacceptable as there are several cases where I see what appear to be lines drawn between distance points on the perimeter, as well as spots where the results aren't concave enough.
Are there any guidelines as to how I can get better results? Should I sort the points by some criteria? Am I expected to sort the output (could this be why I sometimes see lines between distance points when I plot the coordinates on a map)? Is there a limit on how many points I should try to pass? Should I format the numbers differently, e.g. could GPS coordinates with 8 or nine digits after the decimal place run into precision issues or something?