ASTRO2012  INFO


 Overview
 

-The ASTRO48 directory is included in the zip file as a binary file ( #33176d / 58327 bytes )

-The position of the Sun and the planets are computed by the VSOP87B series for the Sun, Mercury, Venus and Mars
  and the TOP2010A series for Jupiter, Sturn, Uranus and Neptune ( references [2] & {3] )
-For Uranus & Neptune, small corrections have been added to take DE422 into account.

-For Pluto, the series are given by J. Meeus in his "Astronomical Algorithms" and
-For the Moon, I've used the series created by Kudryavtsev ( reference [13] )
-The position of "Xena" comes from approximate formulae that I've found with my HP-48 ( fitted to DE 406 )

-The results are obtained with respect to the mean ecliptic J2000,  so we can use the latest formulae for precession given in reference [4]
  to get the coordinates reffered to the mean ecliptic & equinox of the date.
-The heliocentric coordinates are mean coordinates, the geocentric coordinates are true coordinates, affected by aberration.
  and for the topocentric coordinates, the corrections for refraction and parallax are taken into account.
-The azimuths are reckoned westward from South.

-For the 8 major planets, the series are truncated to 10 -6 radian over the time span [-1000 , +5000]
-So, the precision is of the order of a few thousandths of a degree.
-For the Moon, the same precision is achieved between -3000 & +3000
-For Pluto's coordinates, the error is smaller than 0"07 ( compared to DE405 ) between 1885 & 2099
-And the error in the heliocentric longitude and latitude of the "10th planet" should not exceed 0°01 between 1793 and 2177
 

-The origin of time is 2000/01/01 12h TT = J2000.0

-The longitudes are measured positively Eastward from the meridian of Greenwich

Note:

-All the precession-programs employ the formulae given in reference [4] which are valid +/- 200,000 years from J2000

Warning:

-Flag F04 must be cleared for Gregorian dates ( 4  CF )
-Flag F04 must be set for Julian dates.( 4  SF )
-The flag indicator for F04 does not appear on the HP-50G, so check it to avoid wrong results...
 
 

Initializations
 

-To get the correct topocentric coordinates, initialize the following variables:

    •  DELTA T ( in seconds ) must be stored in 'DT'
    •  Longitude of your location ( ° ' " ) in 'l'
    •  Latitude of your location ( ° ' " ) in  'b'
    •  Altitude of your location ( in meters ) in 'Alt'

-And always execute  TS  first.  ( True Sidereal Time at Greenwich )
-This stores the correct values in  'e' ( true obliquity ),  'PSI'  ( nutation in longitude ), and  'T' = time since J2000.0 expressed in millenia.

-In the examples below, I've choosen the Mount Palomar Observatory:

   l = -116°51'50"4  b = 33°21'22"4   and   Alt = 1706 m

  and the date is    2100/01/01  7h41m UT , assuming TT-UT = 203 seconds
 
 
 
 Functions  Description
 DT
 TS
 SUN
 PLN
   ZODIAC
   SATL
   PHASE
   MOON
   COMET
      PHEM
      LBR
      T
      q
      a
      E
      I
      L
      w
      W
      VP
      KPL
   MER
   VEN
   MAR
   JUP
   SAT
   URA
   NEP
   PLU
   XENA
 d&t
 LST
 DOW
 J2000
 J->DAT
 dDAYS
 DAT±
 EASTER
 PREa
 PREl
 AD
 ECLEQ
 EQECL
 GEO
 EQAZ
 PAR
 H->H0
 iwW
 EAPA
 QAPA
 OBL
 NUT
 EE
 S->R
 R->S
 e
 PSI
 X
 Y
 Z
 T
 PRE0
 l
 b
 Alt
 P->R
 R->P
 L0
 TS0
 VSOP
 TDB
 •  DELTAT = TT - UT ( in seconds )
 Sidereal Time
 Position of the Sun
 Directory ( Planets , Moon , .... )
 Zodiac
 Satellites of Jupiter, Saturn, Uranus
 Phases of the Moon
 Position of the Moon
 Directory  (  Comets )
 Parabolic, Hyperbolic & Elliptic Motions
 Heliocentric Longitude, Latitude, Distance from the Sun
 Time of passage in perihelion, in days since J2000.0
 Perihelion Distance ( in AU )
 Semi-major Axis ( in AU )
 Eccentricity
 Inclination of the orbit ( in decimal degrees )
 Mean Longitude ( in decimal degrees )
 Argument of the perihelion OR Longitude of the perihelion (°)
 Longitude of the ascending Node ( in decimal degrees too )
 M , e#1  --->  True Anomaly v & r/q
 Solves Kepler's Equation  M , e#1  --->  Eccentric anomaly E
 Position of Mercury
 Position of Venus
 Position of Mars
 Position of Jupiter
 Position of Saturn
 Position of Uranus
 Position of Neptune
 Position of Pluto
 Position of Xena ( Lilah/Xena/Eris )
 Date & Time
 Local Solar Time
 Day of the Week
 Date ---> Number of days since 2000/01/01  12h 
 Number of days since 2000/01/01  12h ---> Date
 Delta days = Difference between 2 dates
 Date +/- a number of days ---> New Date
 Date of Easter
 Precession ( Equatorial Coordinates )
 Precession ( Ecliptic Coordinates )
 A subroutine to get right-ascension
 Transformation Ecliptic ---> Equatorial
 Transformation Equatorial ---> Ecliptic
 A subroutine to get geocentric coordinates
 Transformation Equatorial ---> Azimuthal
 Correction for Parallax ( Azimuthal coordinates )
 Correction for Refraction
 Ecliptic elements from one equinox to another one
 Parameters for precession
 Parameters for precession
 Mean obliquity of the ecliptic
 Nutation in longitude & obliquity
 Equatorial ---> Ecliptic & similar transformations
 Transformation Spherical ---> Rectangular
 Transformation Rectangular ---> Spherical
 Obliquity of the Ecliptic
 Nutation in longitude
 Rectangular X Coordinate of the Sun
 Rectangular Y Coordinate of the Sun
 Rectangular Z Coordinate of the Sun
 Time in Millenia from from J2000.0
 Precession ( Ecliptic Coordinates ) from J2000.0 to Date
 •  Longitude of your location ( ° ' " ) positive East
 •  Latitude of your Location ( ° ' " ) positive North
 •  Altitude of your location ( in meters )
 Polar -> Rectangular 
 Rectangular -> Polar
 Temporary data
 Temporary data
 ML program that calculates the coordinates much faster
 Calculates the difference  TDB - TT

 
 

DELTAT = TT - UT
 

-Store this value expressed in seconds in 'DT'
-In the following examples, place TT - UT = 203 seconds in 'DT'
 

Sidereal Time
 

-'TS' returns the true sidereal time at Greenwich.
 
 
      STACK         INPUTS       OUTPUTS
       Level 2    YYYY.MNDD             /
       Level 1     hh.mnss (UT)    HH.MNSS ( ST )

Example:
 

-For example, on  2100/01/01 , 7h41m UT

           4         CF           ( Gregorian date )

   2100.0101  ENTER
         7.41      TS            yields     14h25m13s11
 

Note:

-Remember that 'TS' calls  J2000 as a subroutine, so clear flag 4 for a Gregorian date or set flag 4 for a Julian date
 

Position of the Sun
 

-Don't forget to initialize    l = -116°51'50"4   b = 33°21'22"4   and   Alt = 1706 m  ( Palomar Observatory )
 
 
        STACK         INPUTS        OUTPUTS
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where   l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    After executing TS above,  press  the  SUN  key to get

   l = 280°93189
   b = 0°000076
   r = 0.983351 AU
  Q = 0
  a = 18h47m33s
  d = -22°58'44"
 Az = 167°39'40"
  h  = -79°24'08"
 h0 = -79°24'08"

Notes:

-Since the Sun is under the horizon, h0 is in fact meaningless.
-Q , Az , h & h0  are tagged
-The rectangular ecliptic coordinates of the Sun are also stored in  'X'  'Y'  'Z'  ( in AU )
 

Position of the Moon
 
 
 
        STACK         INPUTS        OUTPUTS
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where   l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Simply press  PLN  &  MOON   to get

   l = 161°9208
   b = 0°6976
   r = 0.00248241 AU
  Q = 119°009
  a = 10h54m22s
  d =   7°43'58"
 Az = -82°00'53"
  h  =   24°52'56"
 h0 =   24°54'59"
 

Position of Mercury
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    MER   to get

   L = 306°2501
   B =  -6°8215
   R =  0.430761 AU
   l =  -71°4730
   b = -2°1201
   r =  1.383095 AU
  Q =  7°884
  a = 19h21m31s
  d =  -24°14'53"
 Az = 130°45'59"
  h  =  -76°47'35"
 h0 =  -76°47'35"

Note:

-If flag 1 is set,  MER  only returns  L  B  R  in levels  3  2  1  respectively.
-It's the same for the other planets.
 

Position of Venus
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    VEN   to get

   L =  20°2462
   B =  -2°8595
   R =  0.725171 AU
   l =  -39°5428
   b = -1°8451
   r =  1.123579 AU
  Q =  39°561
  a = 21h33m52s
  d =  -16°24'45"
 Az = 102°07'39"
  h  =  -47°00'45"
 h0 =  -47°00'45"
 

Position of Mars
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    MAR   it yields:

   L =  67°7451
   B =  0°5538
   R =  1.509842 AU
   l =   29°6559
   b =  0°9580
   r =  0.872804 AU
  Q =  108°721
  a =  1h48m57s
  d =   12°14'32"
 Az =  90°47'34"
  h  =  21°28'20"
 h0 =   21°30'44"
 

Position of Jupiter
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    JUP   it yields:

   L =  191°0178
   B =  1°2989
   R =  5.45142 AU
   l =   -158°7595
   b =   1°2780
   r =   5.54077 AU
  Q =  79°694
  a =  13h20m27s
  d =   -7°05'49"
 Az =  -89°52'21"
  h  =   -12°47'30"
 h0 =   -12°47'30"
 

Position of Saturn
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    SAT   it yields:

   L =  200°0003
   B =  2°4746
   R =  9.66624 AU
   l =   -154°3501
   b =   2°4238
   r =   9.86890 AU
  Q =  75°295
  a =  13h38m40s
  d =   -7°39'07"
 Az =  -91°54'40"
  h  =   -16°53'48"
 h0 =   -16°53'48"
 

Position of Uranus
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    URA   it yields:

   L =  20°5450
   B =  -0°6251
   R =  19.9706 AU
   l =    17°7428
   b =   -0°6295
   r =   19.8302 AU
  Q =  96°811
  a =  1h06m25s
  d =   6°22'39"
 Az =  91°25'55"
  h  =   9°28'21"
 h0 =    9°33'48"
 

Position of Neptune
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    NEP   it gives:

   L =  165°5768
   B =  -0°9512
   R =  30.20779 AU
   l =    167°2881
   b =   0°9642
   r =   29.7999 AU
  Q =  113°640
  a =  11h14m44s
  d =   5°54'27"
 Az =  -83°23'06"
  h  =    20°33'04"
 h0 =    20°35'35"
 

Position of Pluto
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    PLU   it gives:

   L =   33°5191
   B =  -16°7921
   R =  48.93242 AU
   l =     32°4012
   b =   -16°9177
   r =   48.57951 AU
  Q =  110°497
  a =   2h23m51s
  d =   -3°37'19"
 Az =   71°33'23"
  h  =    19°43'31"
 h0 =    19°46'09"
 

Position of Xena/Lilah/Eris
 
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /             Q
         Level 5              /             a
         Level 4              /             d
         Level 3              /              Az
         Level 2              /               h
         Level 1              /               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
           a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:    Press    XENA   it yields:

   L =   43°763
   B =    6°142
   R =   83.949 AU
   l =     43°198
   b =     6°181
   r =   83.423 AU
  Q =  122°056
  a =   2h34m59s
  d =   21°40'39"
 Az =  94°07'26"
  h  =   35°39'52"
 h0 =   35°41'12"
 

Zodiac
 

-ZODIAC  takes a year in level 2 and an angle L expressed in degrees in level 1.
-It returns the date & time for which the longitude of the Sun equals L
 
 
        STACK         INPUTS       OUTPUTS
         Level 2         YYYY     YYYY.MNDD
         Level 1         L ( deg )    HH.MNSS ( TT )

Example:    Find the instant of the June Solstice in 2012

   2012   ENTER
     90     ZODIAC

-We get   2012.0620  at  23h09m45s  ( TT )

Notes:

-However, for an instant before the spring equinox, subtract 360° to L.
-Otherwise, the result would concern the following year !
-Clear flag 4 for Gregorian dates, Set flag 4 for Julian dates.
 

Satellites of Jupiter, Saturn, Uranus
 

-SATL allows you to get the configuration of the main satellites of these 3 planets, as seen from Earth

  4 satellites of Jupiter ( Io - Europa - Ganymede - Callisto )
  7 satellites of Saturn ( Mimas - Enceladus - Tethys - Dione - Rhea -Titan - Hyperion )
  5 satellites of Uranus ( Ariel - Umbriel -Titania - Oberon - Miranda )

-The x-axis coincides with the equator of the planet.
-The center of the Planet is the origin and x , y are measured in equatorial radii.
 

                                     y ( North )
                                      |
                                      |
                                      |
( East ) ------------Jup/Sat/Ura------------------ x   ( West )
                                      |
                                      |
                                ( South )
 
 
 
         STACK         INPUTS       OUTPUTS1       OUTPUTS2       OUTPUTS3
          Level 7               /               /      ( x , y )IHyperion               /
          Level 6               /               /        ( x , y )Titan               /
          Level 5               /               /        ( x , y )Rhéa        ( x , y )Miranda
          Level 4               /       ( x , y )Callisto        ( x , y )Dioné        ( x , y )Oberon
          Level 3     YYYY.MNDD     ( x , y )Ganymede        ( x , y )Thetys        ( x , y )Titania
          Level 2   HH.MNSS ( TT )       ( x , y )Europa      ( x , y )Enceladus        ( x , y )Umbriel
          Level 1      1  or  2  or  3          ( x , y )Io         ( x , y )Mimas        ( x , y )Ariel

  Where    Level 1 = 1 for Jupiter , 2 for Saturn , 3 for Uranus satellites

--->   the outputs (x,y)  are rounded to 3 decimals , tagged by "+" if the satellite is closer to the Earth than the planet or tagged by "-" otherwise.

Example:      On  2009/07/16 at 12h41m  TT
 

  •   Jovian Satellites
 

     2009.0716  ENTER
         12.41      ENTER
             1         SATL      we get:

                       Io         -    Europa    -    Ganymede   -    Callisto

                  x1 = -1.071       x2 =  9.260         x3 = 13.152         x4 = -12.079
                  y1 = -0.052       y2 =  0.020         y3 = -0.050          y4 =   0.241

-Io & Ganymede are closer to the Earth than Jupiter.
 

  •   Saturnian Satellites
 

     2009.0716  ENTER
         12.41      ENTER
             2         SATL

                     Mimas     -   Enceladus  -     Tethys    -     Dione     -    Rhea      -     Titan     -    Hyperion

                  x1 = -2.421       x2 = -0.947         x3 =  2.036      x4 = -5.343     x5 = -8.748       x6 = -11.494     x7 = -10.319
                  y1 = -0.069       y2 = -0.176         y3 = -0.125      y4 =  0.148     y5 = -0.039       y6 =  0.622        y7 =   0.776

-Dione, Rhea, Titan and Hyperion are closer to the Earth than Saturn.
 

  •   Uranian Satellites
 

     2009.0716  ENTER
         12.41      ENTER
             3         SATL

                    Ariel    -    Umbriel    -    Titania    -     Oberon   -   Miranda

                  x1 =  6.066       x2 = -7.941       x3 = 5.296        x4 = 22.757     x5 = 4.562
                  y1 = -0.662      y2 =  1.043       y3 = -2.487        y4 =  0.264     y5 = 0.449

-Ariel & Titania are closer to the Earth than Uranus.
 

Notes:

-The accuracy is of order of a few hundredths of the planet's radius.
-Hyperion's coordinates are less accurate than those of the other Saturnian Satellites.
-The complete series may be downloaded from the server   ftp://ftp.imcce.fr
 

Phases of the Moon
 

-PHASE takes an approximate date in level 1 and returns the date & time of a phase near the input.
 
 
        STACK         INPUTS       OUTPUTS
         Level 2              /     YYYY.MNDD
         Level 1        yyyy.mndd    HH.MNSS ( TT )

  Where the date is tagged by "NM" ( respectively  "FQ"  "FM"  "LQ" )  for a New Moon  ( respectively  First Quarter, Full Moon, Last Quarter )

Example:

    2012.0716   PHASE   returns   NM:  2012.0719  at  4h25m22s  TT

-If you were searching for a 1st quarter, add about 7 days to the result and

    2012.0726   PHASE   gives   FQ:   2012.0726   at   8h57m58s  TT
 

Parabolic, Hyperbolic & Elliptic Motion
 

 PHEM  may be use to compute the position of a minor planet or a comet, provided you know the characteristics of its orbit.

-You have to store

   •  the time of passage in perihelion in 'T'          expressed in days from J2000.0 = 2000/01/01  12h TT
   •  the perihelion distance in 'q'                         expressed in AU
   •  the eccentricity in 'E'
   •  the inclination in 'I'                                       expressed in decimal degrees
   •  the argument of the perihelion in 'w'              -----------------------------        all 3 referred to the mean ecliptic and equinox of the date.
   •  the longitude of the ascending node in 'W'     -----------------------------
 
 
        STACK         INPUTS        OUTPUTS
        Level 12              /              L
        Level 11              /              B
        Level 10              /              R
         Level 9              /               l
         Level 8              /               b
         Level 7              /               r
         Level 6              /            Q
         Level 5              /            a
         Level 4              /            d
         Level 3              /              Az
         Level 2     YYYY.MNDD               h
         Level 1   HH.MNSS ( UT )               h0

  where  L = heliocentric longitude in degrees , B = heliocentric latitude in degrees , R = distance from the Sun in AU
              l = geocentric longitude in degrees ,  b = geocentric latitude in degrees , r = distance from the Earth in AU , Q = elongation from the Sun in degrees
            a = right-ascension ( hh.mnss ) , d = declination ( ° ' " )
             Az = Azimuth ( ° ' " ) , h = height ( ° ' " ) , h0 = height ( ° ' " ) corrected for refraction

Example:      Assuming  T = 36402.56789 days , q = 0.7 AU , i = 128° , w = 41° , W = 234°  -->  Store these numbers in the corresponding variables.

-Calculate the position of this fictituous comet on 2100/01/01  at  7h41 UT  at the Palomar Observatory in the 3 following cases

         •  Parabolic Motion       e = 1           1   'E'   STO

        2100.0101    ENTER
              7.41        PHEM       returns

   L =   71°6534
   B =   21°2138
   R =    2.2193 AU
   l =     49°9962
   b =    31°6414
   r =      1.5308 AU
  Q =   122°447
  a =   2h21m50s
  d =    47°47'11"
 Az =   127°05'44"
  h  =    40°47'56"
 h0 =    40°49'03"

        •   Elliptic Motion      for instance:   e = 0.6           0.6   'E'   STO

        2100.0101    ENTER
              7.41        PHEM       returns

   L =   63°4327
   B =   11°8471
   R =    1.6833 AU
   l =     29°8178
   b =    18°1549
   r =      1.1091 AU
  Q =   106°968
  a =   1h18m23s
  d =    27°54'20"
 Az =   109°20'11"
  h  =    22°47'44"
 h0 =    22°49'59"

        •   Hyperbolic Motion     for instance:  e = 1.2           1.2   'E'   STO

        2100.0101    ENTER
              7.41        PHEM       returns

   L =   74°2304
   B =   23°8741
   R =    2.4551 AU
   l =     56°3102
   b =    34°6768
   r =      1.7464 AU
  Q =   125°827
  a =   2h45m27s
  d =    52°34'15"
 Az =   133°19'38"
  h  =    44°50'01"
 h0 =    44°50'58"

Note:

-The effect of aberration is not taken into account
 

Heliocentric Longitude, Latitude, Distance from the Sun
 

 LBR  returns  the heliocentric longitude and latitude & the radius vector of a planet provided you've stored

   •  the time from J2000.0 in 'T'                        expressed in millenia
   •  the semi-major axis in 'a'                             expressed in AU
   •  the eccentricity in 'E'
   •  the inclination in 'I'                                       expressed in decimal degrees
   •  the mean longitude in 'L'                              -----------------------------
   •  the longitude of the perihelion in 'w'              -----------------------------        all 4 referred to the mean ecliptic and equinox of the date.
   •  the longitude of the ascending node in 'W'     -----------------------------

-This may be used if you want to use the mean orbital elements of a planet to get approximate ephemerides.
-'XENA'  uses  LBR  this way.
 

Kepler's Equation
 

KPL takes the mean anomaly M in level 2 and the eccentricity e # 1 in level 1
It returns the eccentic anomaly E
 
 
        STACK         INPUTS       OUTPUTS
         Level 2         M ( deg )              /
         Level 1           e # 1         E ( deg )

Examples:

    0.4    ENTER
    1.2     KPL        gives    E = 0.987853766458

     7     ENTER
    0.9     KPL        yields   E = 40°4669345175
 

Date & Time
 

-Press  d&t   to get the current date ( YMD format ) in level 2 and the time in level 1
 

Local Solar Time
 
 
 
        STACK         INPUTS       OUTPUTS
         Level 3     YYYY.MNDD              /
         Level 2      hh.mnss ( UT )              /
         Level 1     Longitude ( ° ' " )  HH.MNSS ( LST )

  Where  the longitude is positive East.

Example:    Mount Palomar Observatory, on 2012 July 4th  at  16h41m48s  UT

      2012.0704   ENTER
          16.4148   ENTER
      -116.51504  LST         returns     LST = 8h49m49s
 

Day of the Week
 
 
 
        STACK          INPUT        OUTPUT
         Level 1     YYYY.MNDD           dow

  With  dow = 0 , 1 , ..... , 6  for  Sunday, Monday, ............... , Saturday

Example:

   2012.0704  DOW  gives  3  i-e  Wednesday
 

Date ---> Number of days since J2000.0
 

- J2000  calculates the Julian day number minus  2451545
 
 
        STACK          INPUT        OUTPUT
         Level 1   YYYY.MNDDdd             N

Example:   2012 July 4th    6h

   2012.070425   J2000   returns   4567.75

Note:

-Clear flag 4 for Gregorian dates.
-Set flag 4 for Julian dates.
 

Number of days since J2000.0 ---> Date
 
 
 
        STACK          INPUT        OUTPUT
         Level 1              N   YYYY.MNDDdd

   Where  N = Julian day number minus  2451545

Example:

    4567.75   J->DAT   yields   2012.070425

Note:

-Clear flag 4 for Gregorian dates.
-Set flag 4 for Julian dates.
 

Difference between 2 dates
 
 
 
        STACK          INPUTS        OUTPUTS
         Level 2  YYYY.MNDDdd1             /
         Level 1  YYYY.MNDDdd2             N

  where  N  is the number of days between date1 ( in level2 ) & date2 ( in level1 )

Example:  Calculate the number of days between 24012/07/04 & 1979/0716  ( Gregorian dates )

   24012.0704   ENTER
     1979.0716   dDAYS   8047377
 

Date +/- a number of days ---> New Date
 
 
 
        STACK          INPUTS        OUTPUTS
         Level 2  YYYY.MNDDdd             /
         Level 1              N  YYYY.MNDDdd2

  where  N  may be positive or not

Example:

     1979.0716  ENTER
       8047377   DAT±        24012.0704
 

Date of Easter
 
 
 
        STACK          INPUT        OUTPUT
         Level 1          YYYY    YYYY.MNDD

  where   YYYY.MNDD   is a Gregorian date after 1582 or a Julian date before 1583

Examples:

   2012   EASTER   2012.0408
    234    EASTER    234.0406
 

Precession - Equatorial Coordinates
 
 
 
        STACK          INPUTS        OUTPUTS
         Level 4         a1 ( hh.mnss )             /
         Level 3         d1   ( ° ' " )             /
         Level 2  YYYY.MNDDdd1     a2 ( hh.mnss )
         Level 1  YYYY.MNDDdd2     d2   ( ° ' " )

Example:

-On  -8000/01/01 0h TT ( gregorian calendar, -8000 = 8001 B.C. )    a1 = 12h34m56s  and  d1 = 41°16'57"
-Calculate the right-ascension & declination of this fictitious star on  12000/01/01 0h TT

        12.3456    ENTER
        41.1657    ENTER
    -8000.0101   ENTER
     12000.0101  PREa       returns       a2 =  5h31m22s12     &    d2 =61°04'17"60
 

Precession - Ecliptic Coordinates
 
 
 
        STACK          INPUTS        OUTPUTS
         Level 4         l1  ( ° ' " )             /
         Level 3         b1  ( ° ' " )             /
         Level 2  YYYY.MNDDdd1       l2  ( ° ' " )
         Level 1  YYYY.MNDDdd2       b2  ( ° ' " )

Example:

-On  -8000/01/01 0h TT ( gregorian calendar, -8000 = 8001 B.C. )   l1 = 167°23'45"  and b1 = -12°34'56"
-Calculate the mean ecliptic longitude & latitude of this fictitious star on  12000/01/01 0h TT

       167.2345   ENTER
       -12.3456    ENTER
    -8000.0101   ENTER
     12000.0101  PREl      gives         l2 =   87°07'03"43    &   b2 =  -14°25'01"18
 

Transformation Ecliptic ---> Equatorial
 
 
 
        STACK          INPUTS        OUTPUTS
         Level 3         l  ( ° ' " )             /
         Level 2         b  ( ° ' " )       a ( hh.mnss )
         Level 1  YYYY.MNDDdd       d  ( ° ' " )

Example:             On  2441/07/07 ,  l = 123°45'  &  b = 67°12'   ,  Calculate the right-ascension & declination.

        123.45    ENTER
          67.12    ENTER
    2441.0707  ECLEQ   gives a = 13h12m08s55  &  d = 76°54'49"55
 

Transformation Equatorial ---> Ecliptic
 
 
 
        STACK          INPUTS        OUTPUTS
         Level 3       a  ( hh.mnss )             /
         Level 2         d  ( ° ' " )         l  ( ° ' " )
         Level 1  YYYY.MNDDdd         b  ( ° ' " )

Example:             On  2441/07/07 ,  a = 16h41m25s  &  d = 87°16'37"  ,   calculate the ecliptic longitude & latitude

      16.4125    ENTER
      87.1637    ENTER
    2441.0707  EQECL   it yields l = 92°34'25"36  &  b = 69°09'49"18
 

Transformation Equatorial ---> Azimuthal
 

-You have to initialize   'l' & 'b'  ( the longitude & latitude of your location )
  and  'TS0' must be initialized ( by 'TS' )  before executing  'EQAZ'
 
 
        STACK          INPUTS        OUTPUTS
         Level 3              /        Az  ( ° ' " )
         Level 2      a  ( hh.mnss )         h  ( ° ' " )
         Level 1         d  ( ° ' " )         h0  ( ° ' " )

   where  h0 = height  corrected for refraction

Example:             On  2100/01/01 at  7h41m  ( with TT - UT = 203s ) , a = 16h41m25s  &  d = 87°16'37"  ,  compute the geocentric Azimuth and height.

-Assuming all the required variables are already initialized ( otherwise  203  'DT'  STO   2100.0101  ENTER  7.41  ST  and  'l' & 'b' = Palomar coordinates )

    16.4125   ENTER
    87.1637   EQAZ     returns

   Az = 181°32'36"27
    h  =   30°58'01"13
   h0 =   30°59'36"31
 

Correction for Parallax ( Azimuthal Coordinates )
 

-PAR  requires that   'b' & 'Alt'  are initialized  ( 33°21'22"4  &  1706 m  in our examples )
-It takes the geocentric distance ( in AU ) & the geocentric azimuthal coordinates and returns the topocentric azimuthal coordinates.
-The formulas are rigorous.
 
 
        STACK          INPUTS        OUTPUTS
         Level 3        Dist ( AU )              /
         Level 2        Az0  ( ° ' " )         Az  ( ° ' " )
         Level 1         h0  ( ° ' " )          h  ( ° ' " )

    Here, the index 0 means geocentric

Example:      Dist = 0.00256 AU  ,  Az0 = 61°12'37"  ,   h0 = 33°57'51"

     0.00256   ENTER
     61.1237   ENTER
     33.5751     PAR        gives     Az = 61°12'48"17  &  h = 33°10'00"28

Note:

-In this program, the equatorial radius of the Earth = 6378137 m
 

Correction for Refraction
 

 H->H0  takes the true altitude h of a star in level1 and returns its apparent altitude h0 in level1
 It uses a simplified formula that is valid in the following atmospheric conditions:

   Temperature:                                +15°Celsius
   Pressure:                                    1013.25 mbar
   Light wave-length:                         0.590 µm
   Partial pressure of water vapor:          0   ( dry air )
   Latitude:                                           45°
   Observer's altitude:                            0   ( i-e at sea-level )

Formula:    R ~ (1°/62.6)/Tan( h + 5.459/( h + 19.272/( h + 6.942 ) ) )       where h is expressed in degrees

-Errors are smaller than  0"8  over the whole range [ -0°32'58" , 90° ] compared to the Pulkovo refraction tables

-It may of course be replaced by a more accurate formula...
 
 
        STACK           INPUT         OUTPUT
         Level 1           h ( ° ' " )          h0 ( ° ' " )

Example:

   12°34'56"   H->H0    h0:  12°39'05"4
 

Ecliptic elements from one equinox to another one
 

-The 3 following orbital elements of a planet or a comet change when they are referred to different equinoxes

    i =  inclination
   w = argument of perihelion
   W = longitude of ascending node
 
 
        STACK          INPUTS        OUTPUTS
         Level 5           i1( deg )
         Level 4          w1 ( deg )
         Level 3         W1  ( deg )            i2 ( deg )
         Level 2  YYYY.MNDDdd1           w2 ( deg )
         Level 1  YYYY.MNDDdd2          W2  ( deg )

    where   i1 w1W1 are reffered to the 1st date ( level2 )   and    i2 w2W2 are reffered to the 2nd date ( level1 ) , all expressed in decimal degrees

Example:

-The elements of a comet are    i1 = 47°1234  ,  w1 = 151°5432  , W1 = 34°5678   on  1984/12/28
-Calculate these elements on  2345/07/24

      47.1234   ENTER
     151.5432  ENTER
      34.5678   ENTER
  1984.1231   ENTER
  2345.0724     iwW        returns

     i2  =  47°1590
    w2 = 151°5850
   W2 =  39°5796
 

Mean obliquity of the ecliptic
 

  OBL  assumes that  'T'  contains the time in millenia from  J2000.0
 
 
        STACK           INPUT         OUTPUT
         Level 1               /          obl ( deg )

   where  obl  is the mean  obliquity

Example:    Assuming  T = 3.456   ( i-e  5456/01/27  12h TT )     3.456  'T'  STO

   OBL   yields   23°011787
 

Nutation in longitude & obliquity
 

  NUT   also assumes that  'T'  contains the time in millenia from  J2000.0

-It employs simplified formulae that cannot give an excellent accuracy.
-The results are not too bad however.
 
 
        STACK           INPUTS        OUTPUTS
         Level 2               /          De ( deg )
         Level 1               /          Dy ( deg )

   with   Dy = nutation in longitude & De = nutation in obliquity

Example:    Assuming  T = 3.456   ( i-e  5456/01/27  12h TT )

   NUT   yields   De = -0°001175  &  Dy = 0°004872
 

Rectangular -> Polar
 
 
 
        STACK           INPUTS        OUTPUTS
         Level 2               X              R
         Level 1               Y              L

  Where  L = Longitude & R = ( X2 + Y2 )1/2

Example:

   7   ENTER
   5   R->P         gives    R = 8.60232526704   &   L = 35°537677792   ( in DEG mode )

Notes:

-Since this function is not - explicitly - a standard function,  R->P  is written in Externals.
-R->P  checks the number and the type of arguments:  2 real numbers
-Otherwise, you get an error message:  "Too Few Arguments" or "Bad Argument Type"
 

Polar -> Rectangular
 
 
 
        STACK           INPUTS        OUTPUTS
         Level 2               R              X
         Level 1               L              Y

    Where  L = Longitude & R = ( X2 + Y2 )1/2

Example:

   6    ENTER
  41   P->R         gives    X = 4.52825748134   &   Y = 3.93635417394   ( in DEG mode )

Notes:

-Since this function is not - explicitly - a standard function,  R->P  is written in Externals.
-P->R  checks the number and the type of arguments:  2 real numbers
-Otherwise, you get an error message:  "Too Few Arguments" or "Bad Argument Type"
 

Rectangular ---> Spherical
 
 
 
        STACK           INPUTS        OUTPUTS
         Level 3               X              R
         Level 2               Y              L
         Level 1               Z              B

  With  R = radius vector , L = Longitude , B = Latitude

Example:

   7   ENTER
   5   ENTER
   3   R->S         gives    R = 9.11043357914   ,   L = 35°537677792   &  B = 19°2258557454               ( in DEG mode )

Notes:

-Since this function is not - explicitly - a standard function,  R->S  is written in Externals.
-R->S  checks the number and the type of arguments:  3 real numbers
-Otherwise, you get an error message:  "Too Few Arguments" or "Bad Argument Type"
 

Spherical ---> Rectangular
 
 
 
        STACK           INPUTS        OUTPUTS
         Level 3               R              X
         Level 2               L              Y
         Level 1               B              Z

  With  R = radius vector , L = Longitude , B = Latitude

Example:

   7    ENTER
  41   ENTER
  48   S->R         gives    X = 3.53499495327   ,   Y = 3.07292423113   &  Z = 5.20201377834               ( in DEG mode )

Notes:

-Since this function is not - explicitly - a standard function,  S->R  is written in Externals.
-S->R  checks the number and the type of arguments:  3 real numbers
-Otherwise, you get an error message:  "Too Few Arguments" or "Bad Argument Type"
 

Equatorial ---> Ecliptic & Similar Transformations
 

-Many transformations use the same type of formulae which appear in the equatorial-ecliptic conversion, namely:

                       sin  b = cos e  sin d - sin e  cos d  sin a
             cos cos l = cos d  cos a
             cos b  sin  l = sin e  sin d  +  cos e  cos d  sin a

-EE  does the job with the help of S->R and R->S.
 
 
 
        STACK           INPUTS        OUTPUTS
         Level 3            a              /
         Level 2            d            l
         Level 1            e            b

  Where   a , d , e   are the right-ascension , declination , obliquity of the ecliptic
    and        l , b     are the ecliptic longitude and latitude,  all these 5 angles in the same unit  ( decimal degrees in DEG mode )

Example:

     64.1278   ENTER
     41.3456   ENTER
     23.4263      EE         returns  l = 69°633235757   & b = 19°7303200122     ( in DEG mode )

Notes:

-Since this function is not a standard function,  EE  is written in Externals.
-EE  checks the number and the type of arguments:  3 real numbers
-Otherwise, you get an error message:  "Too Few Arguments" or "Bad Argument Type"
-Replacing  e by  -e  produces the reverse transformation  Ecliptic --> Equatorial
-This routine is used by several programs.
 

Precession ( Ecliptic Coordinates ) from J2000.0 to Date
 

-This program is used to transform the heliocentric coordinates / J2000.0 given by VSOP87B and TOP2010A
  to heliocentric coordinates with respect to the equinox of the date.
-In fact, it's only a part of  PREl
 
 
        STACK           INPUTS        OUTPUTS
         Level 2               L2000              L
         Level 1               B2000              B

  With    L = Longitude , B = Latitude  ,  all in decimal degrees

Example:     L2000  =  234°567   &   B2000 =  12°345    Calculate  L & B  for  T = 3  ( i-e  5000/01/23  12h )

        3        'T'   STO

  234.567   ENTER
   12.345     PRE0       yields    L =  276°777377664  &  B = 11°9932526618
 

VSOP:  An LM program that calculates the coordinates much faster
 

-This program is not my creation: I found it in reference [6]
-It was written by Th. Alle Zoethout.

-It takes an alpha string in level 2 and a real number ( the time T in millenia since J2000.0 )
  and returns L , B , R in levels 3 , 2 , 1 respectively
-VSOP checks that level 1 contains a real number and that level 2 contains an alpha string that starts with "VSOP"

-So, DO NOT place such a string in level 2 ... unless you know exactly what you are doing !
-This string must be built as explained in HP48SXTANT #46 by another program called  'VSOPACK'
 

Barycentric Dynamical Time
 

-Due to relativistic effects, there is a difference between TDB & TT that the following programs evaluate.
-This difference remains small: less than 2 milliseconds, at least several millennia around J2000.

-TDB employs the main terms of the series given in reference [14] or [15],
-The precision is of the order of 1 microsecond over the time-span [1000,3000]
 

Example1:      2012/08/29  16h41m37s  ( TT or TDB )

    2012.0829    ENTER
        16.4137    XEQ "TDB"  >>>>   TDB-TT =  - 0.0013238 s
 

Example2:      3000/04/04  1h23m45s  ( TT or TDB )

    3000.0404   ENTER
          1.2345      R/S        >>>>    TDB-TT = + 0.0015394 s
 
 

References:

 [1]  Jean Meeus - "Astronomical Algorithms" - Willmann-Bell  -  ISBN 0-943396-61-1
 [2]  VSOP87B Series  ftp://ftp.imcce.fr/pub/ephem/planets/vsop87/
 [3]  VSOP09A & TOP2010A Series  http://www.imcce.fr/~jlsimon
 [4]  J. Vondrak, N. Capitaine, P. Wallace - "New precession expressions, valid for long time intervals" - Astronomy & Astrophysics 534, A22 ( 2011 )
 [5]  Robin M. Green - "Spherical Astronomy" - Cambridge University Press - ISBN  0-521-31779-7
 [6]  Th. Alle Zoethout in HP48SXTANT #46
 [7]   A. Vienne & L. Duriez 1995 - "TASS1.6:  Ephemerides of the major Saturnian Satellites" - Astronomy & Astrophysics  297 ,  588-605
 [8]   L. Duriez & A. Vienne 1997 - "Theory of motion and Ephemerides of Hyperion" - Astronomy & Astrophysics  324 , 366-380
 [9]   J. Laskar & R.A. Jacobson 1987 - "GUST86.  An Analytical Ephemeris of the Uranian Satellites" - Astronomy & Astrophysics  188 , 212-224
[10]  D. Lazzaro 1991 - "Semi-analytical Theory for the motion of Uranus' Satellites" - Astronomy & Astrophysics 250 , 253-265
[11]  Planetary Programs and tables from -4000 to +2800 - Bretagnon and Simon - Willmann-Bell    ISBN 0-943396-08-5
[12]  Lunar Tables and Programs from 4000 B.C. to A.D. 8000 - Chapront-Touzé and Chapront - Willmann-Bell   ISBN 0-943396-33-6
[13]  S.M. Kudryavstev - Long-term harmonic development of lunar ephemeris - A&A 471, 1069–1075 (2007)
[14] "Introduction aux Ephemerides Astronomiques" - EDP Sciences - ISBN 2-86883-298-9  ( in French )
[15]  Fairhead & Bretagnon - "An Analytica Formula for the Time Transformation TB-TT" Astronomy & Astrophysics 229, 240-247 ( 1990 )
[16]  Table 5.3a: Nutation in longitude (IAU 2000_R06 expression) derived from the IAU 2000A
         lunisolar and planetary components with slight IAU 2006 adjustments
[17]  Table 5.3b: Nutation in obliquity (IAU 2000_R06 expression) derived from the IAU 2000A
         lunisolar and planetary components with slight IAU 2006 adjustments