|
639 | 639 | </example>
|
640 | 640 |
|
641 | 641 | </sect2>
|
642 |
| - |
| 642 | + |
| 643 | + <sect2 id="funcs.epochprop"> |
| 644 | + <title> |
| 645 | + Epoch propagation |
| 646 | + </title> |
| 647 | + |
| 648 | + <sect3 id="funcs.epochprop.full"> |
| 649 | + <title>6-Parameter Epoch Propagation</title> |
| 650 | + <funcsynopsis> |
| 651 | + <funcprototype> |
| 652 | + <funcdef><type>double precision[6]</type> |
| 653 | + <function>epoch_prop</function></funcdef> |
| 654 | + <paramdef>spoint <parameter>pos</parameter></paramdef> |
| 655 | + <paramdef>double precision <parameter>parallax</parameter></paramdef> |
| 656 | + <paramdef>double precision <parameter>pm_long</parameter></paramdef> |
| 657 | + <paramdef>double precision <parameter>pm_lat</parameter></paramdef> |
| 658 | + <paramdef>double precision <parameter>radial_velocity</parameter></paramdef> |
| 659 | + <paramdef>double precision <parameter>delta_t</parameter></paramdef> |
| 660 | + </funcprototype> |
| 661 | + </funcsynopsis> |
| 662 | + <para> |
| 663 | + Propagates a spherical phase vector in time (in particular, |
| 664 | + applies proper motion to positions) |
| 665 | + </para> |
| 666 | + <para> |
| 667 | + Following both pg_sphere and, where missing, astronomical |
| 668 | + conventions makes units somewhat eclectic here; pm_long and pm_lat |
| 669 | + need to be in rad/yr, whereas parallax is in mas, and |
| 670 | + radial_velocity in km/s. The time difference must be in |
| 671 | + (Julian) years. |
| 672 | + </para> |
| 673 | + |
| 674 | + <para> |
| 675 | + This function returns a 6-array of [long, lat, parallax, |
| 676 | + pm_long, pm_lat, radial_velocity] of the corresponding values |
| 677 | + delta_t years after the reference epoch for the original position. |
| 678 | + As in the function arguments, long and lat are in rad, pm_lon and |
| 679 | + pm_lat are in rad/yr, parallax is in mas, and radial_velocity is |
| 680 | + in km/s. If you are only interested in the position, consider |
| 681 | + the epoch_prop_pos functions below that have a somewhat less |
| 682 | + contorted signature. |
| 683 | + </para> |
| 684 | + |
| 685 | + <para> |
| 686 | + It is an error to have either pos or delta_t NULL. For all |
| 687 | + other arguments, NULLs are turned into 0s, except for parallax, |
| 688 | + where some very small default is put in. In that case, |
| 689 | + both parallax and radial_velocity will be NULL in the output |
| 690 | + array. |
| 691 | + </para> |
| 692 | + |
| 693 | + <para> |
| 694 | + This uses the rigorous method derived in "The Hipparcos and Tycho |
| 695 | + Catalogues", ESA Special Publication 1200 (1997), p 94f. It does |
| 696 | + not take into account relativistic effects, and it also does not |
| 697 | + account for secular aberration. |
| 698 | + </para> |
| 699 | + <example> |
| 700 | + <title>Propagating Barnard's star into the past</title> |
| 701 | + <programlisting><![CDATA[ |
| 702 | +SELECT |
| 703 | + to_char(DEGREES(tp[1]), '999D9999999999'), |
| 704 | + to_char(DEGREES(tp[2]), '999D9999999999'), |
| 705 | + to_char(tp[3], '999D999'), |
| 706 | + to_char(DEGREES(tp[4])*3.6e6, '999D999'), |
| 707 | + to_char(DEGREES(tp[5])*3.6e6, '99999D999'), |
| 708 | + to_char(tp[6], '999D999') |
| 709 | +FROM ( |
| 710 | + SELECT epoch_prop( |
| 711 | + spoint(radians(269.45207695), radians(4.693364966)), 546.9759, |
| 712 | + RADIANS(-801.551/3.6e6), RADIANS(10362/3.6e6), -110, |
| 713 | + -100) AS tp) AS q; |
| 714 | + to_char | to_char | to_char | to_char | to_char | to_char |
| 715 | +-----------------+-----------------+----------+----------+------------+---------- |
| 716 | + 269.4742714391 | 4.4072939987 | 543.624 | -791.442 | 10235.412 | -110.450 |
| 717 | + ]]></programlisting> |
| 718 | + </example> |
| 719 | + |
| 720 | + </sect3> |
| 721 | + <sect3> |
| 722 | + <title>Epoch Propagation of Positions Only</title> |
| 723 | + <funcsynopsis> |
| 724 | + <funcprototype> |
| 725 | + <funcdef><type>spoint</type> |
| 726 | + <function>epoch_prop_pos</function></funcdef> |
| 727 | + <paramdef>spoint <parameter>pos</parameter></paramdef> |
| 728 | + <paramdef>double precision <parameter>parallax</parameter></paramdef> |
| 729 | + <paramdef>double precision <parameter>pm_long</parameter></paramdef> |
| 730 | + <paramdef>double precision <parameter>pm_lat</parameter></paramdef> |
| 731 | + <paramdef>double precision <parameter>radial_velocity</parameter></paramdef> |
| 732 | + <paramdef>double precision <parameter>delta_t</parameter></paramdef> |
| 733 | + </funcprototype> |
| 734 | + </funcsynopsis> |
| 735 | + <funcsynopsis> |
| 736 | + <funcprototype> |
| 737 | + <funcdef><type>spoint</type> |
| 738 | + <function>epoch_prop_pos</function></funcdef> |
| 739 | + <paramdef>spoint <parameter>pos</parameter></paramdef> |
| 740 | + <paramdef>double precision <parameter>pm_long</parameter></paramdef> |
| 741 | + <paramdef>double precision <parameter>pm_lat</parameter></paramdef> |
| 742 | + <paramdef>double precision <parameter>delta_t</parameter></paramdef> |
| 743 | + </funcprototype> |
| 744 | + </funcsynopsis> |
| 745 | + <para> |
| 746 | + These are simplified versions of epoch_prop returning only spoints; |
| 747 | + the propagated values for the other coordinates are discarded |
| 748 | + (but still internallay computed; these functions do not |
| 749 | + run any faster than epoch_prop itself). |
| 750 | + </para> |
| 751 | + |
| 752 | + <para> |
| 753 | + As with epoch_prop itself, missing values (except for pos and |
| 754 | + delta_t) are substituted by 0 (or a very small value in the |
| 755 | + case of parallax). |
| 756 | + </para> |
| 757 | + <example> |
| 758 | + <title>Barnard's star, position and proper motion</title> |
| 759 | + <programlisting><![CDATA[ |
| 760 | +SELECT epoch_prop_pos( |
| 761 | + spoint(radians(269.45207695), radians(4.693364966)), |
| 762 | + RADIANS(-801.551/3.6e6), RADIANS(10362/3.6e6), |
| 763 | + 20) AS tp; |
| 764 | + tp |
| 765 | +----------------------------------------- |
| 766 | + (4.70274793061952 , 0.0829193989380876) |
| 767 | + ]]></programlisting> |
| 768 | + </example> |
| 769 | + </sect3> |
| 770 | + </sect2> |
643 | 771 | </sect1>
|
0 commit comments