I have a time series of lat/lon data with timestamps. The data is in ~5 seconds intervals. There are no jumps in the data, so I don't need to smooth it.

However, points can be slightly off due to inaccuracy. And as I know that the true path follows smooth patterns (model aircraft), I want to interpolate the data to get a better representation. It was straightforward to build bezier splines where I assume my recordings as knots, but then the path doesn't follow those points as it's not really an interpolation.

I had a look at SciPy's interpolate functions. However, the 1D functions don't work with lat/lon data due to the patterns in the data (e.g. flying in a circle causes duplicate recordings). I tried the multivariate data with time on the X axis and Y,Z as lat/lon. But the function assumes that Z=f(X,Y) which is not really correct and thus leads to wrong results. In my case it'd rather be Y,Z=f(X). And I'm not sure if I want to include time at all at this stage as I'd then also make assumptions about speed patterns.

Are there any built-in functions that can handle the data? Or other packages that I could have a look at?

1 Answer 1


In a past project (trail mapping) we had to use a multi-step process to make a series of curves in separate processing steps.

First we break the (time-series) point set everywhere we had a "breaking" maneuver, e.g. circling back upon itself, stationary points in succession, "impossible" jumps in distance, etc.

Next we used a simple bicubic spline (can't recall which one, from scipy) on each segment to smooth the trace. Then we would reduce point density if desired using Ramer-Douglas-Peuker.

The last step is to reassemble all the segments together.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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