6.11.  Epoch propagation #

6.11.1. 6-Parameter Epoch Propagation
6.11.2. Epoch Propagation of Positions Only

6.11.1. 6-Parameter Epoch Propagation #

double precision[6] epoch_prop(pos,  
 parallax,  
 pm_long,  
 pm_lat,  
 radial_velocity,  
 delta_t); 
spoint pos;
double precision parallax;
double precision pm_long;
double precision pm_lat;
double precision radial_velocity;
double precision delta_t;
 

Propagates a spherical phase vector in time (in particular, applies proper motion to positions)

Following both pg_sphere and, where missing, astronomical conventions makes units somewhat eclectic here; pm_long and pm_lat need to be in rad/yr, whereas parallax is in mas, and radial_velocity in km/s. The time difference must be in (Julian) years.

This function returns a 6-array of [long, lat, parallax, pm_long, pm_lat, radial_velocity] of the corresponding values delta_t years after the reference epoch for the original position. As in the function arguments, long and lat are in rad, pm_lon and pm_lat are in rad/yr, parallax is in mas, and radial_velocity is in km/s. If you are only interested in the position, consider the epoch_prop_pos functions below that have a somewhat less contorted signature.

It is an error to have either pos or delta_t NULL. For all other arguments, NULLs are turned into 0s, except for parallax, where some very small default is put in. In that case, both parallax and radial_velocity will be NULL in the output array.

This uses the rigorous method derived in "The Hipparcos and Tycho Catalogues", ESA Special Publication 1200 (1997), p 94f. It does not take into account relativistic effects, and it also does not account for secular aberration.

Example 6.25. Propagating Barnard's star into the past

SELECT
   to_char(DEGREES(tp[1]), '999D9999999999'),
   to_char(DEGREES(tp[2]), '999D9999999999'),
   to_char(tp[3], '999D999'),
   to_char(DEGREES(tp[4])*3.6e6, '999D999'),
   to_char(DEGREES(tp[5])*3.6e6, '99999D999'),
   to_char(tp[6], '999D999')
FROM (
  SELECT epoch_prop(
    spoint(radians(269.45207695), radians(4.693364966)), 546.9759,
    RADIANS(-801.551/3.6e6), RADIANS(10362/3.6e6), -110,
               -100) AS tp) AS q;
     to_char     |     to_char     | to_char  | to_char  |  to_char   | to_char
-----------------+-----------------+----------+----------+------------+----------
  269.4742714391 |    4.4072939987 |  543.624 | -791.442 |  10235.412 | -110.450
       

6.11.2. Epoch Propagation of Positions Only #

spoint epoch_prop_pos(pos,  
 parallax,  
 pm_long,  
 pm_lat,  
 radial_velocity,  
 delta_t); 
spoint pos;
double precision parallax;
double precision pm_long;
double precision pm_lat;
double precision radial_velocity;
double precision delta_t;
 
spoint epoch_prop_pos(pos,  
 pm_long,  
 pm_lat,  
 delta_t); 
spoint pos;
double precision pm_long;
double precision pm_lat;
double precision delta_t;
 

These are simplified versions of epoch_prop returning only spoints; the propagated values for the other coordinates are discarded (but still internallay computed; these functions do not run any faster than epoch_prop itself).

As with epoch_prop itself, missing values (except for pos and delta_t) are substituted by 0 (or a very small value in the case of parallax).

Example 6.26. Barnard's star, position and proper motion

SELECT epoch_prop_pos(
  spoint(radians(269.45207695), radians(4.693364966)),
  RADIANS(-801.551/3.6e6), RADIANS(10362/3.6e6),
  20) AS tp;
                   tp
-----------------------------------------
 (4.70274793061952 , 0.0829193989380876)