# GPS distortion correction and coordinate adjustment

I was making a survey test and moving with a boat that was equipped with two different GPS systems. The position was recorded every 0.5 m. When I was evaluating the data I saw that from time to time the receiver jumped from one system to another and they had a slight (and sometimes not so slight) offset. Now I'm trying to find a good way to repair such areas. My approach was to draw a line of assumed movement and then snap the coordinate points to this line. This works.

Now, the problem emerges at more extreme jump areas (see image) where the position jumps not only laterally, but also back along the track. In such areas, when the points snap to the track, the points with an earlier timestamp are mingled in-between those from further in time (orange circle). This is of course a problem. I need either to sort them properly (id/timestamp) or delete some of them. And this problem occurs dozens and hundreds of times, so I'm working on a model for a semi-automatic solution.

Im working in QGIS, so I tried to use the "Points Filter" algorithm, trying to tell the points to look around and delete the maxima. However this does not work for me. Either all points are still in place or all of them are gone.

I was considering an expression approach, however, my knowledge of the expression language is still too limited to make such query.

Any ideas?

• How straight is the track going to be, and for how long? Can you also describe what logic you are using to decide what the ‘true’ track (“... line of assumed movement”) is? Commented Aug 12, 2021 at 8:34
• I think the approach should be to assume you are on track (if moving) and ignore large shifts altogether. Commented Jan 20, 2023 at 6:29

.5 meters seems like it's generating excessive data and possibly exceeds the precision/accuracy of the receiver.

Jumps like you are indicating could result from changes in satellite geometry and are something I would expect with anything other than survey grade accuracy.

An example of what could happen is that you have 6 satellites locked for your position calculation and one of the satellites drops below your elevation mask which could cause you to have poorer satellite geometry resulting in an increase in PDOP which could lead to exactly what you are describing.

There could also be complications with WAAS/SBAS but without knowing the receiver specs and the survey location it's hard to speculate.

I would recommend a point capture spacing 3-4 times the expected accuracy of the GPS receiver which should lead to some generalization and smoother lines, but in the realm of mapping grade GPS, should be just as sound of a measurement.

Unless you are utilizing survey grade equipment because that would introduce several other variables that could be causing the offset.

• What you are describing is absolutely right. We use primarily RTKFix and sometimes, when the satellite positions are suboptimal it starts jumping to SBAS and back to RTKFix. Unfortunately I cannot reduce the density of records. My task is to build a tool that would be doing QC in QGIS and repair such areas. Since we evaluate the NMEA strings and extract GPS data and complementary information in the PostGIS already - I can easily identify such areas via increased "climb" attribute. So the real problem remain the points in the areas where the jumps put the position backwards. Any ideas? Commented Aug 2, 2021 at 8:05
• Maybe something with creating a generalized line with a moving average of the northing and a moving average of the easting; and then using a "near" calculation to get the distances off the generalized line and then use those numbers with the actual northing and easting to move the points back to the generalized line? It's not very elegant and I don't know how it would work in practice since the "off path" portions appear to be comprised of highly variable numbers of points. Commented Aug 2, 2021 at 13:41