Skip to content

Commit ceb7017

Browse files
committed
Adding documentation for epoch propagation.
Also, fixing upgrade script generation.
1 parent 47cf8bb commit ceb7017

File tree

2 files changed

+134
-5
lines changed

2 files changed

+134
-5
lines changed

Diff for: Makefile

+5-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ DATA_built = $(RELEASE_SQL) \
1818
pg_sphere--1.0_gavo--1.1.5beta0gavo.sql \
1919
pg_sphere--1.1.5beta0gavo--1.1.5beta2gavo.sql \
2020
pg_sphere--1.1.5beta2gavo--1.1.5beta4gavo.sql \
21-
pg_sphere--1.1.5beta4gavo--1.2.0.sql
21+
pg_sphere--1.1.5beta4gavo--1.2.0.sql\
22+
pg_sphere--1.2.0--1.2.1.sql
2223

2324
DOCS = README.pg_sphere COPYRIGHT.pg_sphere
2425
REGRESS = init tables points euler circle line ellipse poly path box index \
@@ -197,11 +198,11 @@ pg_sphere--1.1.5beta4gavo--1.2.0.sql: pgs_moc_ops.sql.in
197198
cat $^ > $@
198199
ifeq ($(has_parallel), n)
199200
sed -i -e '/PARALLEL/d' $@ # version $(pg_version) does not have support for PARALLEL
200-
201-
pg_sphere--1.2.0-1.2.1.sql: pgs_epochprop.sql.in
202-
cat upgrade_scripts/$@.in $^ > $@
203201
endif
204202

203+
pg_sphere--1.2.0--1.2.1.sql: pgs_epochprop.sql.in
204+
cat $^ > $@
205+
205206
# end of local stuff
206207

207208
sscan.o : sparse.c

Diff for: doc/functions.sgm

+129-1
Original file line numberDiff line numberDiff line change
@@ -639,5 +639,133 @@
639639
</example>
640640

641641
</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>
643771
</sect1>

0 commit comments

Comments
 (0)