I need to change the measuring interval ("resolution") of tracks in gpx files. The reason is that I want to try a QGIS plugin that requires a specific interval.

I took a look at gpsbabel but from what I can see it only allows simplification by setting max number of points. I need to set points per second.

Any suggestions on how to achieve this?


OziExplorer has an option for that purpose but you need to buy a license because the evaluation version does not allow to save the changes which are made to the tracks. The feature belongs to the Track control tools https://www.oziexplorer4.com/eng/help/track_control.html. This is a nice tool also if you have tracks as GPX files which are converted from GIS formats and trackpoints are missing timestamps.

Add Date/Time to Track Points - Adds the date and time to each track point. The start date and time can be entered and the time between each track point. This only works correctly if the track was collected at specified even intervals of time. Even if the track was collect at specified even intervals of time there is no guarantee that the GPS collected them at those precise intervals so there will be steps in the speed and distance calculations.


I've figured out a way to do it with the assumption that the velocity along the track was constant.

  1. Load your GPX into QGIS.
  2. export it, re-projecting into an appropriate, metric coordinate system so that you can express speed as m/s in the following equations. If the layer is points convert it into lines using the points to path algorithm.
  3. With the new metric layer use the QGIS processing algorithm 'densify by interval'.
  4. Calculate the average speed from the original track (total distance covered (m) / total time taken (s)) then calculate the distance interval for the speed (time interval * speed). Use this distance interval in the densify by interval algorithm.
  5. Convert the resulting vector to vertices using extract vertices.
  6. open the data table of the vertices layer. It should have a "distance" field that, on the assumption of constant velocity, can be converted to a time field see my attached screenshot.

QGIS velocity expression

to_datetime('2012-05-04 12:50:00') + to_interval(concat(("distance"/YOUR_VELOCITY), ' seconds'))

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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