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.23. 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
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.24. 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)