aboutsummaryrefslogtreecommitdiff
path: root/src/slalib/sun67.htx/node201.html
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2015-03-04 21:21:30 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2015-03-04 21:21:30 -0500
commitd54fe7c1f704a63824c5bfa0ece65245572e9b27 (patch)
treeafc52015ffc2c74e0266653eecef1c8ef8ba5d91 /src/slalib/sun67.htx/node201.html
downloadcalfuse-d54fe7c1f704a63824c5bfa0ece65245572e9b27.tar.gz
Initial commit
Diffstat (limited to 'src/slalib/sun67.htx/node201.html')
-rw-r--r--src/slalib/sun67.htx/node201.html215
1 files changed, 215 insertions, 0 deletions
diff --git a/src/slalib/sun67.htx/node201.html b/src/slalib/sun67.htx/node201.html
new file mode 100644
index 0000000..4613125
--- /dev/null
+++ b/src/slalib/sun67.htx/node201.html
@@ -0,0 +1,215 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
+<!--Converted with LaTeX2HTML 97.1 (release) (July 13th, 1997)
+ by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds
+* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+ Jens Lippman, Marek Rouchal, Martin Wilck and others -->
+<HTML>
+<HEAD>
+<TITLE>Using vectors</TITLE>
+<META NAME="description" CONTENT="Using vectors">
+<META NAME="keywords" CONTENT="sun67">
+<META NAME="resource-type" CONTENT="document">
+<META NAME="distribution" CONTENT="global">
+<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso_8859_1">
+<LINK REL="STYLESHEET" HREF="sun67.css">
+<LINK REL="previous" HREF="node200.html">
+<LINK REL="up" HREF="node200.html">
+<LINK REL="next" HREF="node202.html">
+</HEAD>
+<BODY >
+<BR> <HR>
+<A NAME="tex2html2462" HREF="node202.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
+<A NAME="tex2html2460" HREF="node200.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
+<A NAME="tex2html2456" HREF="node200.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> <A HREF="sun67.html#stardoccontents"><IMG ALIGN="BOTTOM" BORDER="0"
+ SRC="contents_motif.gif"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html2463" HREF="node202.html">Celestial Coordinate Systems</A>
+<BR>
+<B>Up:</B> <A NAME="tex2html2461" HREF="node200.html">Vectors and Matrices</A>
+<BR>
+<B> Previous:</B> <A NAME="tex2html2457" HREF="node200.html">Vectors and Matrices</A>
+<BR> <HR> <P>
+<P><!--End of Navigation Panel-->
+<H3><A NAME="SECTION00052100000000000000">
+Using vectors</A>
+</H3>
+SLALIB provides conversions between spherical and vector
+form
+(sla_CS2C,
+sla_CC2S
+<I>etc.</I>), plus an assortment
+of standard vector and matrix operations
+(sla_VDV,
+sla_MXV
+<I>etc.</I>).
+There are also routines
+(sla_EULER
+<I>etc.</I>) for creating a rotation matrix
+from three <I>Euler angles</I> (successive rotations about
+specified Cartesian axes). Instead of Euler angles, a rotation
+matrix can be expressed as an <I>axial vector</I> (the pole of the rotation,
+and the amount of rotation), and routines are provided for this
+(sla_AV2M,
+sla_M2AV
+<I>etc.</I>).
+<P>
+Here is an example where spherical coordinates <TT>P1</TT> and <TT>Q1</TT>
+undergo a coordinate transformation and become <TT>P2</TT> and <TT>Q2</TT>;
+the transformation consists of a rotation of the coordinate system
+through angles <TT>A</TT>, <TT>B</TT> and <TT>C</TT> about the
+<I>z</I>, new <I>y</I> and new <I>z</I> axes respectively:
+<P><PRE>
+ REAL A,B,C,R(3,3),P1,Q1,V1(3),V2(3),P2,Q2
+ :
+ * Create rotation matrix
+ CALL sla_EULER('ZYZ',A,B,C,R)
+
+ * Transform position (P,Q) from spherical to Cartesian
+ CALL sla_CS2C(P1,Q1,V1)
+
+ * Multiply by rotation matrix
+ CALL sla_MXV(R,V1,V2)
+
+ * Back to spherical
+ CALL sla_CC2S(V2,P2,Q2)
+</PRE>
+<P>
+Small adjustments to the direction of a position
+vector are often most conveniently described in terms of
+<IMG WIDTH="99" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
+ SRC="img239.gif"
+ ALT="$[\,\Delta x,\Delta y, \Delta z\,]$">. Adding the correction
+vector needs careful handling if the position
+vector is to remain of length unity, an advisable precaution which
+ensures that
+the <IMG WIDTH="58" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
+ SRC="img50.gif"
+ ALT="$[\,x,y,z\,]$"> components are always available to mean the cosines of
+the angles between the vector and the axis concerned. Two types
+of shifts are commonly used,
+the first where a small vector of arbitrary direction is
+added to the unit vector, and the second where there is a displacement
+in the latitude coordinate (declination, elevation <I>etc.</I>) alone.
+<P>
+For a shift produced by adding a small <IMG WIDTH="58" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
+ SRC="img50.gif"
+ ALT="$[\,x,y,z\,]$"> vector <IMG WIDTH="17" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img240.gif"
+ ALT="${\bf D}$"> to a
+unit vector <IMG WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img241.gif"
+ ALT="${\bf V1}$">, the resulting vector <IMG WIDTH="26" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img242.gif"
+ ALT="${\bf V2}$"> has direction
+<IMG WIDTH="95" HEIGHT="27" ALIGN="MIDDLE" BORDER="0"
+ SRC="img243.gif"
+ ALT="$<{\bf V1}+{\bf D}\gt$"> but is no longer of unit length. A better approximation
+is available if the result is multiplied by a scaling factor of
+<IMG WIDTH="93" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
+ SRC="img244.gif"
+ ALT="$(1-{\bf D}\cdot{\bf V1})$">, where the dot
+means scalar product. In Fortran:
+<P><PRE>
+ F = (1D0-(DX*V1X+DY*V1Y+DZ*V1Z))
+ V2X = F*(V1X+DX)
+ V2Y = F*(V1Y+DY)
+ V2Z = F*(V1Z+DZ)
+</PRE>
+<P>
+The correction for diurnal aberration (discussed later) is
+an example of this form of shift.
+<P>
+As an example of the second kind of displacement
+we will apply a small change in elevation <IMG WIDTH="23" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img245.gif"
+ ALT="$\delta E$"> to an
+<IMG WIDTH="66" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
+ SRC="img28.gif"
+ ALT="$[\,Az,El~]$"> direction vector. The direction of the
+result can be obtained by making the allowable approximation
+<IMG WIDTH="92" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img246.gif"
+ ALT="${\tan \delta E\approx\delta E}$"> and adding a adjustment
+vector of length <IMG WIDTH="23" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img245.gif"
+ ALT="$\delta E$"> normal
+to the direction vector in the vertical plane containing the direction
+vector. The <I>z</I>-component of the adjustment vector is
+<IMG WIDTH="64" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img247.gif"
+ ALT="$\delta E \cos E$">,and the horizontal component is
+<IMG WIDTH="62" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img248.gif"
+ ALT="$\delta E \sin E$"> which has then to be
+resolved into <I>x</I> and <I>y</I> in proportion to their current sizes. To
+approximate a unit vector more closely, a correction factor of
+<IMG WIDTH="48" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img249.gif"
+ ALT="$\cos \delta E$"> can then be applied, which is nearly
+<IMG WIDTH="88" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
+ SRC="img250.gif"
+ ALT="$(1-\delta E^2 /2)$"> for
+small <IMG WIDTH="23" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img245.gif"
+ ALT="$\delta E$">. Expressed in Fortran, for initial vector
+<TT>V1X,V1Y,V1Z</TT>, change in elevation <TT>DEL</TT>
+(+ve <IMG WIDTH="15" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
+ SRC="img251.gif"
+ ALT="$\equiv$"> upwards), and result
+vector <TT>V2X,V2Y,V2Z</TT>:
+<P><PRE>
+ COSDEL = 1D0-DEL*DEL/2D0
+ R1 = SQRT(V1X*V1X+V1Y*V1Y)
+ F = COSDEL*(R1-DEL*V1Z)/R1
+ V2X = F*V1X
+ V2Y = F*V1Y
+ V2Z = COSDEL*(V1Z+DEL*R1)
+</PRE>
+<P>
+An example of this type of shift is the correction for atmospheric
+refraction (see later).
+Depending on the relationship between <IMG WIDTH="23" HEIGHT="13" ALIGN="BOTTOM" BORDER="0"
+ SRC="img245.gif"
+ ALT="$\delta E$"> and <I>E</I>, special
+handling at the pole (the zenith for our example) may be required.
+<P>
+SLALIB includes routines for the case where both a position
+and a velocity are involved. The routines
+sla_CS2C6
+and
+sla_CC62S
+convert from <IMG WIDTH="69" HEIGHT="35" ALIGN="MIDDLE" BORDER="0"
+ SRC="img252.gif"
+ ALT="$[\theta,\phi,\dot{\theta},\dot{\phi}]$">to <IMG WIDTH="106" HEIGHT="29" ALIGN="MIDDLE" BORDER="0"
+ SRC="img51.gif"
+ ALT="$[\,x,y,z,\dot{x},\dot{y},\dot{z}\,]$"> and back;
+sla_DCS26
+and
+sla_DC62S
+are double precision equivalents.
+<P>
+<BR> <HR>
+<A NAME="tex2html2462" HREF="node202.html">
+<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next_motif.gif"></A>
+<A NAME="tex2html2460" HREF="node200.html">
+<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up_motif.gif"></A>
+<A NAME="tex2html2456" HREF="node200.html">
+<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="previous_motif.gif"></A> <A HREF="sun67.html#stardoccontents"><IMG ALIGN="BOTTOM" BORDER="0"
+ SRC="contents_motif.gif"></A>
+<BR>
+<B> Next:</B> <A NAME="tex2html2463" HREF="node202.html">Celestial Coordinate Systems</A>
+<BR>
+<B>Up:</B> <A NAME="tex2html2461" HREF="node200.html">Vectors and Matrices</A>
+<BR>
+<B> Previous:</B> <A NAME="tex2html2457" HREF="node200.html">Vectors and Matrices</A>
+<BR> <HR> <P>
+<P><!--End of Navigation Panel-->
+<ADDRESS>
+<I>SLALIB --- Positional Astronomy Library<BR>Starlink User Note 67<BR>P. T. Wallace<BR>12 October 1999<BR>E-mail:ptw@star.rl.ac.uk</I>
+</ADDRESS>
+</BODY>
+</HTML>