Package stistools :: Module radialvel
[hide private]
[frames] | no frames]

Module radialvel

source code

Functions [hide private]
float
radialVel(ra_targ, dec_targ, mjd)
Compute the heliocentric velocity of the Earth.
source code
 
earthVel(mjd)
Compute and return the velocity of the Earth at the specified time.
source code
 
precess(mjd, target)
Precess target coordinates from J2000 to the date mjd.
source code
Variables [hide private]
  DEG_RAD = 0.0174532925199
  ARCSEC_RAD = 4.8481368111e-06
  REFDATE = 51544.5
  KM_AU = 149597870.0
  SEC_DAY = 86400.0
  __package__ = 'stistools'

Imports: N


Function Details [hide private]

radialVel(ra_targ, dec_targ, mjd)

source code 

Compute the heliocentric velocity of the Earth.

This function computes the radial velocity of a target based on the Earth's orbital velocity around the Sun. The space motion of the target is not taken into account. That is, the radial velocity is just the negative of the component of the Earth's orbital velocity in the direction toward the target.

Parameters:
  • ra_targ (float) - right ascension of the target (degrees)
  • dec_targ (float) - declination of the target (degrees)
  • mjd (float) - Modified Julian Date at the time of observation
Returns: float
the radial velocity in km/s

earthVel(mjd)

source code 
Compute and return the velocity of the Earth at the specified time.

This function computes the Earth's orbital velocity around the Sun
in celestial rectangular coordinates.  The expressions are from the
Astronomical Almanac, p C24, which gives low precision formulas for
the Sun's coordinates.  We'll apply these formulas directly to get
the velocity of the Sun relative to the Earth, then we'll convert to
km per sec and change the sign to get the velocity of the Earth.

We get the velocity of the Sun relative to the Earth as follows:

The velocity in the ecliptic plane with the X-axis aligned with the
radius vector is:

  Vx = radius_dot,
  Vy = radius * elong_dot,
  Vz = 0

  radius is the radial distance from Earth to Sun
  elong is the ecliptic longitude of the Sun
  eps is the obliquity of the ecliptic
  _dot means the time derivative

Rotate in the XY-plane by elong to get the velocity in ecliptic
coordinates:

  radius_dot * cos (elong) - radius * elong_dot * sin (elong)
  radius_dot * sin (elong) + radius * elong_dot * cos (elong)
  0

Rotate in the YZ-plane by eps to get the velocity in equatorial
coordinates:

   radius_dot * cos (elong) - radius * elong_dot * sin (elong)
  (radius_dot * sin (elong) + radius * elong_dot * cos (elong)) * cos (eps)
  (radius_dot * sin (elong) + radius * elong_dot * cos (elong)) * sin (eps)

@param mjd:  time, Modified Julian Date
@type mjd:  float

@return:  the velocity vector of the Earth around the Sun, in
    celestial coordinates
@rtype:  array object of type float64 and shape (3,)

precess(mjd, target)

source code 
Precess target coordinates from J2000 to the date mjd.

target can be a single vector, e.g. [x0, y0, z0], or it can be
a 2-D array; in the latter case, the shape should be (n,3):

    target = [[x0, x1, x2, x3, x4],
              [y0, y1, y2, y3, y4],
              [z0, z1, z2, z3, z4]]

References:
     IAU 1976:  Lieske, et al. 1976, Astron & Astrophys vol 58, p 1.;
                J.H. Lieske, 1979, Astron & Astrophys vol 73, 282-284.

@param mjd:  time, Modified Julian Date
@type mjd:  float

@param target:  unit vector pointing toward the target, J2000 coordinates
@type target:  list, tuple, or array object

@return:  the target vector (or matrix) precessed to mjd
@rtype:  array object of type float64 and the same shape as target,
    i.e. either (3,) or (n,3)