chi and h site logo

{ Practical astronomy | Computing | Solar system ephemeris }


Solar system ephemeris

Here we combine the computing environment, the software design principles and the insights about the movement of Sun, Moon and planets into software to do some calculations for us. The result are the modules Planets and Moon.

We use one hidden file to identify the "planet" we are interested in. The Moon needs no such information, as it is identified by the algorithm used.

.SP4_PLA
Stores the name of a planet or similar object. Values can be Sun (not Earth), Mercury, Venus, Mars, Jupiter, Saturn, Uranus or Neptune.

We have these user utilities to show the sky position of the chosen object. They require Python scripts to invoke from the Bash shell and to convert input parameters, and Python functions to do the work:

PlanetSet.py
PlanetSet()
Store the planet name in .SP4_PLA.
PlanetShow.py
PlanetShow()
Show the sky position of the planet named in .SP4_PLA.
PlanetPhys.py
PlanetPhys()
Show the physical ephemeris of the planet named in .SP4_PLA.
PlanetRise.py alt
PlanetRise(alt)
Show the next rise and set times for the planet. The given parameter is the altitude in degrees that defines the "rise" or "set". Give 0 for the mathematical horizon or −0.6° to compensate for average atmospheric refraction. If the object is the Sun, give −0.8° to compensate for average atmospheric refraction and to define the event as the upper limb coinciding with the horizon. Further, twilight is defined by the Sun being at altitudes −6° (civil), −12° (nautical) or −18° (astronomical).
MoonShow.py
MoonShow()
Show the sky position of the Moon.
MoonPhys.py
MoonPhys()
Show the physical ephemeris of the Moon.
MoonRise.py alt
MoonRise(alt)
Show the next rise and set times for the Moon. The given parameter is the altitude in degrees that defines the "rise" or "set". Give −0.8° to compensate for average atmospheric refraction and to define the event as the upper limb coinciding with the horizon.

The Planets module supports three alternative orbit integrations:

Similarly, the Moon module contains three alternative orbit integrations:

Here is an example use from the Bash shell for the Sun. The time is set from the computer's clock, then the observatory and object selected. Five output routines show time, observatory, position ephemeris, physical ephemeris, and finally, when the Sun will set below −18° altitude (astronomical twilight).

$ TimSetSys.py
$ LocSet.py   -70.417 -24.667 2635 "Cerro Paranal"
$ PlanetSet.py Sun

$ TimShow.py 

                     JD [d]  2459161.991307
      Gregorian Date and UT  2020-11-08T11:47:29.0
         Julian Date and UT  2020-10-26T11:47:29.0
                TT - UT [s]  70.85418564783117
              TAI - UTC [s]  37.0

$ LocShow.py 

                Observatory  Cerro Paranal
 Geographic longitude [deg]  -70.417
  Geographic latitude [deg]  -24.667
  Geocentric latitude [deg]  -24.52155560529307
              Elevation [m]  2635.0
        Sidereal time [deg]  154.58181864931424

$ PlanetShow.py

        Object  Sun
       lII,bII  340.9180032955 36.888462972414 148.198216723548
  RA,Dec B1950  223.08744836319 -16.4952782321838 148.198216723548
  RA,Dec J2000  223.78523469502 -16.6970297680040 148.198216723548
   lam,bet EOD  226.54238165946 0.00212818633463001 148.198216723548
    RA,Dec EOD  224.076702072487 -16.7804860298518 148.198216723548
   HA,Dec topo  290.50292211666 -16.7797331629366 148.195506902692
      A,h topo  97.772030936622 25.1649549304810 148.195506902692

$ PlanetPhys.py

                  Object  Sun
                       V  -26.720412161128476
         Radius [arcsec]  968.7082345647381
        Elongation [deg]  0.0
       Phase angle [deg]  180.0
    Illuminated fraction  1.0
       Inclination [deg]  3.5632020702425025
    Position angle [deg]  23.00746174240958
  Central meridian [deg]  265.3004716149302

$ PlanetRise.py -18

       next set  2020-11-09T00:24:13.9
      next rise  2020-11-09T08:26:31.7
 altitude [deg]  -18.0

Here the corresponding output for the Moon, where the rise and set are for the upper limb of the Moon:

$ MoonShow.py

        Object  Moon
       lII,bII  208.608294040021 40.625729304660 0.38167081055938
  RA,Dec B1950  138.32487637033 20.5632762313279 0.38167081055938
  RA,Dec J2000  139.034167850505 20.354609367196 0.38167081055938
   lam,bet EOD  135.52055437073 4.2796803935602 0.38167081055938
    RA,Dec EOD  139.32949146861 20.2669104431338 0.38167081055938
   HA,Dec topo  15.5004532428646 20.9381191853625 0.37736562150935
      A,h topo  340.38456308246 41.969072850272 0.377365621509353

$ MoonPhys.py

                  Object  Moon
                       V  -10.176269713195403
         Radius [arcsec]  949.9792248997904
        Elongation [deg]  -91.44367187850128
       Phase angle [deg]  -88.41048590616889
     Terminator PA [deg]  17.43114268045042
    Illuminated fraction  0.5138693480117649
       Inclination [deg]  -6.093415933143147
           Axis PA [deg]  18.36298234013797
  Central meridian [deg]  -7.80905458002411

$ MoonRise.py -0.8

       next set  2020-11-08T16:17:33.2
      next rise  2020-11-09T05:58:39.0
 altitude [deg]  -0.8

Here the corresponding output for Mercury:

$ PlanetSet.py Mercury
$ PlanetShow.py 

        Object  Mercury
       lII,bII  324.99721766074 52.0224779479664 139.783503844039
  RA,Dec B1950  205.71832694748 -8.267494650808 139.783503844039
  RA,Dec J2000  206.377178348758 -8.517115254453 139.783503844039
   lam,bet EOD  207.83241791121 2.228868425884 139.783503844039
    RA,Dec EOD  206.65226095301 -8.6208097340310 139.783503844039
   HA,Dec topo  307.92766041590 -8.619956220889 139.779581116991
      A,h topo  81.437281598913 37.938755417566 139.779581116991

$ PlanetPhys.py 

                      Object  Mercury
                           V  -0.35424757810627994
             Radius [arcsec]  3.5989930759175564
            Elongation [deg]  -18.837278899616077
           Phase angle [deg]  -90.57128639468922
        Illuminated fraction  0.49501466832617474
           Inclination [deg]  0.27842323491309157
        Position angle [deg]  27.44301238043492
      Central meridian [deg]  269.0572188902579

$ PlanetRise.py -0.6

       next set  2020-11-08T21:34:12.7
      next rise  2020-11-09T08:55:59.9
 altitude [deg]  -0.6