I have some GPS trajectories that include gps locations recorded on variable frequencies (every 1 min ,5 min , 20 min,etc.)using a geographic projection WGS84. In my work, i need a fine-grained GPS collection (e.g. 30 sec) to be able to recognize accurately users' activities grom their GPS traces.

I thought then to generate the missing GPS points between two known points (for instance, when the points frequency is every 5 minutes, i need to generate the 8 missing points that should be recorded the frequency was every 30 second). Note that i have to estimate the speed of the missing GPS points in my interpolation . Could you suggest some mathematical estimation or an existing tool that can answer my issue?

  • 2
    It's easy enough to interpolate along a line, but you need to worry about the map projection (where the line segment traverses between two points), and whether the track along that path is really sensible, let alone given what kind of behaviour you can expect from the trackee. It's a full-blown modelling problem and there is a massive literature base about it in several different fields. It depends on the context enormously. I think this question is too broad at the moment, you need to decide on specific tasks and give more information about what you're trying to do. – mdsumner Dec 9 '15 at 21:44
  • 1
    To be clear, are you looking to interpolate locations between known locations, or are you looking to uncover actual GPS data points that are somehow hidden? For the former, see some Related questions, including gis.stackexchange.com/questions/157693/… and gis.stackexchange.com/questions/79633/…, say. Also, are your coordinates geographic (lat, lon) or projected (X, Y)? Please edit the question. – Martin F Dec 9 '15 at 21:46
  • Thanks for your solution. But I met a problem when I want to interpolate points by time. It gives me the error: "Interpolate filter: Found no routes or tracks to operate on". Do you know what I can do to sovle it. By the way, I don't know if my input file content format is correct or not.Thank you a lot! My input file content format is like this: [![ ](i.stack.imgur.com/6Mt7y.png)](https://i.stack.imgur.com/… – qqzeng Jul 23 '18 at 13:22
  • If you have a new question, please ask it by clicking the Ask Question button. Include a link to this question if it helps provide context. - From Review – Vince Jul 23 '18 at 14:09

GPSBabel has a function for this. To take a GPX input file and interpolate points so that each is 30 seconds apart:

gpsbabel -i gpx -f INPUT.gpx -x interpolate,time=30 -o gpx -F OUTPUT.gpx


  • -i gpx: input file type is GPX
  • -f INPUT.gpx: filename is INPUT.gpx
  • -x interpolate,time=30: apply a filter (x), using interpolation, interpolating any points > 30s apart;
  • -o gpx: output type is GPX;
  • -F OUTPUT.gpx: output filename is OUTPUT.gpx

Where trackpoints are less than 30s apart, it will ignore that section; where > 30s, it will interpolate at 30s intervals.

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.