# Are speeds in GPS data obtained by detection or calculation?

I have been doing a study into taxi behavior with its GPS data. I could calculate taxi's mileage by either longitudes and latitudes or times and speeds in the data. Since there are several errors in the data itself. I find it might be helpful to calculate mileages by these two ways and compare them. If huge differences occur, there might be some problem in data. But the effectiveness of this method is on the premise that speeds are not calculated by longitudes+latitudes and time stamps.

So, my question is whether the speeds are detected by some way or just calculated by longitudes, latitudes and time stamps.

Plus, are bearings obtained by in-car compass as someone put it?

The GPS receivers may not be getting valid data due to being in an urban canyon (surrounded by tall buildings that create multipath, or blocks the view of the satellite constellation enough to prevent the receiver from resolving its position).

You could also have faulty receivers, or interface parameters if they are recording data to a PC, or tablet of some sort.

Speed, or velocities are a different matter. In the testing that we have done, we have found the velocity calculated by the GPS software was approximately two miles per hour slower than that of a calibrated speedometer. Some of this can be attributed to the GPS measuring the distance between the points over a model of the earth, rather than speed over a given measured surface. There is also the latency factor with GPS measurements, and calculations. If your GPS update rate is 1 Hz. (One time per second) your velocity will only be calculated at that rate if a valid GPS position is collected for that time interval. In other words, if you have a position every second, you will get a calculated velocity between two consecutive points.

With latency, what you will see is the position collected will be behind you when you receive an update. The distance the position is behind will depend on how fast you are traveling, and how long it takes the computer to calculate where it is.

To simplify this, if you are traveling at 60 Miles Per Hour (88 feet per second), and your GPS unit updates once a second, and the latency of the system is 0.25 seconds, you will be 110 feet beyond the position displayed.

I have seen GPS velocities remain the same over several seconds, or even minutes when there were no valid GPS positions collected. This is more a function, or lack of function of the software being used.

I would first check to if the interface parameters are set correctly between the GPS units, then I would check to see if the GPS units are functioning properly in an area where there is a clear view of the sky in all directions.

You can also compare the number of satellites in view between the different units when they are in close proximity to one another to see if the GPS units are acquiring the same data, from the same number of satellites, and the positional quality (PDOP, HDOP, VDOP) are close to one another.

• Another possible problem is somebody faking the data. – Deer Hunter Mar 20 '16 at 17:22
• Faking data, while not difficult, would be pretty time consuming, and if there are multiple GPS units involved, collecting data at different times, the person, or persons involved in editing, or creating the data would have to be fairly organized. I still believe the best course of action would be to check the equipment, interface protocols, and see if there is an NMEA data stream being collected. (If the GPS units output NMEA data.) Properly formed NMEA data is fairly easy to understand with a little bit of studying. – jbgramm Mar 20 '16 at 22:26
• Yes, the road network data are nonlinearly transformed when I get them. And the transformation is irreversible. Fortunately, I got the functions thus I could transform the gps data to match the road network. – Guoyang Qin Mar 21 '16 at 14:25
• Thank you, jbgramm. I have learnt why and when gps fails to work from your answer. And your concrete example about speed delay proves speeds are obtained by gps. So from your point, from storage purpose, are speeds redundant in gps data since they can be completely calculated by lat-lons? Or they two are dependent though but complementary in navigation since their accuracies differ? – Guoyang Qin Mar 21 '16 at 14:44
• Abraham, The speeds are a function of time between measured points, but you have to understand that it is purely linear. If you drive through a circular curve with the first GPS reading taken at the point of curvature (Beginning of the curve), and the next GPS reading taken at the point of tangency (End of the curve), the speed will be calculated between those two points, the chord, or straight line distance, ignoring the total distance traveled over the ground. This will produce an erroneous speed. – jbgramm Mar 21 '16 at 17:51

You can calculate the velocity vector from the Doppler measurements the GPS obtains, but my experience with most consumer grade GPS is that they simply difference the most recent two positions, perhaps running them through a filter for stability. You'll notice that most GPS based speeds lag the cars actual speed by about a second.

• Thx Hayward. But for my dataset, I found some taxis' speeds remain absolutely ZERO all the day, but lat-lons differ time by time, which yields approx 1 km mileage the whole day. And two taxis' lat-lons turn suddenly from 120 to 0 for a few minutes but speeds look normal. So how to explain it? – Guoyang Qin Mar 19 '16 at 18:36
• This means your question has drifted from generic devices to specific (but unspecified) ones, whose correct functioning is unknown. Please either accept this answer or rewrite the question to focus on this specific issue. – Vince Mar 19 '16 at 19:18