Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Getting vectors out of JPL Horizons

  1. Apr 17, 2009 #1
    Does anyone know how to manipulate the ephemeris data from JPL HORIZONS in order to find out the tangential velocity of a body relative to a topographic center, eg the Sun?
  2. jcsd
  3. Apr 17, 2009 #2

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    Use the vector output capability rather than observer (right ascenscion/declination) output. This will give you the position vector and velocity vector in ICRF coordinates of some body relative to some origin. Computing the component of the velocity vector normal to the position vector is vector simple arithmetic.
  4. Apr 17, 2009 #3
    Well it might be easy but I don't know.

    There is one way to get the tangential velocity directly by using the orbital period T, so that

    [tex]v_{tangent}=\frac{2 \pi r}{T}[/tex]

    but I'd like to work it out from the velocity vectors given.

    As far as I can tell, the JPL Horizons program produces coordinate axes in fixed directions rather than rotating with the orbiting body. It does produce a range rate (RR) parameter but I'd still like to know how to utilize the data WITHOUT referencing the radius from the origin, since that is what I'm trying to measure as accurately as I can.

    So if someone knows how to produce tangential velocity from the three velocity vectors + RR (or some other equivalent method) then I'm all ears.
  5. Apr 17, 2009 #4

    D H

    User Avatar
    Staff Emeritus
    Science Advisor

    The projection of any vector b onto some other vector a is

    [tex]{\boldsymbol b}_a =
    \frac{({\boldsymbol b}\cdot{\boldsymbol a})\, {\boldsymbol a}}
    {||{\boldsymbol a}||^2}[/tex]

    The component of b orthogonal to some another vector a is simply the difference between b and its projection onto a:

    [tex]{\boldsymbol b}_{\perp} =
    {\boldsymbol b} -
    \frac{({\boldsymbol b}\cdot{\boldsymbol a})\, {\boldsymbol a}}
    {||{\boldsymbol a}||^2}[/tex]

    Alternatively you can use the vector triple product:

    [tex]{\boldsymbol b}_{\perp} =
    \frac{{\boldsymbol a}\times({\boldsymbol b}\times{\boldsymbol a})}
    {||{\boldsymbol a}||^2}[/tex]
  6. Apr 18, 2009 #5
    The way I see it is like this:

    From the Horizons vector output, you have x-y-z position of Sun wrt object, so
    can get the radial vector. Normalize it to get the unit vector basis u1.

    The velocity vector is in the plane of motion. Normalize it to get v1, then
    compute the cross-product v1 x u1 to get 2nd basis vector out of the plane, u2.

    Then compute the cross product of the radial (in-plane) and out-of-plane
    basis vectors to get a third vector in the plane: u1 x u2 = u3

    u3 defines the tangential direction. Resolve the original velocity
    vector along it (dot product) to get the tangential component of velocity.

    Well that's fine but I need to work out from an example:

    Here is the data from one particular time for a spacecraft relative to the Sun:

    2453736.875000000, A.D. 2006-Jan-01 09:00:00.0000, -2.156346497896881E+07, 1.320794658183279E+08, -4.625147324320897E+05, -2.902293022684082E+01, -9.759936201814883E+00, -6.652160516632621E-02, 4.464052560742120E+02, 1.338289289826075E+08, -4.955740573003551E+00

    where the data is

    JDCT Epoch Julian Date, Coordinate Time
    X x-component of position vector (km)
    Y y-component of position vector (km)
    Z z-component of position vector (km)
    VX x-component of velocity vector (km/sec)
    VY y-component of velocity vector (km/sec)
    VZ z-component of velocity vector (km/sec)
    LT One-way down-leg Newtonian light-time (sec)
    RG Range; distance from coordinate center (km)
    RR Range-rate; radial velocity wrt coord. center (km/sec)

    in that order.

    Q1: How do I calculate u1, u2, u3?
    Q2: The radial velocity is RR, can we confirm that with a calculation?
  7. Apr 19, 2009 #6
    [tex]v=(v_x,v_y,v_z) = (-2.902293022684082E+01, -9.759936201814883E+00, -6.652160516632621E-02)[/tex]
    [tex]p=(x,y,z) = (-2.156346497896881E+07, 1.320794658183279E+08, -4.625147324320897E+05)[/tex]


    [tex] |p|= \sqrt{x^2+y^2+z^2} [/tex]

    therefore the unit radial vector is

    [tex]u_1 = \frac{p}{|p|} [/tex]

    To be continued...
  8. Apr 19, 2009 #7
    Therefore the radial velocity is

    [tex] v_{rad} = v \cdot u_1 [/tex]
  9. Apr 19, 2009 #8
    [tex]|p| = 1.33828928982607E+8[/tex]

    therefore [tex]u_1= \frac{1}{1.33828928982607E+8} (-2.156346497896881E+07, 1.320794658183279E+08, -4.625147324320897E+05)[/tex]
  10. Apr 19, 2009 #9
    I've just run through the vector algebra on MathCAD and got v_rad = -4.95574057300355 which is correct.

    And now to cross products...
  11. Apr 19, 2009 #10
    OK after squeezing my brain back into vector algebra, I calculated

    [tex]v_1= \frac{v}{|v|}[/tex]

    [tex]u_2 = v_1 \times u_1 [/tex]

    [tex]u_3 = u_1 \times u_2[/tex]

    Then [tex]v_{tangent}= v \cdot u_3[/tex] which I calculate to be 2.98180455442852 x 10^1 km/s

    If somebody could check this, I would be very grateful....
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook