6.11. Epoch propagation
Prev | Up | Chapter 6. Functions | Home | Next

## 6.11. Epoch propagation #

### 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)

Prev | Up | Next
6.10. `smoc` functions | Home | Chapter 7. Indexes