I'm attempting to simulate a GPS message where know variables are starting location, ending location, speed (m/s), and a bearing (0 - 359 degrees). How can I calculate the ECEF X, Y, Z velocities with this information when I am not tracking any satellites.

  • Don't you also need a time variable?
    – blah238
    Mar 12, 2012 at 21:44
  • 2
    Usually this is done by subtracting the start from the stop point (as [X,Y,Z] vectors) and dividing by the time elapsed to obtain the velocity. Is there something special about your data that would make it any more complicated than that? (E.g., maybe the travel was not in a Euclidean straight line, but along a spherical geodesic.)
    – whuber
    Mar 12, 2012 at 21:44
  • I'm attempting to calculate the XYZ velocity and give that data to another system. That system somehow is able to display its bearing and speed (km/hr) from my calculated data. I know what the speed and bearing is suppose to be, but the remote system displays otherwise, so I'm trying to make sure that I'm calculating correctly or if the remote system is processing it incorrectly.
    – Shar1er80
    Mar 12, 2012 at 22:04
  • 1
    Because you provide two locations, at which one do you wish to compute the velocities? Also, in what coordinate system is the bearing given? (If it's based on a projected system, a correction to a true bearing may be needed.)
    – whuber
    Mar 14, 2012 at 17:12
  • 1
    Numbers would help Mar 14, 2012 at 23:20

1 Answer 1


Assume that the motion is on the surface of the earth.

You have too much information. Given Position 1 and position 2 and the knowledge that you are following a great circle, you can calculate the bearing and distance using the formulas given in the Aviation Formulary

You were given you the speed in meters/second. You can calculate the XYZ for the two points. Use the delta x, delta y, and delta z, and the time to move from point a to point b to calculate the velocity components.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

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