How to Calculate ‘Off Track’ Error from GPS Data in QGIS

gpsmovement-dataqgis

I'd like to analyse navigational accuracy, comparing planned transects with the actual track flown from GPS data.

For example, the planned transects below (green) don't match perfectly with the actual flown (blue) – for the areas adjacent to the transects, what is the average error (distance), IGNORING the bits beyond the ends of each transect?

enter image description here

The planned transects are lines, typically only with start and end nodes. The tracks are from GPX files and may be made of many, many nodes – but may only have a few nodes recorded when the aircraft is flying particularly straight.

I'd like to use QGIS. One thought was to use the v.to.points tool from GRASS in the Processing toolbox to split each transect into points of, say, 50m spacing, and determine the nearest distance to the track for each point (then average them).

Is there, perhaps, a better way of calculating average distance than splitting the lines into individual points?

Best Answer

From the above example, I suggest that you

  1. Create points along the green lines at a regular interval
  2. Get the perpendicular distance from those points to the blue line and, finally,
  3. Compute the average error based on those distances.

Note that you could reject points that are too far (above a given tolerance for GPS worst precision) due to the absence of blue line in front of a green line (this does not happen on your drawing, but it could be an issue).

For the first and the second step, there are two excellent answers (both by gene) here for step 1 and here for step 2. The last step shouldn't be a problem for you (using postgis, or group stats plugin, or python...).

Alternatively, you can draw the perpendicular line for each end point of the green line. Then you build an area from you set of lines (e.g. with GRASS), then you divide your area by the length of the green lines => this gives you the average absolute error.

Related Question