From: Miguel on
I have GPS that gets recorded based on an encoder. For the sake of this post, let's say every 6 feet I have a new GPS point recorded. At the end of the day, I have taken 400 GPS points roughly about 6 feet apart from each other.

Now converting this data into a KML file is no problem (kmlwrite). However, I want to do more. I want to take this data, plot curved fit line to it, and then extract 1600 points equally spaced from that data to get a new data set.

At the end of the day, I want to interpolate a number of new equally spaced GPS coordinates between existing GPS coordinates.

Is this possible?

Thanks in advance.
From: Joseph on
try interp1


"Miguel " <msa619(a)gmail.com> wrote in message <i3fint$71g$1(a)fred.mathworks.com>...
> I have GPS that gets recorded based on an encoder. For the sake of this post, let's say every 6 feet I have a new GPS point recorded. At the end of the day, I have taken 400 GPS points roughly about 6 feet apart from each other.
>
> Now converting this data into a KML file is no problem (kmlwrite). However, I want to do more. I want to take this data, plot curved fit line to it, and then extract 1600 points equally spaced from that data to get a new data set.
>
> At the end of the day, I want to interpolate a number of new equally spaced GPS coordinates between existing GPS coordinates.
>
> Is this possible?
>
> Thanks in advance.
From: Walter Roberson on
Miguel wrote:
> I have GPS that gets recorded based on an encoder. For the sake of this
> post, let's say every 6 feet I have a new GPS point recorded. At the end
> of the day, I have taken 400 GPS points roughly about 6 feet apart from
> each other.
> Now converting this data into a KML file is no problem (kmlwrite).
> However, I want to do more. I want to take this data, plot curved fit
> line to it, and then extract 1600 points equally spaced from that data
> to get a new data set.
> At the end of the day, I want to interpolate a number of new equally
> spaced GPS coordinates between existing GPS coordinates.
>
> Is this possible?

Curved fit line... does this curve double back on itself or cross itself?

Taking GPS samples according to distance would be unusual, and would
imply that the sampling was done fairly rapidly but samples were
discarded if they were less than some distance away from the previous.
For example at 60 miles per hour there would have to be at least 15
samples per second.

When you say that you want the points equally spaced, is that equally
spaced in some ground coordinates, or equally spaced along the curve?

For example, if the GPS device were traveling in a circle of 3 feet
radius, as that would be 2*3.14159*3/6 = 3.14159 measurement points per
circuit, you would have the samples being taken at about 1/3 of the
circuit precessing backwards (because of the 0.14159 excess) and you
would want... what? That the interpolated path implied traveling in
triangles, or that the path implied traveling in a cubic spline fit to
the triangles, or that (given sufficient data) that it figured out that
a circle was involved ??
From: Miguel on
Walter Roberson <roberson(a)hushmail.com> wrote in message <02J6o.55465$4B7.12011(a)newsfe16.iad>...
> Miguel wrote:
> > I have GPS that gets recorded based on an encoder. For the sake of this
> > post, let's say every 6 feet I have a new GPS point recorded. At the end
> > of the day, I have taken 400 GPS points roughly about 6 feet apart from
> > each other.
> > Now converting this data into a KML file is no problem (kmlwrite).
> > However, I want to do more. I want to take this data, plot curved fit
> > line to it, and then extract 1600 points equally spaced from that data
> > to get a new data set.
> > At the end of the day, I want to interpolate a number of new equally
> > spaced GPS coordinates between existing GPS coordinates.
> >
> > Is this possible?
>
> Curved fit line... does this curve double back on itself or cross itself?
>
> Taking GPS samples according to distance would be unusual, and would
> imply that the sampling was done fairly rapidly but samples were
> discarded if they were less than some distance away from the previous.
> For example at 60 miles per hour there would have to be at least 15
> samples per second.
>
> When you say that you want the points equally spaced, is that equally
> spaced in some ground coordinates, or equally spaced along the curve?
>
> For example, if the GPS device were traveling in a circle of 3 feet
> radius, as that would be 2*3.14159*3/6 = 3.14159 measurement points per
> circuit, you would have the samples being taken at about 1/3 of the
> circuit precessing backwards (because of the 0.14159 excess) and you
> would want... what? That the interpolated path implied traveling in
> triangles, or that the path implied traveling in a cubic spline fit to
> the triangles, or that (given sufficient data) that it figured out that
> a circle was involved ??

______________________________________

Hi Walter,

Thanks for the reply.

We are taking GPS measurements based on distance. This is because the GPS is not the primary interest in our system. We are actually taking other data and recording GPS along with it so we can map our data to say Google Earth. Our GPS is a non-commercial GPS, and it's extremely accurate, as well as our encoder.

The problem is the GPS doesn't output the measurements fast enough (only 5 Hz). So what we do is keep track of how many data measurements are taken at each GPS coordinate, and I am now trying to interpolate all those points back into the trace at equal distances (as the encoder triggers at a set equal distance) so that we could have a better, albeit still not the best, GPS trace.

We do not double back on ourselves, nor have yet crossed paths. I don't anticipate us doing that.

Thanks again.
From: Miguel on
"Miguel " <msa619(a)gmail.com> wrote in message <i3ha1c$gen$1(a)fred.mathworks.com>...
> Walter Roberson <roberson(a)hushmail.com> wrote in message <02J6o.55465$4B7.12011(a)newsfe16.iad>...
> > Miguel wrote:
> > > I have GPS that gets recorded based on an encoder. For the sake of this
> > > post, let's say every 6 feet I have a new GPS point recorded. At the end
> > > of the day, I have taken 400 GPS points roughly about 6 feet apart from
> > > each other.
> > > Now converting this data into a KML file is no problem (kmlwrite).
> > > However, I want to do more. I want to take this data, plot curved fit
> > > line to it, and then extract 1600 points equally spaced from that data
> > > to get a new data set.
> > > At the end of the day, I want to interpolate a number of new equally
> > > spaced GPS coordinates between existing GPS coordinates.
> > >
> > > Is this possible?
> >
> > Curved fit line... does this curve double back on itself or cross itself?
> >
> > Taking GPS samples according to distance would be unusual, and would
> > imply that the sampling was done fairly rapidly but samples were
> > discarded if they were less than some distance away from the previous.
> > For example at 60 miles per hour there would have to be at least 15
> > samples per second.
> >
> > When you say that you want the points equally spaced, is that equally
> > spaced in some ground coordinates, or equally spaced along the curve?
> >
> > For example, if the GPS device were traveling in a circle of 3 feet
> > radius, as that would be 2*3.14159*3/6 = 3.14159 measurement points per
> > circuit, you would have the samples being taken at about 1/3 of the
> > circuit precessing backwards (because of the 0.14159 excess) and you
> > would want... what? That the interpolated path implied traveling in
> > triangles, or that the path implied traveling in a cubic spline fit to
> > the triangles, or that (given sufficient data) that it figured out that
> > a circle was involved ??
>
> ______________________________________
>
> Hi Walter,
>
> Thanks for the reply.
>
> We are taking GPS measurements based on distance. This is because the GPS is not the primary interest in our system. We are actually taking other data and recording GPS along with it so we can map our data to say Google Earth. Our GPS is a non-commercial GPS, and it's extremely accurate, as well as our encoder.
>
> The problem is the GPS doesn't output the measurements fast enough (only 5 Hz). So what we do is keep track of how many data measurements are taken at each GPS coordinate, and I am now trying to interpolate all those points back into the trace at equal distances (as the encoder triggers at a set equal distance) so that we could have a better, albeit still not the best, GPS trace.
>
> We do not double back on ourselves, nor have yet crossed paths. I don't anticipate us doing that.
>
> Thanks again.


_____________________________
Hi.

Thanks to all for the help. I think I figured the first step out. Since my GPS records in degrees and not in degrees-minutes, I think I can do a direct interp1 with this. Even if it did record in degrees-minutes, I could have converted that to just degrees and again used interp1.

Now with this however, I would like to extrapolate equidistant points from this curve, and it looks like I can only do extrapolate equidistant points along an axis. Is that correct?

Thanks again.