home *** CD-ROM | disk | FTP | other *** search
/ Simtel MSDOS - Coast to Coast / simteldosarchivecoasttocoast2.iso / astrnomy / ephem421.zip / MAN.TXT < prev    next >
Text File  |  1990-09-13  |  146KB  |  3,565 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.                            Ephem V4.20 - August 21, 1990
  8.  
  9.                     Copyright (c) 1990 by Elwood Charles Downey
  10.                                Chaska, Minnesota, USA
  11.  
  12.                                   downey@dimed.com
  13.  
  14.  
  15.                                  Table of Contents
  16.       1.  Introduction ...................................................  3
  17.       2.  Running Ephem ..................................................  3
  18.       2.1.  Command Line Format ..........................................  3
  19.       2.2.  Program Operation ............................................  4
  20.       3.  Screen Fields ..................................................  5
  21.       3.1.  Top Screen Fields ............................................  6
  22.       3.2.  Data format columns ..........................................  7
  23.       3.3.  RiseSet format columns .......................................  8
  24.       3.4.  Separation format fields .....................................  8
  25.       4.  Date and Time Formats ..........................................  8
  26.       5.  Configuration File .............................................  9
  27.       5.1.  Configuration File fields ....................................  9
  28.       5.2.  Example ephem.cfg ............................................ 11
  29.       6.  Menu options ................................................... 11
  30.       6.1.  Adaptive vs. Standard hzn .................................... 11
  31.       6.2.  Geocentric vs. Topocentric ................................... 12
  32.       7.  User Defined Objects: X and Y .................................. 12
  33.       7.1.  Controlling Object-X or Y Operation .......................... 12
  34.       7.1.1.  Fixed ...................................................... 13
  35.       7.1.2.  Elliptical ................................................. 13
  36.       7.1.3.  Parabolic .................................................. 13
  37.       7.1.4.  Lookup ..................................................... 14
  38.       7.1.5.  On or Off .................................................. 14
  39.       7.2.  Magnitude models ............................................. 14
  40.       7.2.1.  g/k model .................................................. 14
  41.       7.2.2.  H/G model .................................................. 15
  42.       7.3.  Database File ................................................ 15
  43.       8.  Plotting ....................................................... 15
  44.       8.1.  Defining plot fields ......................................... 16
  45.       8.2.  Displaying a plot file ....................................... 16
  46.       8.3.  Cartesian or Polar coords .................................... 16
  47.       8.4.  Begin Plotting ............................................... 17
  48.       8.5.  Stopping Plotting ............................................ 17
  49.       9.  Listing ........................................................ 17
  50.       10.  Watching ...................................................... 17
  51.       10.1.  Trails ...................................................... 17
  52.       10.2.  Sky dome .................................................... 18
  53.       10.3.  Alt/az sky .................................................. 18
  54.       10.4.  Solar System ................................................ 18
  55.       11.  Searching ..................................................... 18
  56.       11.1.  Find extreme ................................................ 19
  57.       11.2.  Find 0 ...................................................... 19
  58.       11.3.  Binary ...................................................... 19
  59.       11.4.  Define a New function ....................................... 19
  60.       11.4.1.  Intrinsic functions ....................................... 20
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.                                        - 2 -
  71.  
  72.  
  73.       11.4.2.  Field Specifiers .......................................... 20
  74.       11.4.3.  Constants ................................................. 21
  75.       11.4.4.  Operators ................................................. 21
  76.       11.5.  Specifying Search Accuracy .................................. 21
  77.       11.6.  Stop ........................................................ 21
  78.       11.7.  Example Searches ............................................ 22
  79.       11.8.  Another Example ............................................. 22
  80.       11.9.  Caution ..................................................... 22
  81.       12.  Implementation Notes .......................................... 23
  82.       12.1.  Program limits .............................................. 24
  83.       13.  DOS Installation Procedure .................................... 24
  84.       13.1.  Setting TZ .................................................. 24
  85.       14.  Known Bugs and Wish List ...................................... 25
  86.       15.  Sample Screens ................................................ 26
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.                                        - 3 -
  137.  
  138.  
  139.      1.  Introduction
  140.  
  141.      Ephem is a program that displays ephemerides for all the planets plus any
  142.      two additional objects.  The additional objects may be fixed or specified
  143.      via heliocentric elliptical or parabolic orbital elements to accommodate
  144.      solar system objects such as comets or asteroids.
  145.  
  146.      Information displayed about each object includes RA and Dec precessed to
  147.      any epoch, heliocentric coordinates, local azimuth and altitude, distance
  148.      from sun and earth, solar elongation, angular size, visual magnitude,
  149.      illumination percentage, local rise, transit and set times, length of time
  150.      up, and topocentric or geocentric angular separations between all
  151.      combinations of objects.
  152.  
  153.      Observing circumstance information includes UTC and local date and time,
  154.      local sidereal time, times of astronomical twilight, length of day and
  155.      night, local temperature, pressure and height above sea level for the
  156.      refraction model and a monthly calendar.
  157.  
  158.      RA/Dec calculations are geocentric and include the effects of light travel
  159.      time, nutation, aberration and precession.  Alt/az and rise/set/transit
  160.      and, optionally, angular separation calculations are topocentric and
  161.      include the additional effects of parallax and refraction.
  162.  
  163.      Plot and listing files of selected field values may be generated as the
  164.      program runs.  The plot files are full precision floating point values in
  165.      ASCII intended for input to other plotting programs.  The listing files
  166.      are tables formatted for general reading.  Ephem includes simple quick-
  167.      look facilities to view these files.
  168.  
  169.      One may watch the sky or the solar system with a simple screen-oriented
  170.      display.
  171.  
  172.      Ephem may be asked to search for interesting conditions automatically,
  173.      using several algorithms. Most fields displayed on the screen may be used
  174.      as terms in an arbitrary arithmetic expression that can be solved for zero
  175.      or minimized or maximized, or the time of state change of any boolean
  176.      expression can be found.
  177.  
  178.      The program is written in C for unix or DOS. It uses only a very simple
  179.      set of io routines and should be easily ported to any ASCII display.
  180.  
  181.      The planetary data and correction algorithms are taken, with permission,
  182.      from "Astronomy With Your Personal Computer", by Peter Duffett-Smith,
  183.      Cambridge University Press, 1985.
  184.  
  185.      2.  Running Ephem
  186.  
  187.  
  188.      2.1.  Command Line Format
  189.  
  190.      To run ephem, just type "ephem".  You may also specify an alternate
  191.      configuration file, an alternate database file, and specify initial values
  192.      for several screen fields.  The command line syntax can be summarized as
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.                                        - 4 -
  203.  
  204.  
  205.      follows:
  206.  
  207.          ephem [-c <config_file>] [-d <database_file>] [field=value  ...]
  208.  
  209.  
  210.      The default configuration file is named ephem.cfg in the current
  211.      directory.  Ephem also looks for one named by the EPHEMCFG environment
  212.      variable, if it is set. You may specify an arbitrary name with the -c
  213.      option.
  214.  
  215.      The default database file is named ephem.db in the current directory.
  216.      Ephem also looks for one named by the EPHEMDB environment variable, if it
  217.      is set. You may specify an arbitrary name with the -d option.
  218.  
  219.      The exact format of these files is described below.
  220.  
  221.      Any additional command line arguments are treated exactly as if they too
  222.      came from the configuration file.
  223.  
  224.      2.2.  Program Operation
  225.  
  226.      When ephem starts, it first displays a disclaimer banner.  Then, after any
  227.      key is pressed, it reads the configuration file and processes the command
  228.      line arguments to set the initial values of several fields, accessing the
  229.      database file if OBJX or OBJY is set, It then draws all fields on the
  230.      screen with their initial values.  The program then loops advancing time
  231.      each step, by some amount you may control, and updating all fields each
  232.      loop.
  233.  
  234.      There are three fields that control this looping behavior.  NStep controls
  235.      the number of steps, StpSz the amount of time to add each step, and Pause
  236.      is the amount of real seconds to pause between steps.  Ephem does not
  237.      pause between steps when plotting or searching is on.  When the number of
  238.      steps, NStep, goes to 0 or any key is pressed, the looping stops and you
  239.      enter a command mode.
  240.  
  241.      Command mode allows you to modify most of the fields.  The idea is that
  242.      you move to each field on the screen you wish to change and change it.
  243.      When you have changed everything you want to, type "q" to resume screen
  244.      updates.
  245.  
  246.      To change a field:
  247.  
  248.          1) move the cursor to the field (see below);
  249.          2) type RETURN;
  250.          3) type in the new value along the command line at the top according
  251.             to the format indicated in the prompt. To accept the new value
  252.             type RETURN, or to leave it unchanged after all type "q".
  253.  
  254.  
  255.      A few fields don't require you to type anything; just typing RETURN does
  256.      all the work.  If you can't move to it, you can't change it.
  257.  
  258.      The arrow keys on most systems move the cursor around.  If these do not
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.                                        - 5 -
  269.  
  270.  
  271.      function or function incorrectly, the h/j/k/l keys also move the cursor
  272.      left/down/up/right, respectively.  Motions off any edge of the screen will
  273.      wrap around.
  274.  
  275.      Several "hot-keys" move the cursor immediately to frequently used fields.
  276.      You may move the cursor immediately to a planet row by typing one of the
  277.      characters SMevmjsunpxy.  To avoid conflict with j, jupiter's row must
  278.      actually be typed as control-j.  "x" and "y" are for the user-defined
  279.      objects X and y on the bottom rows.  Also, the characters c, d, o, w, L
  280.      and z move you to the Menu, UT Date, Epoch, Watch, Listing and StpSz
  281.      fields immediately.
  282.  
  283.      When you have changed a field that would invalidate any of the other
  284.      fields the message NEW CIRCUMSTANCES appears in the top center of the
  285.      screen.  This will remain until you type "q" to allow at least one screen
  286.      update loop to occur.  If you change any field that causes new
  287.      circumstances, the StpSz value is not added to the first loop.  Note also
  288.      that after a series of loops, NStep is automatically reset to 1 so "q"
  289.      will do exactly one loop and return you to command mode.
  290.  
  291.      On some systems, you may temporarily escape from ephem while in command
  292.      mode to run your operating system's command interpretor. This is done by
  293.      typing an exclamation point (!) followed by your command.  When the
  294.      command completes, you will return back to ephem where you left off.
  295.  
  296.      To quit the program, type control-d from command mode.  For a little more
  297.      help, type ?.  The entire screen may be erased and redrawn with control-l.
  298.  
  299.      3.  Screen Fields
  300.  
  301.      The screen is divided into two halves, top and bottom.  The top fields are
  302.      always present. They define the general observing circumstances and
  303.      control features.
  304.  
  305.      The planets and two additional objects are displayed in a table in the
  306.      bottom portion of the screen.  There is one object per row, and several
  307.      columns.  There are three forms of this portion selected by picking the
  308.      Menu selection.
  309.  
  310.      Some things may be turned off to reduce compute times.  Calculations for
  311.      each planet may be turned on and off by selecting the planet name field.
  312.      Calculations for Dawn/Dusk/NiteLn may be turned off by selecting any of
  313.      these fields.  Planet positions are only updated as often as necessary to
  314.      match the display precision of the screen unless plotting or searching is
  315.      on.  In these cases full precision is desired at all times and so
  316.      positions are always fully recalculated at each iteration.
  317.  
  318.      Follows is a list and description of each of the fields in each section.
  319.      Following each name a parenthetical "p" indicates the field may be
  320.      selected for plotting (see later). All fields may be selected for
  321.      changing.
  322.  
  323.  
  324.  
  325.  
  326.  
  327.  
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.                                        - 6 -
  335.  
  336.  
  337.      3.1.  Top Screen Fields
  338.  
  339.      LTZ           the local timezone name.  The name field may be changed to
  340.                    any three-character mnemonic.
  341.      LT(p)
  342.      LD(p)         The local time and date are not labeled as such but are to
  343.                    the right of the local timezone name.  They are individually
  344.                    selectable.  Time and date fields may be changed as
  345.                    described in a later section.  Set to "n" to set to "now"
  346.                    from computer clock.
  347.      UT(p)
  348.      UD(p)         The universally coordinated time and date are not labeled as
  349.                    such but are to the right of the UTC label.  They are
  350.                    individually selectable.  Time and date fields may be
  351.                    changed as described in a later section.  Set to "n" to set
  352.                    to "now" from computer clock.
  353.      JulianDat(p)  the current Julian date, to about 1-second accuracy.
  354.      Listing       controls listing; see complete discussion below.
  355.      Watch         selects the sky dome, altitude/azimuth sky or solar system
  356.                    displays; see complete discussion below.
  357.      Search        controls the automatic search feature of ephem. See the
  358.                    complete discussion below.
  359.      Plot          controls plotting; see complete discussion below.
  360.      Menu          controls which menu is in the bottom half of the screen.
  361.                    See their complete discussion below.
  362.      LST(p)        the current local sidereal time.  set to "n" to set from
  363.                    computer clock.
  364.      Dawn(p)       local time when the sun center is 18 degrees below the
  365.                    horizon before sunrise today.
  366.      Dusk(p)       local time when the sun center is 18 degrees below the
  367.                    horizon after sunset today.
  368.      NiteLn(p)     length of astronomical night, ie, Dawn - Dusk.  If this line
  369.                    is shown as "-----", it means the sun is either always below
  370.                    or always above approximately -18 degrees altitude on this
  371.                    particular day.  This and the Dawn and Dusk lines are blank
  372.                    when their computation has been turned off.
  373.      NStep         The number of times the display with be updated (time
  374.                    advanced by StpSz each step) before entering command mode.
  375.      StpSz         the amount of time UTC (and its derivatives) is incremented
  376.                    each loop.  set this to "r" to use real-time based on the
  377.                    computer clock.  you may also set it in terms of days by
  378.                    appending a "d" after the number when you set it.
  379.      Lat(p)        location latitude, positive degrees north of equator.
  380.      Long(p)       location longitude, positive degrees west of Greenwich
  381.                    meridian.  set to "N" to set from computer clock.
  382.      Elev(p)       local elevation of the ground above sea level, in feet. (see
  383.                    implementation notes).
  384.      Temp(p)       local surface air temperature, in degrees F.
  385.      AtmPr(p)      local surface air pressure, in inches of mercury.
  386.      TZ(p)         hours local time is behind utc, ie, positive west or
  387.                    negative east of Greenwich.
  388.      Epoch         the epoch, to the nearest 0.1 years, to which the ra/dec
  389.                    fields are precessed.  This says (OfDate) when coordinates
  390.                    are not precessed, ie, are in the epoch of date. Set to "e"
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.                                        - 7 -
  401.  
  402.  
  403.                    to set to epoch of date.
  404.      Pause         number of seconds to pause between screen updates. This is
  405.                    used mainly to set up for free-running unattended operation.
  406.                    This pause also applies to free-running "watch" screen
  407.                    updates.  Pausing is not done when plotting or searching is
  408.                    on.  If pausing is used with StpSz set to RT CLOCK and the
  409.                    time was set with Now then ephem attempts to synchronize the
  410.                    time to an integral multiple of pause seconds after the
  411.                    minute, for aesthetic reasons.
  412.      Also in the upper right of the screen is a calendar for the current local
  413.      month.  Dates of new and full moons are marked NM and FM, respectively.
  414.  
  415.      3.2.  Data format columns
  416.      Ob            name of object.  Select this to toggle the display and
  417.                    calculations on and off.
  418.      R.A.(p)       apparent geocentric right ascension of object, precessed to
  419.                    given epoch, in hours, minutes and decimal minutes.
  420.      Dec(p)        apparent geocentric declination of object, precessed to
  421.                    given epoch, in degrees and minutes.
  422.      Az(p)         degrees eastward of true north for object.
  423.      Alt(p)        degrees up from a horizontal plane Elev feet above sea
  424.                    level.
  425.      H Long(p)     true heliocentric longitude, in degrees.  Earth's is
  426.                    displayed on the sun's line.  For the moon this is the
  427.                    geocentric longitude.
  428.      H Lat(p)      true heliocentric latitude, in degrees.  For the moon this
  429.                    is the geocentric latitude.
  430.      Ea Dst(p)     true distance from Earth center to object center, in AU,
  431.                    except distance to the moon is in miles.
  432.      Sn Dst(p)     true distance from sun center to object center, in AU.
  433.      Elong(p)      spherical angular separation between sun and given object,
  434.                    calculated from the their geocentric ecliptic coordinates.
  435.                    Note this is not just difference in ecliptic longitude. The
  436.                    sign, however, is simply sign(obj's longitude - sun's
  437.                    longitude), ie, degrees east.  thus, a positive elongation
  438.                    means the object rises after the sun.
  439.      Size(p)       angular size of object, in arc seconds.
  440.      VMag(p)       visual magnitude of object.
  441.      Phs(p)        percent of visible surface in sunlight. Note the moon phase
  442.                    is calculated simplistically as just abs(elongation)/180*100
  443.                    which can be a few degrees off... this means that because of
  444.                    how elongation is defined it doesn't say 0 during new moon
  445.                    (or 100 during full) except during close eclipses (maybe
  446.                    that's a "feature"?).
  447.      Also, some terminals scroll when a character is written to the lower right
  448.      character position. To avoid this, Object Y's phase is left shifted by one
  449.      column. This can look particularly ugly when the phase is 100% because the
  450.      "100" is right next to visual magnitude number.
  451.      If desired, the angle between Earth and Sun from the object, p, can be
  452.      computed from the illumination percentage, i, with the following relation:
  453.  
  454.          cos (p) = i/50 - 1
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.                                        - 8 -
  467.  
  468.  
  469.      3.3.  RiseSet format columns
  470.      Rise Time
  471.      Rise Az       The local time and azimuth when the upper limb of the object
  472.                    rises today.
  473.      Transit Time
  474.      Transit Alt   The local time and altitude when the object crosses the
  475.                    meridian today, ie, when its azimuth is true south or, if no
  476.                    precession, when the local sidereal time equals the object's
  477.                    right ascension.
  478.      Set Time
  479.      Set Az        The local time and azimuth when the upper limb of the object
  480.                    sets today.
  481.      Hours Up      The number of hours the object is up on the local date.
  482.  
  483.      Horizon displacement may be calculated in either of two ways; see the
  484.      horizon discussion in the Menu selection section.
  485.  
  486.      Various oddball conditions are accounted for, including an object that is
  487.      up sometime during the day but that doesn't rise, transit or set as such
  488.      on that day, an object that is circumpolar or that is never up or one that
  489.      rises twice on the same day.  These are marked as "Never rises", "Never
  490.      transits", "Never sets", "Circumpolar", "Never up" or appended with a plus
  491.      "+" sign, respectively.
  492.  
  493.      3.4.  Separation format fields
  494.      This format is a table of angular separations between each pair of
  495.      objects.  These angles are based on the local altitude/azimuth, and so in
  496.      general differ somewhat from the elongations reported for the sun in the
  497.      Data menu.
  498.      Unfortunately, with the format "ddd:mm", there is not enough room for a
  499.      space between columns when the angle is at least 100 degrees.  To avoid
  500.      this, I drop the minutes portion if the (rounded) angle is at least 100
  501.      degrees.
  502.  
  503.      4.  Date and Time Formats
  504.      Times are displayed and entered in h:m:s format.  If you pick a time field
  505.      to change it any of the h, m, and s components that are not specified are
  506.      left unchanged from their current value.  For example, 0:5:0 set hours to
  507.      0, minutes to 5, seconds to 0, whereas :5 sets minutes to 5 but leaves
  508.      hours and seconds unchanged.  A negative time is indicated by a minus sign
  509.      (-) anywhere before the first digit.
  510.  
  511.      Dates are displayed and entered in American month:day:year format.  As
  512.      with time, components omitted when entering a new value retain the current
  513.      value.  For example, if the current date is 10/20/1988 and you type 20/20
  514.      the new date will become 20/20/1988. Note you must type the full year
  515.      since the program is accurate over several centuries either side of 1900.
  516.      If you change the date, the time (ie, partial day) will not change.
  517.  
  518.      Two other ways to set the date are supported for compatibility with some
  519.      published comet ephemerides.  You may enter the day portion as a real
  520.      number.  When you set the day this way, the time will also change to
  521.      correspond to the fractional portion of the day.
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.                                        - 9 -
  533.  
  534.  
  535.      You may also enter a date as a decimal year, as in 1990.12345.  This is
  536.      also useful in interpreting plot files that include a date field, since
  537.      date fields are stored in plot files as decimal years.  If no decimal
  538.      point is included, the number is assumed to be a year unless it is in the
  539.      range 1-12, in which case it will be taken to mean that you are just
  540.      changing the month of the current date.  To actually specify the years 1 -
  541.      12, you must append a decimal point to distinguish them from months.
  542.  
  543.      As a matter of typing convenience, the program accepts most any character
  544.      as the separator; you don't have to type a perfect ":" or "/".
  545.  
  546.      5.  Configuration File
  547.      The ephem.cfg configuration file allows you to set the initial values of
  548.      many of the screen fields. You can still change any field while the
  549.      program is running too; this file just sets the initial conditions.  Note
  550.      that the order of entries in this file is important because they each take
  551.      effect immediately.  You should put them in the same order you wish them
  552.      to be processed, just as though you were changing the fields interactively
  553.      within ephem.
  554.  
  555.      The default name of the file is ephem.cfg.  Ephem also looks for one named
  556.      by the EPHEMCFG environment variable (if defined) or you may specify any
  557.      name using the -c command line option.
  558.  
  559.      The format of the file uses the form KEYWORD=VALUE, where the possible
  560.      KEYWORDS and the types of VALUES for each are described below. Any
  561.      KEYWORDS not in the file will take on some sort of default. The separator
  562.      need not be an actual equals sign; any char will do because the VALUE is
  563.      assumed to start one character after the KEYWORD, regardless.
  564.  
  565.      Blank lines and lines that begin with an asterisk (*) or whitespace (space
  566.      or tab) are ignored and may be used for comments.
  567.  
  568.      Note:  because of the way unspecified time and date components are left
  569.      unchanged (see section on Date and Time Formats) always specify the
  570.      complete time and date for all entries in the configuration file. For
  571.      example, to initialize the longitude to zero degrees, say 0:0:0, not just
  572.      0.
  573.  
  574.      5.1.  Configuration File fields
  575.      UD        initial UTC date, such as 10/20/1988, or "NOW" to use the
  576.                computer clock.
  577.      UT        initial UTC time, such as 12:0:0, or "NOW" to use the computer
  578.                clock.
  579.      TZONE     hours the local time is behind utc, such as 5:0:0.  you need not
  580.                set this if you use "NOW" for UT or UD.
  581.      TZNAME    name of the local time zone, such as CDT. 3 chars max.  you need
  582.                not set this if you use "NOW" for UT or UD.
  583.      LONG      longitude, in degrees west of Greenwich, in the form d:m:s.
  584.      LAT       latitude, in degrees north of the equator, in the form d:m:s.
  585.      HEIGHT    height above sea level, in feet, such as 800
  586.      TEMP      air temperature, in degrees F, such as 50
  587.  
  588.  
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.                                        - 10 -
  599.  
  600.  
  601.      PRES      air pressure, in inches of Mercury, such as 29
  602.      STPSZ     the time increment between screen updates, such as "1" to give
  603.                one hour updates. this can be a specific amount or RTC to use
  604.                the system clock as a real-time source. You may also specify a
  605.                time in days, by appending a D (or d) after the number.
  606.      PROPTS    this selects what you want included initially in the display.
  607.                since IBM-PC math is not very fast, you can reduce the time to
  608.                update the screen by only printing those fields of interest. the
  609.                VALUE is a collection of letters to turn on each item from the
  610.                following set:
  611.  
  612.                        T       twilight (dawn-dusk)
  613.                        S       circumstances for the sun
  614.                        M       circumstances for the moon
  615.                        e       circumstances for mercury
  616.                        v       circumstances for venus
  617.                        m       circumstances for mars
  618.                        j       circumstances for jupiter
  619.                        s       circumstances for saturn
  620.                        u       circumstances for uranus
  621.                        n       circumstances for neptune
  622.                        p       circumstances for pluto
  623.                        x       circumstances for object X
  624.                        y       circumstances for object Y
  625.  
  626.                For example, to just track the sun and saturn, say PROPTS=Ss
  627.  
  628.                If the delimiter between PROPTS and the selection is a plus (+)
  629.                sign then the given planets are included IN ADDITION TO ones
  630.                already specified. Any other delimiter sets the selection to
  631.                exactly the set specified. This feature was added so that the
  632.                command line version of using PROPTS could add to the set of
  633.                planets giving in the configuration file.
  634.      NSTEP     number of times program will loop before entering command mode.
  635.                see the discussion under Program Operation.
  636.      EPOCH     this sets the desired ra/dec precession epoch. you can put any
  637.                date here or EOD to use the current instant ("Epoch of Date").
  638.      OBJX
  639.      OBJY      These fields specify the optional objects "x" and "y" by naming
  640.                any item in the database file. The form is OBJX=xyz, where xyz
  641.                must be in the database file, case sensitive.  You may define
  642.                one object of each type for each of OBJX and OBJY; the last one
  643.                defined will be the "current" one when ephem gets going.
  644.      PAUSE     The number of seconds to pause between calculation steps. See
  645.                definition of the Pause field in the "Top Screen Fields"
  646.                section.
  647.      MENU      establishes the initial bottom screen menu type.  This should be
  648.                one of the keywords DATA, RISET or SEP.  There is no way to set
  649.                horizon or center suboptions at this time.
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.                                        - 11 -
  665.  
  666.  
  667.      5.2.  Example ephem.cfg
  668.  
  669.      This is the ephem.cfg file that was in effect when the sample screens (in
  670.      another section) were generated. You might run ephem with this
  671.      configuration file and compare with the samples as a check.
  672.  
  673.      UT=0;0;0
  674.      UD=5/1/1990
  675.      TZNAME=CDT
  676.      TZONE=5
  677.      LONG=93:42:8
  678.      LAT=44:50:37
  679.      HEIGHT=800
  680.      TEMP=40
  681.      PRES=29.5
  682.      STPSZ=RTC
  683.      PROPTS=TSMevmjsunpxy
  684.      EPOCH=2000
  685.      NSTEP=1
  686.  
  687.      OBJX=Austin
  688.      OBJY=Juno
  689.  
  690.      As another common example, this ephem.cfg creates an essentially free-
  691.      running real-time screen based on the computer clock:
  692.  
  693.      UT=Now
  694.      LONG=90:10:8
  695.      LAT=40:50:20
  696.      HEIGHT=800
  697.      TEMP=50
  698.      PRES=29
  699.      STPSZ=RTC
  700.      PROPTS=TSMevmjsunp
  701.      NSTEP=9999999
  702.      EPOCH=Eod
  703.      PAUSE=30
  704.  
  705.  
  706.      6.  Menu options
  707.  
  708.      When you select "Menu" you can change among the three styles of bottom
  709.      screens. There are also two options that can be set from the Menu quick-
  710.      choice menu. These options toggle when picked and retain their values so
  711.      they need only be changed when desired.
  712.  
  713.      6.1.  Adaptive vs. Standard hzn
  714.  
  715.      This selects the horizon refraction displacement algorithm used by the
  716.      Rise/Set menu.  "Adaptive" uses the local atmospheric conditions known to
  717.      ephem and matches the Planet Info times nicely. "Standard" uses the
  718.      "accepted nominal" horizon refraction value of 32 arc minutes and usually
  719.      agrees, to a minute or so, with published tables.
  720.  
  721.  
  722.  
  723.  
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.                                        - 12 -
  731.  
  732.  
  733.      6.2.  Geocentric vs. Topocentric
  734.  
  735.      This selects the vantage point for the Separation menu. "Geocentric"
  736.      ignores local conditions and gives the separation as seen from Earth
  737.      center. "Topocentric" uses the local conditions known to ephem.  They are
  738.      particularly critical for lunar occultations, but the effect can be
  739.      significant for the planets.
  740.  
  741.      Note that searching over a period that will include the rise or set times
  742.      of either object is generally better performed from the geocentric
  743.      viewpoint.  The refraction effect of the topocentric viewpoint causes many
  744.      arcminutes of rapid whiplash displacement as the objects rise and set that
  745.      overlays the smooth celestial motion of the objects.  This rapid position
  746.      variation can confuse the solver algorithms that expect fairly smooth
  747.      functions.
  748.  
  749.      7.  User Defined Objects: X and Y
  750.  
  751.      You may specify one or two extra objects for ephem to use. The objects may
  752.      be defined in three different ways:  fixed celestial sphere coordinates,
  753.      or heliocentric elliptical or parabolic orbital elements.  Elliptical
  754.      elements are typically useful for periodic comets or asteroids, and
  755.      parabolic elements are for nonrecurring solar system interlopers such as
  756.      aperiodic comets.
  757.  
  758.      The parameters for each type of object are stored separately, so you may
  759.      switch between types of objects without losing parameters.
  760.  
  761.      7.1.  Controlling Object-X or Y Operation
  762.  
  763.      To control the type and the corresponding details for object X or Y,
  764.      select the corresponding row near the bottom.  (Remember that typing the
  765.      character "x" or "y" is a shorthand way to move to the bottom rows.) It
  766.      will bring up a quick-choice menu as follows:
  767.  
  768.      Select: Fixed, Elliptical, Parabolic, Lookup, On
  769.  
  770.  
  771.      When you first enter the quick-choice menu the cursor will start out
  772.      positioned at the field for the current type of object.  The first three
  773.      selections allow you to enter or review the various parameters required to
  774.      define an object's position of such type, one parameter at a time.
  775.  
  776.      You set the current object type and begin to view its parameters by
  777.      positioning the cursor over the type and pressing RETURN.  The prompt for
  778.      each item includes a short description, the units to use, and its current
  779.      setting is shown in parentheses. To leave the item unchanged and go to the
  780.      next item, type RETURN.  If you do not wish to change or see any more
  781.      items about the object then type "q" and you will return immediately to
  782.      the object-X quick-choice menu.
  783.  
  784.      You exit the quick-choice menu by typing "q" while over any field or
  785.      RETURN while over On or Off, as described in a later section.
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.                                        - 13 -
  797.  
  798.  
  799.      As with all dates throughout ephem, the dates for the epochs of perihelion
  800.      and reference epochs may be entered in month/day/year or decimal year
  801.      formats, and the day may be entered as a real number (see the section on
  802.      Date and Time Formats).  All dates given for comet parameters are always
  803.      in UT.
  804.  
  805.      7.1.1.  Fixed
  806.  
  807.      This selection will present a series of five prompts, the name and one
  808.      each for the RA, Dec, magnitude and the reference epoch for the
  809.      coordinates of a fixed object.
  810.  
  811.      7.1.2.  Elliptical
  812.  
  813.      This will begin a series of twelve prompts asking for a name and the
  814.      parameters that define a heliocentric elliptic orbit and the coefficients
  815.      for either of two magnitude models.  These elements are the same ones
  816.      often listed in the Astronomical Almanac.  The elements are, in order:
  817.  
  818.              i = inclination, degrees
  819.              O = longitude of ascending node, degrees
  820.              o = argument of perihelion, degrees
  821.              a = mean distance (aka semi-major axis), AU
  822.              n = daily motion, degrees per day
  823.              e = eccentricity
  824.              M = mean anomaly (ie, degrees from perihelion)
  825.              E = epoch date (ie, time of M)
  826.              D = the equinox year (ie, time of i/O/o)
  827.              g/k or H/G  = either of two magnitude models; see below
  828.  
  829.  
  830.      You might have other parameters available that can be converted into
  831.      these.  For example, we have the following relationships:
  832.  
  833.              P = sqrt(a*a*a)
  834.              p = O + o
  835.              n = 360/days_per_year/P ~ 0.98563/P
  836.              T = E - M/n
  837.              q = a*(1-e)
  838.          where
  839.              P = the orbital period, years;
  840.              p = longitude of perihelion, degrees
  841.              n = daily motion, degrees per day;
  842.              T = epoch of perihelion (add multiples of P for desired range)
  843.              q = perihelion distance, AU
  844.  
  845.      Note that if you know T you can then set E = T and M = 0.
  846.  
  847.      7.1.3.  Parabolic
  848.  
  849.      This will begin a series of nine prompts asking for a name and the
  850.      parameters that define a heliocentric elliptic orbit and the magnitude
  851.      model coefficients.  These orbital parameters are, in order:
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.                                        - 14 -
  863.  
  864.  
  865.      epoch of perihelion,
  866.      inclination,
  867.      argument of perihelion,
  868.      perihelion distance,
  869.      longitude of the ascending node,
  870.      and the reference epoch of the parameters.
  871.      absolute magnitude, g
  872.      luminosity index coefficients, k
  873.  
  874.  
  875.      7.1.4.  Lookup
  876.  
  877.      This option lets you define an object from any of those listed in the
  878.      database file, described in a subsequent section.
  879.  
  880.      If successful, the cursor will move to the type of the new object and it
  881.      becomes the current type.
  882.  
  883.      7.1.5.  On or Off
  884.  
  885.      The last selection on the right toggles the calculations for the object On
  886.      and Off.  It toggles when selected with RETURN and then immediately exits
  887.      the quick-choice menu back to the main menu.  If calculations become On,
  888.      then they will be performed for the current type of object; if they become
  889.      Off the object-X or Y row of information will be erased.
  890.  
  891.      7.2.  Magnitude models
  892.  
  893.      Ephem supports two different magnitude models. One, denoted here as g/k,
  894.      is generally used for comets and may be used for parabolic and elliptical
  895.      objects. The other, denoted H/G, is generally used for asteroids and is
  896.      the one used in the Astronomical Almanac.
  897.  
  898.      7.2.1.  g/k model
  899.  
  900.      This model requires two parameters to be specified.  One, the absolute
  901.      magnitude, g, is the visual magnitude of the object if it were one AU from
  902.      both the sun and the earth.  The other, the luminosity index, k,
  903.      characterizes the brightness change of the object as a function of its
  904.      distance from the sun. This is generally zero, or very small, for inactive
  905.      objects like asteroids.  The model may be expressed as:
  906.  
  907.          m = g + 5*log10(D) + 2.5*k*log10(r)
  908.        where:
  909.          m = resulting visual magnitude;
  910.          g = absolute visual magnitude;
  911.          D = comet-earth distance, in AU;
  912.          k = luminosity index; and
  913.          r = comet-sun distance.
  914.  
  915.      Note that this model does not take into account the phase angle of
  916.      sunlight.
  917.  
  918.      When using this model for elliptical objects, the first of the two
  919.  
  920.  
  921.  
  922.  
  923.  
  924.  
  925.  
  926.  
  927.  
  928.                                        - 15 -
  929.  
  930.  
  931.      magnitude fields must be preceded by a letter "g" in both the ephem.db
  932.      database file and the corresponding quick-choice elliptical object
  933.      definition prompt; otherwise the default is the H/G model.
  934.  
  935.      7.2.2.  H/G model
  936.  
  937.      This model also requires two parameters. The first, H, is the magnitude of
  938.      the object when one AU from the sun and the earth. The other, G, attempts
  939.      to model the reflection characteristics of a passive surface, such as an
  940.      asteroid. The model may be expressed with the following code fragment:
  941.  
  942.          beta = acos((rp*rp + rho*rho - rsn*rsn)/ (2*rp*rho));
  943.          psi_t = exp(log(tan(beta/2.0))*0.63);
  944.          Psi_1 = exp(-3.33*psi_t);
  945.          psi_t = exp(log(tan(beta/2.0))*1.22);
  946.          Psi_2 = exp(-1.87*psi_t);
  947.          m = H + 5.0*log10(rp*rho) - 2.5*log10((1-G)*Psi_1 + G*Psi_2);
  948.        where:
  949.          m   = resulting visual magnitude
  950.          rp  = distance from sun to object
  951.          rho = distance from earth to object
  952.          rsn = distance from sun to earth
  953.  
  954.      Note that this model does not take into account the phase angle of
  955.      sunlight.
  956.  
  957.      7.3.  Database File
  958.  
  959.      You may save a list of objects in a file to be used for setting OBJX and
  960.      OBJY. The default name of this file is ephem.db. You may also set it from
  961.      the command line with the -d option, or set it with the EPHEMDB
  962.      environment variable.
  963.  
  964.      The file consists of one object per line. Lines that begin with an
  965.      asterisk (*) are ignored.  Each line contains several fields, each
  966.      separated by a comma.  The first field is the name of the object.  The
  967.      second field is the type of the object, that is, one of the strings
  968.      "fixed", "elliptical", or "parabolic"; actually, "f", "e" and "p" are
  969.      sufficient.  The remaining fields depend on the type of object.  They are
  970.      exactly the same parameters, and in the same order, as ephem asks for when
  971.      defining the object from the menu.
  972.  
  973.      8.  Plotting
  974.  
  975.      Each time a field is drawn on the screen during a full screen update cycle
  976.      (that as, during automatic looping or a manual "q" command character from
  977.      the main menu but not from a screen redraw from control-l or when an
  978.      individual planet is turned on or a single time field is changed) its
  979.      full-precision value may be written to a file.  This implies you may not
  980.      plot a field from other than the current menu at the time plotting is on.
  981.      You can append several plot runs together, however, if necessary.
  982.  
  983.      Each line in the file consists of a tag character followed by two or three
  984.      floating point variables, all separated by commas. If there are two
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.                                        - 16 -
  995.  
  996.  
  997.      values, they should be interpreted to be x and y (or perhaps r and theta).
  998.      If there is a third, it is a z or trace value.
  999.  
  1000.      For efficiency on systems that can compute a screen full faster than they
  1001.      can display it, screen updates are suppressed while plotting is on and
  1002.      NStep is greater than 1. This can greatly reduce the time to generate a
  1003.      long plot file. Fields are still logged for plotting; they just are not
  1004.      drawn on the screen.
  1005.  
  1006.      The Plot field controls plotting.  Whether plotting is currently active is
  1007.      indicated by "on" or "off" immediately to its right.
  1008.  
  1009.      Picking "Plot" brings up a quick-choice menu, as follows:
  1010.  
  1011.      Select: Select fields, Display a plot file, Cartesian coords, Begin plotting
  1012.  
  1013.  
  1014.      8.1.  Defining plot fields
  1015.  
  1016.      Select the "Select fields" option.  You will be asked to move the cursor
  1017.      to the field you want to use as the x coordinate (abscissa), then asked to
  1018.      choose the y coordinate (ordinate), then asked to choose an optional z
  1019.      trace variable and finally a tag character.  (Of course, you may have in
  1020.      mind fields that are more appropriately displayed in other than Cartesian
  1021.      coordinates, in which case think of x, y and z as dimensions.) If you type
  1022.      q for either x or y then no more fields will be defined.  If you type q
  1023.      for the z field there will be no z field.  You can not label a plot line
  1024.      with the letter "q" at this time.
  1025.  
  1026.      This then repeats so you may choose up to ten of these sets for any given
  1027.      plot run.  Each set defines what will become a line on the final plot.
  1028.      Note that you may select the "Search" field to indicate use of the current
  1029.      search function; that function must be defined by the time plotting is
  1030.      turned on.
  1031.  
  1032.      If you turn plotting off and back on the fields selected for plotting are
  1033.      reactivated the same as they were last time. You may change them if
  1034.      desired, of course, but there is no need to redefine them if you do not
  1035.      wish to change them.
  1036.  
  1037.      8.2.  Displaying a plot file
  1038.  
  1039.      Select the "Display a plot file" option to generate a crude plot on the
  1040.      screen of an existing plot file previously created by ephem.  The entries
  1041.      in the file will be drawn on the screen using their tag characters; the
  1042.      plot remains on the screen until you type any character.
  1043.  
  1044.      The plot may be made in polar or Cartesian coordinates, depending on the
  1045.      setting of the plotting mode in the quick-choice (see next section).
  1046.  
  1047.      8.3.  Cartesian or Polar coords
  1048.  
  1049.      This toggles the plotting mode coordinate system.  The mode remains until
  1050.      changed.  Polar coordinates assume the first numeric field in the plot
  1051.  
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.                                        - 17 -
  1061.  
  1062.  
  1063.      file is the radius, and the second is the angle counterclockwise from
  1064.      right, in degrees.
  1065.  
  1066.      8.4.  Begin Plotting
  1067.  
  1068.      If plot field lines are defined then the third option, "Begin plotting"
  1069.      will be available.  You will be asked for the name of the file to use.  If
  1070.      it already exists you will be asked whether to overwrite it or append to
  1071.      it.  You will also be asked for a title line that will become the next
  1072.      line of the file, automatically prefixed with a "*" to make it a valid
  1073.      comment line.  Once you have chosen a file, plotting is on and the top
  1074.      menu plotting status field changes to "on".  The default plot file name is
  1075.      ephem.plt.  The values are written to the plot file each time they are
  1076.      updated on the screen until you select "Plot" again and select the "Stop"
  1077.      option to turn plotting back off.
  1078.  
  1079.      8.5.  Stopping Plotting
  1080.  
  1081.      If plotting is on, then selecting the Plot field in the top section will
  1082.      turn plotting off. You may pick Plot again and resume with the same fields
  1083.      by selecting "Begin plotting" again.
  1084.  
  1085.      Note that due to internal buffering the plot file will not be completely
  1086.      written to disk until plotting is turned off.
  1087.  
  1088.      9.  Listing
  1089.  
  1090.      This feature works very much like Plotting. However, the fields you select
  1091.      define columns of a table generated as ephem runs. These columns are look
  1092.      exactly like their corresponding fields on the ephem screen and so are far
  1093.      more readable than plot files.
  1094.  
  1095.      See the section on Plotting for an explanation of the quick-choice menu.
  1096.      The general operation is very much the same.
  1097.  
  1098.      10.  Watching
  1099.  
  1100.      You may generate a simple drawing on the screen of the local sky in two
  1101.      forms or the solar system by selecting "Watch".  It will bring up a
  1102.      quick-choice menu as follows:
  1103.  
  1104.      Select: Sky dome, Alt/az sky, Solar system, No trails
  1105.  
  1106.  
  1107.      10.1.  Trails
  1108.  
  1109.      You may either erase after each iteration or leave the tags up, referred
  1110.      to as "trails". Picking the right-most choice will toggle between "No
  1111.      trails" and "Leave trails"; you should set it as desired before you select
  1112.      the style of sky plot you wish.  Ephem will remember your selection.
  1113.  
  1114.  
  1115.  
  1116.  
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.  
  1124.  
  1125.  
  1126.                                        - 18 -
  1127.  
  1128.  
  1129.      10.2.  Sky dome
  1130.  
  1131.      This draws the currently active planets within a circle that represents
  1132.      the locally visible hemisphere.  This is similar to the formats commonly
  1133.      used in the popular astronomy magazines.  East is left, south is down,
  1134.      west is right and north is up.
  1135.  
  1136.      10.3.  Alt/az sky
  1137.  
  1138.      This is a cylindrical projection showing the currently active planets as
  1139.      they would appear in the sky looking southwards at the current time and
  1140.      date.  The coordinate system is such that 0 degrees azimuth (north)
  1141.      through 360 degrees (north, once around) is mapped to the horizontal
  1142.      screen dimension, and 0 degrees altitude (level) through 90 degrees (the
  1143.      zenith) is mapped to the vertical dimension. Thus, the bottom row is the
  1144.      horizon and all across the top is the zenith.
  1145.  
  1146.      10.4.  Solar System
  1147.  
  1148.      This selection draws the currently active planets as they would appear
  1149.      looking "down from the top" of the ecliptic, with the sun at the center
  1150.      and zero hours right ascension towards the right.  The scale is adjusted
  1151.      to roughly fill the screen according to the outer-most active planet.
  1152.      Note that the scaling does not take into account the distances of the user
  1153.      defined objects so, if they don't appear, select a planet that is at least
  1154.      as far out as they are.  The screen transformation assumes a screen aspect
  1155.      width/height ratio of 4/3.  Down the left column of the screen is the
  1156.      heliocentric altitude of the planet above or below the ecliptic, drawn to
  1157.      the same scale as the circular display.  Values so close as to land on the
  1158.      same line are sorted left to right; the S and E symbols always denote
  1159.      heliocentric altitude 0.
  1160.  
  1161.      In each style of display, pressing RETURN advances the time by whatever
  1162.      amount StpSz is set to.  Pressing "h" advances the time by one hour, "d"
  1163.      advances by one day, and "w" advances by one week (seven days).  Pressing
  1164.      "q" returns to the watch quick-choice menu from which you may select
  1165.      another display style or return to the main tabular display by typing
  1166.      another "q".  Pressing any other key starts an automatic loop with each
  1167.      step advancing by StpSz; pressing any key stops the looping.
  1168.  
  1169.      As symbols are placed, collisions (overstrikes) are avoided by moving
  1170.      characters in such a way as to maintain increasing sorted order towards
  1171.      the right.
  1172.  
  1173.      When you return to the main menu, the last watched time will be maintained
  1174.      as the current time.  The StpSz is not changed.
  1175.  
  1176.      11.  Searching
  1177.  
  1178.      Ephem can search for arbitrary conditions to exist among most displayed
  1179.      fields.  You first enter a function, then select from among three forms of
  1180.      equation solvers to iteratively solve for the next time when the function
  1181.      meets the requirements of the solver. The solver selects the next time for
  1182.      which it wants the function evaluated and sets StpSz so that the next
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.                                        - 19 -
  1193.  
  1194.  
  1195.      iteration will occur at that time. The solvers continue to iterate until
  1196.      either they achieve their goal or NStep reaches 0.
  1197.  
  1198.      You may set NStep to be quite large and let ephem search unattended or set
  1199.      it to 1 and watch it converge one step at a time. You may also plot at the
  1200.      same time as search to record the exact steps ephem took to converge.
  1201.      (But recall that screen updates are suppressed if plotting is also on).
  1202.  
  1203.      The "Search" selection in the top half of the screen controls all
  1204.      searching.  Picking it brings up a quick-choice menu as follows:
  1205.  
  1206.      Select: Find extreme, Find 0, Binary, New function, Accuracy
  1207.  
  1208.  
  1209.      11.1.  Find extreme
  1210.  
  1211.      This search algorithm searches for a local maximum or a minimum in the
  1212.      search function, whichever it finds first. It begins by evaluating the
  1213.      search function at the current time then for two more times each separated
  1214.      by StpSz. It then fits these three points to a parabola and solves it for
  1215.      the time of its maximum (or minimum). StpSz is set so that the next
  1216.      iteration will evaluate at this point.  This parabolic fit solution keeps
  1217.      repeating until StpSz changes by less than the desired accuracy or until
  1218.      the curve becomes so flat that an extrema appears too broad to find.
  1219.  
  1220.      11.2.  Find 0
  1221.  
  1222.      This search algorithm uses the secant method to solve for the time at
  1223.      which the search function is zero. The function is evaluated at the
  1224.      current time and then again StpSz later to establish a slope for which the
  1225.      x-intercept is found as the next zero guess. This is used to set StpSz for
  1226.      the next desired time value and the slope hunting process repeats until
  1227.      StpSz changes by less than the desired accuracy.
  1228.  
  1229.      11.3.  Binary
  1230.  
  1231.      This search algorithm must be used with a search function that yields a
  1232.      boolean result, ie, a true or false value. The idea is that the function
  1233.      is assumed to be one truth value when evaluated at the present time, and
  1234.      the opposite truth value when it is evaluated StpSz later. The algorithm
  1235.      will then do a binary search for the time when the truth value changes.
  1236.  
  1237.      The binary algorithm does not begin until the state change is bounded in
  1238.      time.  Initially, as long as the truth value at StpSz is the same as the
  1239.      previous value the algorithm will just keep moving in time by StpSz
  1240.      looking for when the state changes.  That is, a linear search is initiated
  1241.      to bound the state change, then the binary search proceeds.
  1242.  
  1243.      11.4.  Define a New function
  1244.  
  1245.      Select "New function" to display the current search function.  If you type
  1246.      "q" it will be left unchanged.  If you type RETURN it will be erased.  If
  1247.      you type anything else it will be compiled and, if there are no errors, it
  1248.      will become the new search function.  Once a valid function has been
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257.  
  1258.                                        - 20 -
  1259.  
  1260.  
  1261.      stored, it will remain unless changed.  If a search function is selected
  1262.      and there is as yet no valid search function defined, you will
  1263.      automatically be asked to enter one as though you had selected "New
  1264.      function."
  1265.  
  1266.      A search function consists of intrinsic functions, field-specifiers,
  1267.      constants and operators, and precedence may be overridden with
  1268.      parentheses.
  1269.  
  1270.  
  1271.      11.4.1.  Intrinsic functions
  1272.  
  1273.      In this release, the only intrinsic function available is abs(), which
  1274.      returns the absolute value of its argument.
  1275.  
  1276.      11.4.2.  Field Specifiers
  1277.  
  1278.      A field in the bottom half of the menu is specified in the form of
  1279.      "object_name.column_name". The object_name is enough of the planet name to
  1280.      be unique; use "x" or "y" for the user-specified object X or Y.  The
  1281.      column_name is from the following table, depending on which menu is up. In
  1282.      all cases additional characters may be entered but are ignored.
  1283.  
  1284.      Planet Data Menu        Rise/Set Menu               Separation Menu
  1285.      ------------------      --------------------        ---------------
  1286.      al      Alt             hr      Hrs Up, or          j       Jup
  1287.      az      Az              hu      Hrs Up              ma      Mars
  1288.      d       Dec             raz     Rise Az             me      Merc
  1289.      ed      Ea Dst          rt      Rise Time           mo      Moon
  1290.      el      Elong           saz     Set Az              n       Nep
  1291.      hla     Helio Lat       st      Set Time            pl      Pluto
  1292.      hlo     Helio Long      ta      Transit Alt         sa      Saturn
  1293.      ph      Phs             tt      Transit Time        su      Sun
  1294.      ra      R.A.                                        u       Uranus
  1295.      sd      Sn Dst                                      ve      Venus
  1296.      si      Size
  1297.      vm      VMag
  1298.  
  1299.  
  1300.      In addition, the following top-half fields may be used:
  1301.  
  1302.      da      Dawn
  1303.      du      Dusk
  1304.      n       NiteLn
  1305.  
  1306.  
  1307.  
  1308.      Remember, searching may only involve fields being calculated for display
  1309.      at the time the solver is active.  While you can syntactically include any
  1310.      field in a search function it is useless to define a search that uses
  1311.      fields from other than the menu that is selected at the time the search is
  1312.      running.
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.                                        - 21 -
  1325.  
  1326.  
  1327.      11.4.3.  Constants
  1328.  
  1329.      Constants may be integers or floating point numbers. The latter may be
  1330.      expressed in scientific notation if desired. Examples include 100, .9,
  1331.      1.234, 1e10 and 1.2e-4.  Any number may be preceded by - to make it
  1332.      negative.
  1333.  
  1334.      11.4.4.  Operators
  1335.  
  1336.      The collection of arithmetic, relational and boolean operators provided
  1337.      mimics those of C language as listed in the following table, in decreasing
  1338.      order of precedence.  Operators grouped together have the same precedence
  1339.      and all have left-to-right associativity. Parentheses may be used as
  1340.      desired.
  1341.  
  1342.      Symbol  Meaning                 Resulting type
  1343.      ------  --------------------    --------------
  1344.      *       multiply                arithmetic
  1345.      /       divide                  arithmetic
  1346.  
  1347.      +       add                     arithmetic
  1348.      -       subtract                arithmetic
  1349.  
  1350.      >       greater than            boolean
  1351.      >=      greater than or equal   boolean
  1352.      <       less than               boolean
  1353.      <=      less than or equal      boolean
  1354.  
  1355.      ==      equality                boolean
  1356.      !=      inequality              boolean
  1357.  
  1358.      &&      logical and             boolean
  1359.  
  1360.      ||      logical or              boolean
  1361.  
  1362.  
  1363.      11.5.  Specifying Search Accuracy
  1364.  
  1365.      Selecting "Accuracy" allows you to specify when the search will stop.  The
  1366.      search algorithms will stop when StpSz becomes equal to or less than this
  1367.      value. The default is one minute.  If ephem has not yet converged to the
  1368.      specified accuracy but NStep has decremented to 1, the searching will stop
  1369.      but the search status field will still indicate which search procedure is
  1370.      in effect. To try more iterations you may increase NStep and resume
  1371.      searching. If the accuracy was achieved, the search status field will
  1372.      switch to "off" with the number of "unused" steps remaining in NStep and
  1373.      the last step size in the StpSz fields.
  1374.  
  1375.      11.6.  Stop
  1376.  
  1377.      If searching is on, this option will also appear on the quick-choice menu
  1378.      and may be selected to turn off the search.
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386.  
  1387.  
  1388.  
  1389.  
  1390.                                        - 22 -
  1391.  
  1392.  
  1393.      11.7.  Example Searches
  1394.  
  1395.      As an example, let's find when Pluto again becomes the furthest planet
  1396.      from Sol.  You may find when the difference in their sun distance is zero,
  1397.      or you might use a binary search on the condition that Pluto's sun
  1398.      distance is larger then Neptune's.
  1399.  
  1400.      To try the former approach select Search, select "Find 0", specify the
  1401.      search function to be:
  1402.  
  1403.      pl.sd - nep.sd
  1404.  
  1405.      set StpSz to something large like 10d, NStep to allow several iterations
  1406.      like 20, and then type "q" to start the search and watch ephem do the
  1407.      hunt.  Ephem will settle on about 21:02 1/10/1999 UT.
  1408.  
  1409.      To try a binary search, you first need to have some idea of when the event
  1410.      will occur so you can eliminate the initial linear search for the state
  1411.      change. We can start at, say, 1/1/1999, set StpSz to 30d, select Binary
  1412.      search, specify the search function to be:
  1413.  
  1414.      pl.sd > nep.sd
  1415.  
  1416.      and go. Once it brackets the state change note how StpSz keeps being cut
  1417.      in half but can go in either direction (sign) as it divides each interval
  1418.      in half.  Ephem will converge on the same answer.
  1419.  
  1420.      11.8.  Another Example
  1421.  
  1422.      To find the time of last quarter moon during December, 1989, use the "Find
  1423.      0" search algorithm to solve "moon.el + 90".  (At last quarter, the moon
  1424.      is 90 degrees west of the sun, or -90 east in ephem's elongation display.)
  1425.      Set the initial time to mid-month, 12/15/1989, StpSz to 1 day and NStep to
  1426.      10. Ephem takes only a few iterations to settle on 23:57 12/19 UT.
  1427.  
  1428.      11.9.  Caution
  1429.  
  1430.      Beware that most celestial phenomena are generally pseudo-periodic in
  1431.      nature.  In early search steps ephem can easily skip over a local maxima
  1432.      and find a later one, which, while correct, may not be what was desired.
  1433.      In general, the closer you can be when you start the search the better
  1434.      ephem can refine it; it is not as good with very broad searches that can
  1435.      go "wild". Set StpSz large enough to offer significant change in the
  1436.      function value, but small enough not to skip too far.
  1437.  
  1438.      For example, Saturn and Neptune had three close approaches during 1989.
  1439.      If you did not know this then just asking ephem to find a minimum would
  1440.      have produced different results depending on the starting conditions.
  1441.      When starting a search for a certain class of event it is a good idea to
  1442.      first use the plotting or watching facility of ephem to get a broad
  1443.      picture of the general circumstances then use ephem's search facility to
  1444.      refine a given region (or create and inspect a plot file and do your own
  1445.      interpolation directly from it separately).
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.                                        - 23 -
  1457.  
  1458.  
  1459.      Similarly, ephem's searching techniques are not good for eclipses because
  1460.      the moon and sun are close every month; the trick is sorting through the
  1461.      frequent conjunctions for ones that are particularly close. One needs a
  1462.      way of establishing an envelope fit to the local extrema of a cyclic
  1463.      function in order to find a more global extreme.
  1464.  
  1465.      12.  Implementation Notes
  1466.  
  1467.      Remember that everything is for the current local time and day. So, for
  1468.      example, the calendar marks moon events in local time; commercial
  1469.      calendars usually mark the UT date.  Similarly, the rise/set times are for
  1470.      the current local day.
  1471.  
  1472.      The program uses a horizontal plane tangent to the earth as the horizon
  1473.      for all altitude calculations, rise/set events, etc.  This is not the same
  1474.      as the angle up from the local horizon unless the observer is directly on
  1475.      the ground due to earth's curvature.  The effect can be found from:
  1476.  
  1477.              sin(a)**2 = (h**2 + 2Rh) / (R+h)**2
  1478.          where:
  1479.              R = radius of earth
  1480.              h = height above ground (same units as R)
  1481.              a = increase in altitude
  1482.  
  1483.      For example, the effect is more than two arc minutes at a height of 5
  1484.      feet.
  1485.  
  1486.      Visual magnitudes are not very accurate ... I haven't bothered to fix.
  1487.  
  1488.      The accuracy of ephem can not be specifically stated since the Duffett-
  1489.      Smith book does not warrant its planet position polynomials to any given
  1490.      degree. I know for sure that better accuracy could be achieved if ephem
  1491.      used TDT but I have not yet decided on a suitable algorithm.  Allowing for
  1492.      this manually, (see the Wish List section) comparisons with the
  1493.      Astronomical Almanac are often within a few arcseconds.
  1494.  
  1495.      The program uses double precision throughout. While this precision might
  1496.      seem a little ridiculous, it is actually more efficient for most
  1497.      traditional K&R C compilers and the search functions seem to be are far
  1498.      more stable.
  1499.  
  1500.      Searching and plotting always use full precision but if neither of these
  1501.      are turned on pure display and watching only recompute a given planets new
  1502.      location if the time has changed enough to effect the required display
  1503.      precision, based on the planets mean apparent orbital motion.
  1504.  
  1505.      The sun-moon distance is the solution for the third side of a planar
  1506.      triangle whose two other sides are the earth-moon distance and earth-sun
  1507.      distance separated by the angle of elongation.
  1508.  
  1509.      Beware of specifying a year of 0, or of computing with the user-defined
  1510.      objects before they are properly defined. These conditions can cause ephem
  1511.      to blow.
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.                                        - 24 -
  1523.  
  1524.  
  1525.      12.1.  Program limits
  1526.  
  1527.      The search function is limited to a maximum of 32 instructions (each
  1528.      constant, field spec, and operation is one instruction), with no more than
  1529.      a total of 16 constants and field specs. At run time, the function can not
  1530.      require more than 16 stacked values (due to operator precedence or
  1531.      explicit parenthetical expressions) to evaluate.
  1532.  
  1533.      No more than 32 different fields can be tracked simultaneously for
  1534.      plotting and/or searching.
  1535.  
  1536.      No more than 10 lines may be plotted at once.
  1537.  
  1538.      The maximum file name length is 14 characters.
  1539.  
  1540.      13.  DOS Installation Procedure
  1541.  
  1542.      You must be running DOS V2.0 or later, though somewhere between V2.0 and
  1543.      V3.21 the behavior of control-c to terminate the program was fixed.  An
  1544.      8087 floating point chip will be used if present.
  1545.  
  1546.      The distribution floppy contains five files:
  1547.      README describes last minute items and details of this release.
  1548.      MAN.TXT is this manual, hopefully formatted and printable on most any
  1549.      printer.
  1550.      EPHEM.EXE is the executable program.
  1551.      EPHEM.CFG is a sample configuration file.
  1552.      EPHEM.DB is a sample database.
  1553.      To run the program, make working copies of these files in a directory and
  1554.      run "ephem" from that directory.
  1555.  
  1556.      13.1.  Setting TZ
  1557.  
  1558.      Before running ephem, you should set a DOS environment variable, TZ.  It
  1559.      is is used to establish the timezone name and hours offset whenever the
  1560.      "Now" shorthand is used from ephem, either from the configuration startup
  1561.      file or whenever any time field is changed manually.  Set it in the
  1562.      following form:
  1563.  
  1564.           set TZ=SSSnDDD
  1565.  
  1566.      where
  1567.  
  1568.      SSS  is the 3-letter abbreviation for the local standard timezone;
  1569.  
  1570.      n    is a number between -23 to 24 indicating the number of hours that are
  1571.           subtracted from GMT to obtain local standard time;
  1572.  
  1573.      DDD  is an optional 3-letter abbreviation for the local daylight savings
  1574.           time zone name. Leave it off if you do not have savings time in your
  1575.           area or it is not currently in effect. If the changeover dates differ
  1576.           from the internal algorithm, just use SSS and n directly.
  1577.  
  1578.      For example, in the midwestern United States with savings times set
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.  
  1587.  
  1588.                                        - 25 -
  1589.  
  1590.  
  1591.      TZ=CST6CDT
  1592.  
  1593.      If for some reason your system does not change to savings time at the
  1594.      right time, then omit the DDD parameter and just set the SSS and n to
  1595.      exactly what you want.
  1596.  
  1597.      You can put this in your AUTOEXEC.BAT file so it gets set each time you
  1598.      boot DOS.
  1599.  
  1600.      14.  Known Bugs and Wish List
  1601.  
  1602.      incorporate Terrestrial Dynamical Time (known as Ephemeris Time prior to
  1603.      1984).  TDT is about 57 seconds ahead of UT1 in 1990.
  1604.  
  1605.      it's too easy to turn on objx/y before it's defined and bomb out.
  1606.  
  1607.      add explicit searching for eclipses and occultations.
  1608.  
  1609.      in watch mode, RTC reverts back to being based off the time when watch was
  1610.      first entered.
  1611.  
  1612.      add a facility (or tool) to find g/k from a set of observed magnitudes.
  1613.  
  1614.      find a better precession algorithm; current one exhibits some hysteresis
  1615.      and isn't all that accurate in general.
  1616.  
  1617.      add search criteria for database objects.
  1618.  
  1619.      add plot options to reverse x and/or y direction.
  1620.  
  1621.      handle year 0 properly.
  1622.  
  1623.      add moons.
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.  
  1652.  
  1653.  
  1654.                                        - 26 -
  1655.  
  1656.  
  1657.      15.  Sample Screens
  1658.  
  1659.      Here are sample ephem screens. They are generated using the first sample
  1660.      ephem.cfg file (listed in the section describing the configuration file).
  1661.      There is one for each of the three possible screen formats.  The rise/set
  1662.      screen was done using the Adaptive option.  The separations screen was
  1663.      done using the Topocentric option.
  1664.  
  1665. Move to another field, RETURN to change this field, ? for help, or q to run
  1666.  
  1667. CDT 19:00:00  4/30/1990 | LST    8:19:50 | Lat   44:50:37 |      April 1990
  1668. UTC  0:00:00  5/01/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
  1669. JulianDat 2448012.50000 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
  1670. Watch                   | Dusk     22:15 | Temp      40 F |  8 FM 10 11 12 13 14
  1671. Listing             off | NiteLn    5:55 | AtmPr 29.50 in | 15 16 17 18 19 20 21
  1672. Search              off |                | TZ     5:00:00 | 22 23 NM 25 26 27 28
  1673. Plot                off | NStep        1 | Epoch   2000.0 | 29 30
  1674. Menu        Planet Data | StpSz RT CLOCK | Pause        0 |
  1675. --------------------------------------------------------------------------------
  1676. Ob   R.A.    Dec    Az     Alt  H Long H Lat  Ea Dst Sn Dst Elong  Size VMag Phs
  1677. Su  2:32.3  14:58 278:40  12:38 220:22        1.0075               1905  -27
  1678. Mo  8:09.9  21:11 186:06  65:53 119:55   1:04 234821 1.0071   79.5 1897  -12  44
  1679. Me  2:49.4  17:39 277:48  17:26 214:08   1:43 0.5764 0.4360    4.9 11.7  1.6   1
  1680. Ve 23:49.4  -2:25 296:53 -27:39 282:39  -1:30 0.9288 0.7276  -43.9 18.2 -4.8  64
  1681. Ma 22:39.8 -10:09 308:17 -44:14 297:56  -1:43 1.5438 1.4067  -62.9  6.1  0.3  89
  1682. Ju  6:30.9  23:23 235:13  59:04 106:16   0:08 5.6806 5.1941   56.6 34.6 -2.0  99
  1683. Sa 19:49.6 -20:53  17:24 -65:14 289:45   0:10 9.7077 10.017 -105.0 17.1  1.1 100
  1684. Ur 18:41.9 -23:24  51:18 -60:39 276:55  -0:18 18.864 19.401 -120.9  3.5  5.6 100
  1685. Ne 19:03.2 -21:46  40:51 -62:01 282:48   0:51 29.754 30.207 -115.8  2.1  7.9 100
  1686. Pl 15:14.8  -1:26  81:18 -10:37 226:18  15:28 28.693 29.658 -162.9  0.3 13.6 100
  1687. X   0:08.3  36:01 316:59   5:58 238:20  26:29 0.5622 0.6657  -38.4       1.5  33
  1688. Y  15:22.9  -2:40  80:43 -12:54 226:17  10:49 2.3635 3.3381 -162.5      10.1100
  1689.  
  1690.  
  1691.  
  1692.  
  1693.  
  1694.  
  1695.  
  1696.  
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.                                        - 27 -
  1721.  
  1722.  
  1723. Move to another field, RETURN to change this field, ? for help, or q to run
  1724.  
  1725. CDT 19:00:00  4/30/1990 | LST    8:19:50 | Lat   44:50:37 |      April 1990
  1726. UTC  0:00:00  5/01/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
  1727. JulianDat 2448012.50000 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
  1728. Watch                   | Dusk     22:15 | Temp      40 F |  8 FM 10 11 12 13 14
  1729. Listing             off | NiteLn    5:55 | AtmPr 29.50 in | 15 16 17 18 19 20 21
  1730. Search              off |                | TZ     5:00:00 | 22 23 NM 25 26 27 28
  1731. Plot                off | NStep        1 | Epoch   2000.0 | 29 30
  1732. Menu      Rise/Set Info | StpSz RT CLOCK | Pause        0 |
  1733. --------------------------------------------------------------------------------
  1734. Ob  Rise Time    Rise Az  Trans Time  Trans Alt  Set Time    Set Az    Hours Up
  1735. Su     6:05       67:48     13:12       60:01     20:20      292:28     14:15
  1736. Mo    10:54       57:14     18:49       66:01      1:56      304:46     15:02
  1737. Me     6:13       63:34     13:30       62:51     20:47      296:04     14:34
  1738. Ve     4:35       93:02     10:29       42:33     16:23      267:14     11:48
  1739. Ma     3:57      103:53      9:20       34:52     14:43      256:17     10:45
  1740. Ju     9:24       54:59     17:11       68:33      1:00      305:01     15:36
  1741. Sa     1:56      119:18      6:31       24:17     11:06      240:42      9:10
  1742. Ur     1:01      123:08      5:24       21:47      9:46      236:52      8:45
  1743. Ne     1:14      120:39      5:45       23:24     10:16      239:21      9:02
  1744. Pl    19:55       91:11      1:57       43:46      7:55      268:48     12:00
  1745. X      1:41       32:26     10:51       81:10     20:00      327:20     18:19
  1746. Y     20:08       92:55      2:06       42:28      7:59      267:01     11:50
  1747.  
  1748.  
  1749. Move to another field, RETURN to change this field, ? for help, or q to run
  1750.  
  1751. CDT 19:00:00  4/30/1990 | LST    8:19:50 | Lat   44:50:37 |      April 1990
  1752. UTC  0:00:00  5/01/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
  1753. JulianDat 2448012.50000 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
  1754. Watch                   | Dusk     22:15 | Temp      40 F |  8 FM 10 11 12 13 14
  1755. Listing             off | NiteLn    5:55 | AtmPr 29.50 in | 15 16 17 18 19 20 21
  1756. Search              off |                | TZ     5:00:00 | 22 23 NM 25 26 27 28
  1757. Plot                off | NStep        1 | Epoch   2000.0 | 29 30
  1758. Menu        Separations | StpSz RT CLOCK | Pause        0 |
  1759. --------------------------------------------------------------------------------
  1760. Ob  Sun  Moon   Merc  Venus  Mars   Jup    Sat  Uranus  Nep  Pluto    X     Y
  1761. Su        79:32   4:52 43:59  62:55 56:31   105:  121:   116:  163:  38:21  162:
  1762. Mo  79:32        74:49  124:   142: 23:01   175:  160:   164:  106:  99:52  108:
  1763. Me   4:52 74:49        48:43  67:39 51:50   110:  126:   121:  163:  39:57  163:
  1764. Ve  43:59  124:  48:43        18:56  100:  61:09 77:00  71:58  129:  38:49  126:
  1765. Ma  62:55  142:  67:39 18:56         119:  42:14 58:04  53:04  111:  50:48  108:
  1766. Ju  56:31 23:01  51:50  100:   119:         162:  177:   172:  128:  80:40  130:
  1767. Sa   105:  175:   110: 61:09  42:14  162:        15:52  10:50 69:37  83:36 67:17
  1768. Ur   121:  160:   126: 77:00  58:04  177:  15:52         5:11 54:43  97:18 52:21
  1769. Ne   116:  164:   121: 71:58  53:04  172:  10:50  5:11        59:06  92:24 56:46
  1770. Pl   163:  106:   163:  129:   111:  128:  69:37 54:43  59:06         125:  2:22
  1771. X   38:21 99:52  39:57 38:49  50:48 80:40  83:36 97:18  92:24  125:         124:
  1772. Y    162:  108:   163:  126:   108:  130:  67:17 52:21  56:46  2:22   124:
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.                            Ephem V4.20 - August 21, 1990
  1790.  
  1791.                     Copyright (c) 1990 by Elwood Charles Downey
  1792.                                Chaska, Minnesota, USA
  1793.  
  1794.                                   downey@dimed.com
  1795.  
  1796.  
  1797.                                  Table of Contents
  1798.       1.  Introduction ...................................................  3
  1799.       2.  Running Ephem ..................................................  3
  1800.       2.1.  Command Line Format ..........................................  3
  1801.       2.2.  Program Operation ............................................  4
  1802.       3.  Screen Fields ..................................................  5
  1803.       3.1.  Top Screen Fields ............................................  6
  1804.       3.2.  Data format columns ..........................................  7
  1805.       3.3.  RiseSet format columns .......................................  8
  1806.       3.4.  Separation format fields .....................................  8
  1807.       4.  Date and Time Formats ..........................................  8
  1808.       5.  Configuration File .............................................  9
  1809.       5.1.  Configuration File fields ....................................  9
  1810.       5.2.  Example ephem.cfg ............................................ 11
  1811.       6.  Menu options ................................................... 11
  1812.       6.1.  Adaptive vs. Standard hzn .................................... 11
  1813.       6.2.  Geocentric vs. Topocentric ................................... 12
  1814.       7.  User Defined Objects: X and Y .................................. 12
  1815.       7.1.  Controlling Object-X or Y Operation .......................... 12
  1816.       7.1.1.  Fixed ...................................................... 13
  1817.       7.1.2.  Elliptical ................................................. 13
  1818.       7.1.3.  Parabolic .................................................. 13
  1819.       7.1.4.  Lookup ..................................................... 14
  1820.       7.1.5.  On or Off .................................................. 14
  1821.       7.2.  Magnitude models ............................................. 14
  1822.       7.2.1.  g/k model .................................................. 14
  1823.       7.2.2.  H/G model .................................................. 15
  1824.       7.3.  Database File ................................................ 15
  1825.       8.  Plotting ....................................................... 15
  1826.       8.1.  Defining plot fields ......................................... 16
  1827.       8.2.  Displaying a plot file ....................................... 16
  1828.       8.3.  Cartesian or Polar coords .................................... 16
  1829.       8.4.  Begin Plotting ............................................... 17
  1830.       8.5.  Stopping Plotting ............................................ 17
  1831.       9.  Listing ........................................................ 17
  1832.       10.  Watching ...................................................... 17
  1833.       10.1.  Trails ...................................................... 17
  1834.       10.2.  Sky dome .................................................... 18
  1835.       10.3.  Alt/az sky .................................................. 18
  1836.       10.4.  Solar System ................................................ 18
  1837.       11.  Searching ..................................................... 18
  1838.       11.1.  Find extreme ................................................ 19
  1839.       11.2.  Find 0 ...................................................... 19
  1840.       11.3.  Binary ...................................................... 19
  1841.       11.4.  Define a New function ....................................... 19
  1842.       11.4.1.  Intrinsic functions ....................................... 20
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.                                        - 2 -
  1853.  
  1854.  
  1855.       11.4.2.  Field Specifiers .......................................... 20
  1856.       11.4.3.  Constants ................................................. 21
  1857.       11.4.4.  Operators ................................................. 21
  1858.       11.5.  Specifying Search Accuracy .................................. 21
  1859.       11.6.  Stop ........................................................ 21
  1860.       11.7.  Example Searches ............................................ 22
  1861.       11.8.  Another Example ............................................. 22
  1862.       11.9.  Caution ..................................................... 22
  1863.       12.  Implementation Notes .......................................... 23
  1864.       12.1.  Program limits .............................................. 24
  1865.       13.  DOS Installation Procedure .................................... 24
  1866.       13.1.  Setting TZ .................................................. 24
  1867.       14.  Known Bugs and Wish List ...................................... 25
  1868.       15.  Sample Screens ................................................ 26
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891.  
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908.  
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.                                        - 3 -
  1919.  
  1920.  
  1921.      1.  Introduction
  1922.  
  1923.      Ephem is a program that displays ephemerides for all the planets plus any
  1924.      two additional objects.  The additional objects may be fixed or specified
  1925.      via heliocentric elliptical or parabolic orbital elements to accommodate
  1926.      solar system objects such as comets or asteroids.
  1927.  
  1928.      Information displayed about each object includes RA and Dec precessed to
  1929.      any epoch, heliocentric coordinates, local azimuth and altitude, distance
  1930.      from sun and earth, solar elongation, angular size, visual magnitude,
  1931.      illumination percentage, local rise, transit and set times, length of time
  1932.      up, and topocentric or geocentric angular separations between all
  1933.      combinations of objects.
  1934.  
  1935.      Observing circumstance information includes UTC and local date and time,
  1936.      local sidereal time, times of astronomical twilight, length of day and
  1937.      night, local temperature, pressure and height above sea level for the
  1938.      refraction model and a monthly calendar.
  1939.  
  1940.      RA/Dec calculations are geocentric and include the effects of light travel
  1941.      time, nutation, aberration and precession.  Alt/az and rise/set/transit
  1942.      and, optionally, angular separation calculations are topocentric and
  1943.      include the additional effects of parallax and refraction.
  1944.  
  1945.      Plot and listing files of selected field values may be generated as the
  1946.      program runs.  The plot files are full precision floating point values in
  1947.      ASCII intended for input to other plotting programs.  The listing files
  1948.      are tables formatted for general reading.  Ephem includes simple quick-
  1949.      look facilities to view these files.
  1950.  
  1951.      One may watch the sky or the solar system with a simple screen-oriented
  1952.      display.
  1953.  
  1954.      Ephem may be asked to search for interesting conditions automatically,
  1955.      using several algorithms. Most fields displayed on the screen may be used
  1956.      as terms in an arbitrary arithmetic expression that can be solved for zero
  1957.      or minimized or maximized, or the time of state change of any boolean
  1958.      expression can be found.
  1959.  
  1960.      The program is written in C for unix or DOS. It uses only a very simple
  1961.      set of io routines and should be easily ported to any ASCII display.
  1962.  
  1963.      The planetary data and correction algorithms are taken, with permission,
  1964.      from "Astronomy With Your Personal Computer", by Peter Duffett-Smith,
  1965.      Cambridge University Press, 1985.
  1966.  
  1967.      2.  Running Ephem
  1968.  
  1969.  
  1970.      2.1.  Command Line Format
  1971.  
  1972.      To run ephem, just type "ephem".  You may also specify an alternate
  1973.      configuration file, an alternate database file, and specify initial values
  1974.      for several screen fields.  The command line syntax can be summarized as
  1975.  
  1976.  
  1977.  
  1978.  
  1979.  
  1980.  
  1981.  
  1982.  
  1983.  
  1984.                                        - 4 -
  1985.  
  1986.  
  1987.      follows:
  1988.  
  1989.          ephem [-c <config_file>] [-d <database_file>] [field=value  ...]
  1990.  
  1991.  
  1992.      The default configuration file is named ephem.cfg in the current
  1993.      directory.  Ephem also looks for one named by the EPHEMCFG environment
  1994.      variable, if it is set. You may specify an arbitrary name with the -c
  1995.      option.
  1996.  
  1997.      The default database file is named ephem.db in the current directory.
  1998.      Ephem also looks for one named by the EPHEMDB environment variable, if it
  1999.      is set. You may specify an arbitrary name with the -d option.
  2000.  
  2001.      The exact format of these files is described below.
  2002.  
  2003.      Any additional command line arguments are treated exactly as if they too
  2004.      came from the configuration file.
  2005.  
  2006.      2.2.  Program Operation
  2007.  
  2008.      When ephem starts, it first displays a disclaimer banner.  Then, after any
  2009.      key is pressed, it reads the configuration file and processes the command
  2010.      line arguments to set the initial values of several fields, accessing the
  2011.      database file if OBJX or OBJY is set, It then draws all fields on the
  2012.      screen with their initial values.  The program then loops advancing time
  2013.      each step, by some amount you may control, and updating all fields each
  2014.      loop.
  2015.  
  2016.      There are three fields that control this looping behavior.  NStep controls
  2017.      the number of steps, StpSz the amount of time to add each step, and Pause
  2018.      is the amount of real seconds to pause between steps.  Ephem does not
  2019.      pause between steps when plotting or searching is on.  When the number of
  2020.      steps, NStep, goes to 0 or any key is pressed, the looping stops and you
  2021.      enter a command mode.
  2022.  
  2023.      Command mode allows you to modify most of the fields.  The idea is that
  2024.      you move to each field on the screen you wish to change and change it.
  2025.      When you have changed everything you want to, type "q" to resume screen
  2026.      updates.
  2027.  
  2028.      To change a field:
  2029.  
  2030.          1) move the cursor to the field (see below);
  2031.          2) type RETURN;
  2032.          3) type in the new value along the command line at the top according
  2033.             to the format indicated in the prompt. To accept the new value
  2034.             type RETURN, or to leave it unchanged after all type "q".
  2035.  
  2036.  
  2037.      A few fields don't require you to type anything; just typing RETURN does
  2038.      all the work.  If you can't move to it, you can't change it.
  2039.  
  2040.      The arrow keys on most systems move the cursor around.  If these do not
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.                                        - 5 -
  2051.  
  2052.  
  2053.      function or function incorrectly, the h/j/k/l keys also move the cursor
  2054.      left/down/up/right, respectively.  Motions off any edge of the screen will
  2055.      wrap around.
  2056.  
  2057.      Several "hot-keys" move the cursor immediately to frequently used fields.
  2058.      You may move the cursor immediately to a planet row by typing one of the
  2059.      characters SMevmjsunpxy.  To avoid conflict with j, jupiter's row must
  2060.      actually be typed as control-j.  "x" and "y" are for the user-defined
  2061.      objects X and y on the bottom rows.  Also, the characters c, d, o, w, L
  2062.      and z move you to the Menu, UT Date, Epoch, Watch, Listing and StpSz
  2063.      fields immediately.
  2064.  
  2065.      When you have changed a field that would invalidate any of the other
  2066.      fields the message NEW CIRCUMSTANCES appears in the top center of the
  2067.      screen.  This will remain until you type "q" to allow at least one screen
  2068.      update loop to occur.  If you change any field that causes new
  2069.      circumstances, the StpSz value is not added to the first loop.  Note also
  2070.      that after a series of loops, NStep is automatically reset to 1 so "q"
  2071.      will do exactly one loop and return you to command mode.
  2072.  
  2073.      On some systems, you may temporarily escape from ephem while in command
  2074.      mode to run your operating system's command interpretor. This is done by
  2075.      typing an exclamation point (!) followed by your command.  When the
  2076.      command completes, you will return back to ephem where you left off.
  2077.  
  2078.      To quit the program, type control-d from command mode.  For a little more
  2079.      help, type ?.  The entire screen may be erased and redrawn with control-l.
  2080.  
  2081.      3.  Screen Fields
  2082.  
  2083.      The screen is divided into two halves, top and bottom.  The top fields are
  2084.      always present. They define the general observing circumstances and
  2085.      control features.
  2086.  
  2087.      The planets and two additional objects are displayed in a table in the
  2088.      bottom portion of the screen.  There is one object per row, and several
  2089.      columns.  There are three forms of this portion selected by picking the
  2090.      Menu selection.
  2091.  
  2092.      Some things may be turned off to reduce compute times.  Calculations for
  2093.      each planet may be turned on and off by selecting the planet name field.
  2094.      Calculations for Dawn/Dusk/NiteLn may be turned off by selecting any of
  2095.      these fields.  Planet positions are only updated as often as necessary to
  2096.      match the display precision of the screen unless plotting or searching is
  2097.      on.  In these cases full precision is desired at all times and so
  2098.      positions are always fully recalculated at each iteration.
  2099.  
  2100.      Follows is a list and description of each of the fields in each section.
  2101.      Following each name a parenthetical "p" indicates the field may be
  2102.      selected for plotting (see later). All fields may be selected for
  2103.      changing.
  2104.  
  2105.  
  2106.  
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.                                        - 6 -
  2117.  
  2118.  
  2119.      3.1.  Top Screen Fields
  2120.  
  2121.      LTZ           the local timezone name.  The name field may be changed to
  2122.                    any three-character mnemonic.
  2123.      LT(p)
  2124.      LD(p)         The local time and date are not labeled as such but are to
  2125.                    the right of the local timezone name.  They are individually
  2126.                    selectable.  Time and date fields may be changed as
  2127.                    described in a later section.  Set to "n" to set to "now"
  2128.                    from computer clock.
  2129.      UT(p)
  2130.      UD(p)         The universally coordinated time and date are not labeled as
  2131.                    such but are to the right of the UTC label.  They are
  2132.                    individually selectable.  Time and date fields may be
  2133.                    changed as described in a later section.  Set to "n" to set
  2134.                    to "now" from computer clock.
  2135.      JulianDat(p)  the current Julian date, to about 1-second accuracy.
  2136.      Listing       controls listing; see complete discussion below.
  2137.      Watch         selects the sky dome, altitude/azimuth sky or solar system
  2138.                    displays; see complete discussion below.
  2139.      Search        controls the automatic search feature of ephem. See the
  2140.                    complete discussion below.
  2141.      Plot          controls plotting; see complete discussion below.
  2142.      Menu          controls which menu is in the bottom half of the screen.
  2143.                    See their complete discussion below.
  2144.      LST(p)        the current local sidereal time.  set to "n" to set from
  2145.                    computer clock.
  2146.      Dawn(p)       local time when the sun center is 18 degrees below the
  2147.                    horizon before sunrise today.
  2148.      Dusk(p)       local time when the sun center is 18 degrees below the
  2149.                    horizon after sunset today.
  2150.      NiteLn(p)     length of astronomical night, ie, Dawn - Dusk.  If this line
  2151.                    is shown as "-----", it means the sun is either always below
  2152.                    or always above approximately -18 degrees altitude on this
  2153.                    particular day.  This and the Dawn and Dusk lines are blank
  2154.                    when their computation has been turned off.
  2155.      NStep         The number of times the display with be updated (time
  2156.                    advanced by StpSz each step) before entering command mode.
  2157.      StpSz         the amount of time UTC (and its derivatives) is incremented
  2158.                    each loop.  set this to "r" to use real-time based on the
  2159.                    computer clock.  you may also set it in terms of days by
  2160.                    appending a "d" after the number when you set it.
  2161.      Lat(p)        location latitude, positive degrees north of equator.
  2162.      Long(p)       location longitude, positive degrees west of Greenwich
  2163.                    meridian.  set to "N" to set from computer clock.
  2164.      Elev(p)       local elevation of the ground above sea level, in feet. (see
  2165.                    implementation notes).
  2166.      Temp(p)       local surface air temperature, in degrees F.
  2167.      AtmPr(p)      local surface air pressure, in inches of mercury.
  2168.      TZ(p)         hours local time is behind utc, ie, positive west or
  2169.                    negative east of Greenwich.
  2170.      Epoch         the epoch, to the nearest 0.1 years, to which the ra/dec
  2171.                    fields are precessed.  This says (OfDate) when coordinates
  2172.                    are not precessed, ie, are in the epoch of date. Set to "e"
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.                                        - 7 -
  2183.  
  2184.  
  2185.                    to set to epoch of date.
  2186.      Pause         number of seconds to pause between screen updates. This is
  2187.                    used mainly to set up for free-running unattended operation.
  2188.                    This pause also applies to free-running "watch" screen
  2189.                    updates.  Pausing is not done when plotting or searching is
  2190.                    on.  If pausing is used with StpSz set to RT CLOCK and the
  2191.                    time was set with Now then ephem attempts to synchronize the
  2192.                    time to an integral multiple of pause seconds after the
  2193.                    minute, for aesthetic reasons.
  2194.      Also in the upper right of the screen is a calendar for the current local
  2195.      month.  Dates of new and full moons are marked NM and FM, respectively.
  2196.  
  2197.      3.2.  Data format columns
  2198.      Ob            name of object.  Select this to toggle the display and
  2199.                    calculations on and off.
  2200.      R.A.(p)       apparent geocentric right ascension of object, precessed to
  2201.                    given epoch, in hours, minutes and decimal minutes.
  2202.      Dec(p)        apparent geocentric declination of object, precessed to
  2203.                    given epoch, in degrees and minutes.
  2204.      Az(p)         degrees eastward of true north for object.
  2205.      Alt(p)        degrees up from a horizontal plane Elev feet above sea
  2206.                    level.
  2207.      H Long(p)     true heliocentric longitude, in degrees.  Earth's is
  2208.                    displayed on the sun's line.  For the moon this is the
  2209.                    geocentric longitude.
  2210.      H Lat(p)      true heliocentric latitude, in degrees.  For the moon this
  2211.                    is the geocentric latitude.
  2212.      Ea Dst(p)     true distance from Earth center to object center, in AU,
  2213.                    except distance to the moon is in miles.
  2214.      Sn Dst(p)     true distance from sun center to object center, in AU.
  2215.      Elong(p)      spherical angular separation between sun and given object,
  2216.                    calculated from the their geocentric ecliptic coordinates.
  2217.                    Note this is not just difference in ecliptic longitude. The
  2218.                    sign, however, is simply sign(obj's longitude - sun's
  2219.                    longitude), ie, degrees east.  thus, a positive elongation
  2220.                    means the object rises after the sun.
  2221.      Size(p)       angular size of object, in arc seconds.
  2222.      VMag(p)       visual magnitude of object.
  2223.      Phs(p)        percent of visible surface in sunlight. Note the moon phase
  2224.                    is calculated simplistically as just abs(elongation)/180*100
  2225.                    which can be a few degrees off... this means that because of
  2226.                    how elongation is defined it doesn't say 0 during new moon
  2227.                    (or 100 during full) except during close eclipses (maybe
  2228.                    that's a "feature"?).
  2229.      Also, some terminals scroll when a character is written to the lower right
  2230.      character position. To avoid this, Object Y's phase is left shifted by one
  2231.      column. This can look particularly ugly when the phase is 100% because the
  2232.      "100" is right next to visual magnitude number.
  2233.      If desired, the angle between Earth and Sun from the object, p, can be
  2234.      computed from the illumination percentage, i, with the following relation:
  2235.  
  2236.          cos (p) = i/50 - 1
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.                                        - 8 -
  2249.  
  2250.  
  2251.      3.3.  RiseSet format columns
  2252.      Rise Time
  2253.      Rise Az       The local time and azimuth when the upper limb of the object
  2254.                    rises today.
  2255.      Transit Time
  2256.      Transit Alt   The local time and altitude when the object crosses the
  2257.                    meridian today, ie, when its azimuth is true south or, if no
  2258.                    precession, when the local sidereal time equals the object's
  2259.                    right ascension.
  2260.      Set Time
  2261.      Set Az        The local time and azimuth when the upper limb of the object
  2262.                    sets today.
  2263.      Hours Up      The number of hours the object is up on the local date.
  2264.  
  2265.      Horizon displacement may be calculated in either of two ways; see the
  2266.      horizon discussion in the Menu selection section.
  2267.  
  2268.      Various oddball conditions are accounted for, including an object that is
  2269.      up sometime during the day but that doesn't rise, transit or set as such
  2270.      on that day, an object that is circumpolar or that is never up or one that
  2271.      rises twice on the same day.  These are marked as "Never rises", "Never
  2272.      transits", "Never sets", "Circumpolar", "Never up" or appended with a plus
  2273.      "+" sign, respectively.
  2274.  
  2275.      3.4.  Separation format fields
  2276.      This format is a table of angular separations between each pair of
  2277.      objects.  These angles are based on the local altitude/azimuth, and so in
  2278.      general differ somewhat from the elongations reported for the sun in the
  2279.      Data menu.
  2280.      Unfortunately, with the format "ddd:mm", there is not enough room for a
  2281.      space between columns when the angle is at least 100 degrees.  To avoid
  2282.      this, I drop the minutes portion if the (rounded) angle is at least 100
  2283.      degrees.
  2284.  
  2285.      4.  Date and Time Formats
  2286.      Times are displayed and entered in h:m:s format.  If you pick a time field
  2287.      to change it any of the h, m, and s components that are not specified are
  2288.      left unchanged from their current value.  For example, 0:5:0 set hours to
  2289.      0, minutes to 5, seconds to 0, whereas :5 sets minutes to 5 but leaves
  2290.      hours and seconds unchanged.  A negative time is indicated by a minus sign
  2291.      (-) anywhere before the first digit.
  2292.  
  2293.      Dates are displayed and entered in American month:day:year format.  As
  2294.      with time, components omitted when entering a new value retain the current
  2295.      value.  For example, if the current date is 10/20/1988 and you type 20/20
  2296.      the new date will become 20/20/1988. Note you must type the full year
  2297.      since the program is accurate over several centuries either side of 1900.
  2298.      If you change the date, the time (ie, partial day) will not change.
  2299.  
  2300.      Two other ways to set the date are supported for compatibility with some
  2301.      published comet ephemerides.  You may enter the day portion as a real
  2302.      number.  When you set the day this way, the time will also change to
  2303.      correspond to the fractional portion of the day.
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.  
  2312.  
  2313.  
  2314.                                        - 9 -
  2315.  
  2316.  
  2317.      You may also enter a date as a decimal year, as in 1990.12345.  This is
  2318.      also useful in interpreting plot files that include a date field, since
  2319.      date fields are stored in plot files as decimal years.  If no decimal
  2320.      point is included, the number is assumed to be a year unless it is in the
  2321.      range 1-12, in which case it will be taken to mean that you are just
  2322.      changing the month of the current date.  To actually specify the years 1 -
  2323.      12, you must append a decimal point to distinguish them from months.
  2324.  
  2325.      As a matter of typing convenience, the program accepts most any character
  2326.      as the separator; you don't have to type a perfect ":" or "/".
  2327.  
  2328.      5.  Configuration File
  2329.      The ephem.cfg configuration file allows you to set the initial values of
  2330.      many of the screen fields. You can still change any field while the
  2331.      program is running too; this file just sets the initial conditions.  Note
  2332.      that the order of entries in this file is important because they each take
  2333.      effect immediately.  You should put them in the same order you wish them
  2334.      to be processed, just as though you were changing the fields interactively
  2335.      within ephem.
  2336.  
  2337.      The default name of the file is ephem.cfg.  Ephem also looks for one named
  2338.      by the EPHEMCFG environment variable (if defined) or you may specify any
  2339.      name using the -c command line option.
  2340.  
  2341.      The format of the file uses the form KEYWORD=VALUE, where the possible
  2342.      KEYWORDS and the types of VALUES for each are described below. Any
  2343.      KEYWORDS not in the file will take on some sort of default. The separator
  2344.      need not be an actual equals sign; any char will do because the VALUE is
  2345.      assumed to start one character after the KEYWORD, regardless.
  2346.  
  2347.      Blank lines and lines that begin with an asterisk (*) or whitespace (space
  2348.      or tab) are ignored and may be used for comments.
  2349.  
  2350.      Note:  because of the way unspecified time and date components are left
  2351.      unchanged (see section on Date and Time Formats) always specify the
  2352.      complete time and date for all entries in the configuration file. For
  2353.      example, to initialize the longitude to zero degrees, say 0:0:0, not just
  2354.      0.
  2355.  
  2356.      5.1.  Configuration File fields
  2357.      UD        initial UTC date, such as 10/20/1988, or "NOW" to use the
  2358.                computer clock.
  2359.      UT        initial UTC time, such as 12:0:0, or "NOW" to use the computer
  2360.                clock.
  2361.      TZONE     hours the local time is behind utc, such as 5:0:0.  you need not
  2362.                set this if you use "NOW" for UT or UD.
  2363.      TZNAME    name of the local time zone, such as CDT. 3 chars max.  you need
  2364.                not set this if you use "NOW" for UT or UD.
  2365.      LONG      longitude, in degrees west of Greenwich, in the form d:m:s.
  2366.      LAT       latitude, in degrees north of the equator, in the form d:m:s.
  2367.      HEIGHT    height above sea level, in feet, such as 800
  2368.      TEMP      air temperature, in degrees F, such as 50
  2369.  
  2370.  
  2371.  
  2372.  
  2373.  
  2374.  
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380.                                        - 10 -
  2381.  
  2382.  
  2383.      PRES      air pressure, in inches of Mercury, such as 29
  2384.      STPSZ     the time increment between screen updates, such as "1" to give
  2385.                one hour updates. this can be a specific amount or RTC to use
  2386.                the system clock as a real-time source. You may also specify a
  2387.                time in days, by appending a D (or d) after the number.
  2388.      PROPTS    this selects what you want included initially in the display.
  2389.                since IBM-PC math is not very fast, you can reduce the time to
  2390.                update the screen by only printing those fields of interest. the
  2391.                VALUE is a collection of letters to turn on each item from the
  2392.                following set:
  2393.  
  2394.                        T       twilight (dawn-dusk)
  2395.                        S       circumstances for the sun
  2396.                        M       circumstances for the moon
  2397.                        e       circumstances for mercury
  2398.                        v       circumstances for venus
  2399.                        m       circumstances for mars
  2400.                        j       circumstances for jupiter
  2401.                        s       circumstances for saturn
  2402.                        u       circumstances for uranus
  2403.                        n       circumstances for neptune
  2404.                        p       circumstances for pluto
  2405.                        x       circumstances for object X
  2406.                        y       circumstances for object Y
  2407.  
  2408.                For example, to just track the sun and saturn, say PROPTS=Ss
  2409.  
  2410.                If the delimiter between PROPTS and the selection is a plus (+)
  2411.                sign then the given planets are included IN ADDITION TO ones
  2412.                already specified. Any other delimiter sets the selection to
  2413.                exactly the set specified. This feature was added so that the
  2414.                command line version of using PROPTS could add to the set of
  2415.                planets giving in the configuration file.
  2416.      NSTEP     number of times program will loop before entering command mode.
  2417.                see the discussion under Program Operation.
  2418.      EPOCH     this sets the desired ra/dec precession epoch. you can put any
  2419.                date here or EOD to use the current instant ("Epoch of Date").
  2420.      OBJX
  2421.      OBJY      These fields specify the optional objects "x" and "y" by naming
  2422.                any item in the database file. The form is OBJX=xyz, where xyz
  2423.                must be in the database file, case sensitive.  You may define
  2424.                one object of each type for each of OBJX and OBJY; the last one
  2425.                defined will be the "current" one when ephem gets going.
  2426.      PAUSE     The number of seconds to pause between calculation steps. See
  2427.                definition of the Pause field in the "Top Screen Fields"
  2428.                section.
  2429.      MENU      establishes the initial bottom screen menu type.  This should be
  2430.                one of the keywords DATA, RISET or SEP.  There is no way to set
  2431.                horizon or center suboptions at this time.
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.                                        - 11 -
  2447.  
  2448.  
  2449.      5.2.  Example ephem.cfg
  2450.  
  2451.      This is the ephem.cfg file that was in effect when the sample screens (in
  2452.      another section) were generated. You might run ephem with this
  2453.      configuration file and compare with the samples as a check.
  2454.  
  2455.      UT=0;0;0
  2456.      UD=5/1/1990
  2457.      TZNAME=CDT
  2458.      TZONE=5
  2459.      LONG=93:42:8
  2460.      LAT=44:50:37
  2461.      HEIGHT=800
  2462.      TEMP=40
  2463.      PRES=29.5
  2464.      STPSZ=RTC
  2465.      PROPTS=TSMevmjsunpxy
  2466.      EPOCH=2000
  2467.      NSTEP=1
  2468.  
  2469.      OBJX=Austin
  2470.      OBJY=Juno
  2471.  
  2472.      As another common example, this ephem.cfg creates an essentially free-
  2473.      running real-time screen based on the computer clock:
  2474.  
  2475.      UT=Now
  2476.      LONG=90:10:8
  2477.      LAT=40:50:20
  2478.      HEIGHT=800
  2479.      TEMP=50
  2480.      PRES=29
  2481.      STPSZ=RTC
  2482.      PROPTS=TSMevmjsunp
  2483.      NSTEP=9999999
  2484.      EPOCH=Eod
  2485.      PAUSE=30
  2486.  
  2487.  
  2488.      6.  Menu options
  2489.  
  2490.      When you select "Menu" you can change among the three styles of bottom
  2491.      screens. There are also two options that can be set from the Menu quick-
  2492.      choice menu. These options toggle when picked and retain their values so
  2493.      they need only be changed when desired.
  2494.  
  2495.      6.1.  Adaptive vs. Standard hzn
  2496.  
  2497.      This selects the horizon refraction displacement algorithm used by the
  2498.      Rise/Set menu.  "Adaptive" uses the local atmospheric conditions known to
  2499.      ephem and matches the Planet Info times nicely. "Standard" uses the
  2500.      "accepted nominal" horizon refraction value of 32 arc minutes and usually
  2501.      agrees, to a minute or so, with published tables.
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.                                        - 12 -
  2513.  
  2514.  
  2515.      6.2.  Geocentric vs. Topocentric
  2516.  
  2517.      This selects the vantage point for the Separation menu. "Geocentric"
  2518.      ignores local conditions and gives the separation as seen from Earth
  2519.      center. "Topocentric" uses the local conditions known to ephem.  They are
  2520.      particularly critical for lunar occultations, but the effect can be
  2521.      significant for the planets.
  2522.  
  2523.      Note that searching over a period that will include the rise or set times
  2524.      of either object is generally better performed from the geocentric
  2525.      viewpoint.  The refraction effect of the topocentric viewpoint causes many
  2526.      arcminutes of rapid whiplash displacement as the objects rise and set that
  2527.      overlays the smooth celestial motion of the objects.  This rapid position
  2528.      variation can confuse the solver algorithms that expect fairly smooth
  2529.      functions.
  2530.  
  2531.      7.  User Defined Objects: X and Y
  2532.  
  2533.      You may specify one or two extra objects for ephem to use. The objects may
  2534.      be defined in three different ways:  fixed celestial sphere coordinates,
  2535.      or heliocentric elliptical or parabolic orbital elements.  Elliptical
  2536.      elements are typically useful for periodic comets or asteroids, and
  2537.      parabolic elements are for nonrecurring solar system interlopers such as
  2538.      aperiodic comets.
  2539.  
  2540.      The parameters for each type of object are stored separately, so you may
  2541.      switch between types of objects without losing parameters.
  2542.  
  2543.      7.1.  Controlling Object-X or Y Operation
  2544.  
  2545.      To control the type and the corresponding details for object X or Y,
  2546.      select the corresponding row near the bottom.  (Remember that typing the
  2547.      character "x" or "y" is a shorthand way to move to the bottom rows.) It
  2548.      will bring up a quick-choice menu as follows:
  2549.  
  2550.      Select: Fixed, Elliptical, Parabolic, Lookup, On
  2551.  
  2552.  
  2553.      When you first enter the quick-choice menu the cursor will start out
  2554.      positioned at the field for the current type of object.  The first three
  2555.      selections allow you to enter or review the various parameters required to
  2556.      define an object's position of such type, one parameter at a time.
  2557.  
  2558.      You set the current object type and begin to view its parameters by
  2559.      positioning the cursor over the type and pressing RETURN.  The prompt for
  2560.      each item includes a short description, the units to use, and its current
  2561.      setting is shown in parentheses. To leave the item unchanged and go to the
  2562.      next item, type RETURN.  If you do not wish to change or see any more
  2563.      items about the object then type "q" and you will return immediately to
  2564.      the object-X quick-choice menu.
  2565.  
  2566.      You exit the quick-choice menu by typing "q" while over any field or
  2567.      RETURN while over On or Off, as described in a later section.
  2568.  
  2569.  
  2570.  
  2571.  
  2572.  
  2573.  
  2574.  
  2575.  
  2576.  
  2577.  
  2578.                                        - 13 -
  2579.  
  2580.  
  2581.      As with all dates throughout ephem, the dates for the epochs of perihelion
  2582.      and reference epochs may be entered in month/day/year or decimal year
  2583.      formats, and the day may be entered as a real number (see the section on
  2584.      Date and Time Formats).  All dates given for comet parameters are always
  2585.      in UT.
  2586.  
  2587.      7.1.1.  Fixed
  2588.  
  2589.      This selection will present a series of five prompts, the name and one
  2590.      each for the RA, Dec, magnitude and the reference epoch for the
  2591.      coordinates of a fixed object.
  2592.  
  2593.      7.1.2.  Elliptical
  2594.  
  2595.      This will begin a series of twelve prompts asking for a name and the
  2596.      parameters that define a heliocentric elliptic orbit and the coefficients
  2597.      for either of two magnitude models.  These elements are the same ones
  2598.      often listed in the Astronomical Almanac.  The elements are, in order:
  2599.  
  2600.              i = inclination, degrees
  2601.              O = longitude of ascending node, degrees
  2602.              o = argument of perihelion, degrees
  2603.              a = mean distance (aka semi-major axis), AU
  2604.              n = daily motion, degrees per day
  2605.              e = eccentricity
  2606.              M = mean anomaly (ie, degrees from perihelion)
  2607.              E = epoch date (ie, time of M)
  2608.              D = the equinox year (ie, time of i/O/o)
  2609.              g/k or H/G  = either of two magnitude models; see below
  2610.  
  2611.  
  2612.      You might have other parameters available that can be converted into
  2613.      these.  For example, we have the following relationships:
  2614.  
  2615.              P = sqrt(a*a*a)
  2616.              p = O + o
  2617.              n = 360/days_per_year/P ~ 0.98563/P
  2618.              T = E - M/n
  2619.              q = a*(1-e)
  2620.          where
  2621.              P = the orbital period, years;
  2622.              p = longitude of perihelion, degrees
  2623.              n = daily motion, degrees per day;
  2624.              T = epoch of perihelion (add multiples of P for desired range)
  2625.              q = perihelion distance, AU
  2626.  
  2627.      Note that if you know T you can then set E = T and M = 0.
  2628.  
  2629.      7.1.3.  Parabolic
  2630.  
  2631.      This will begin a series of nine prompts asking for a name and the
  2632.      parameters that define a heliocentric elliptic orbit and the magnitude
  2633.      model coefficients.  These orbital parameters are, in order:
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.                                        - 14 -
  2645.  
  2646.  
  2647.      epoch of perihelion,
  2648.      inclination,
  2649.      argument of perihelion,
  2650.      perihelion distance,
  2651.      longitude of the ascending node,
  2652.      and the reference epoch of the parameters.
  2653.      absolute magnitude, g
  2654.      luminosity index coefficients, k
  2655.  
  2656.  
  2657.      7.1.4.  Lookup
  2658.  
  2659.      This option lets you define an object from any of those listed in the
  2660.      database file, described in a subsequent section.
  2661.  
  2662.      If successful, the cursor will move to the type of the new object and it
  2663.      becomes the current type.
  2664.  
  2665.      7.1.5.  On or Off
  2666.  
  2667.      The last selection on the right toggles the calculations for the object On
  2668.      and Off.  It toggles when selected with RETURN and then immediately exits
  2669.      the quick-choice menu back to the main menu.  If calculations become On,
  2670.      then they will be performed for the current type of object; if they become
  2671.      Off the object-X or Y row of information will be erased.
  2672.  
  2673.      7.2.  Magnitude models
  2674.  
  2675.      Ephem supports two different magnitude models. One, denoted here as g/k,
  2676.      is generally used for comets and may be used for parabolic and elliptical
  2677.      objects. The other, denoted H/G, is generally used for asteroids and is
  2678.      the one used in the Astronomical Almanac.
  2679.  
  2680.      7.2.1.  g/k model
  2681.  
  2682.      This model requires two parameters to be specified.  One, the absolute
  2683.      magnitude, g, is the visual magnitude of the object if it were one AU from
  2684.      both the sun and the earth.  The other, the luminosity index, k,
  2685.      characterizes the brightness change of the object as a function of its
  2686.      distance from the sun. This is generally zero, or very small, for inactive
  2687.      objects like asteroids.  The model may be expressed as:
  2688.  
  2689.          m = g + 5*log10(D) + 2.5*k*log10(r)
  2690.        where:
  2691.          m = resulting visual magnitude;
  2692.          g = absolute visual magnitude;
  2693.          D = comet-earth distance, in AU;
  2694.          k = luminosity index; and
  2695.          r = comet-sun distance.
  2696.  
  2697.      Note that this model does not take into account the phase angle of
  2698.      sunlight.
  2699.  
  2700.      When using this model for elliptical objects, the first of the two
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709.  
  2710.                                        - 15 -
  2711.  
  2712.  
  2713.      magnitude fields must be preceded by a letter "g" in both the ephem.db
  2714.      database file and the corresponding quick-choice elliptical object
  2715.      definition prompt; otherwise the default is the H/G model.
  2716.  
  2717.      7.2.2.  H/G model
  2718.  
  2719.      This model also requires two parameters. The first, H, is the magnitude of
  2720.      the object when one AU from the sun and the earth. The other, G, attempts
  2721.      to model the reflection characteristics of a passive surface, such as an
  2722.      asteroid. The model may be expressed with the following code fragment:
  2723.  
  2724.          beta = acos((rp*rp + rho*rho - rsn*rsn)/ (2*rp*rho));
  2725.          psi_t = exp(log(tan(beta/2.0))*0.63);
  2726.          Psi_1 = exp(-3.33*psi_t);
  2727.          psi_t = exp(log(tan(beta/2.0))*1.22);
  2728.          Psi_2 = exp(-1.87*psi_t);
  2729.          m = H + 5.0*log10(rp*rho) - 2.5*log10((1-G)*Psi_1 + G*Psi_2);
  2730.        where:
  2731.          m   = resulting visual magnitude
  2732.          rp  = distance from sun to object
  2733.          rho = distance from earth to object
  2734.          rsn = distance from sun to earth
  2735.  
  2736.      Note that this model does not take into account the phase angle of
  2737.      sunlight.
  2738.  
  2739.      7.3.  Database File
  2740.  
  2741.      You may save a list of objects in a file to be used for setting OBJX and
  2742.      OBJY. The default name of this file is ephem.db. You may also set it from
  2743.      the command line with the -d option, or set it with the EPHEMDB
  2744.      environment variable.
  2745.  
  2746.      The file consists of one object per line. Lines that begin with an
  2747.      asterisk (*) are ignored.  Each line contains several fields, each
  2748.      separated by a comma.  The first field is the name of the object.  The
  2749.      second field is the type of the object, that is, one of the strings
  2750.      "fixed", "elliptical", or "parabolic"; actually, "f", "e" and "p" are
  2751.      sufficient.  The remaining fields depend on the type of object.  They are
  2752.      exactly the same parameters, and in the same order, as ephem asks for when
  2753.      defining the object from the menu.
  2754.  
  2755.      8.  Plotting
  2756.  
  2757.      Each time a field is drawn on the screen during a full screen update cycle
  2758.      (that as, during automatic looping or a manual "q" command character from
  2759.      the main menu but not from a screen redraw from control-l or when an
  2760.      individual planet is turned on or a single time field is changed) its
  2761.      full-precision value may be written to a file.  This implies you may not
  2762.      plot a field from other than the current menu at the time plotting is on.
  2763.      You can append several plot runs together, however, if necessary.
  2764.  
  2765.      Each line in the file consists of a tag character followed by two or three
  2766.      floating point variables, all separated by commas. If there are two
  2767.  
  2768.  
  2769.  
  2770.  
  2771.  
  2772.  
  2773.  
  2774.  
  2775.  
  2776.                                        - 16 -
  2777.  
  2778.  
  2779.      values, they should be interpreted to be x and y (or perhaps r and theta).
  2780.      If there is a third, it is a z or trace value.
  2781.  
  2782.      For efficiency on systems that can compute a screen full faster than they
  2783.      can display it, screen updates are suppressed while plotting is on and
  2784.      NStep is greater than 1. This can greatly reduce the time to generate a
  2785.      long plot file. Fields are still logged for plotting; they just are not
  2786.      drawn on the screen.
  2787.  
  2788.      The Plot field controls plotting.  Whether plotting is currently active is
  2789.      indicated by "on" or "off" immediately to its right.
  2790.  
  2791.      Picking "Plot" brings up a quick-choice menu, as follows:
  2792.  
  2793.      Select: Select fields, Display a plot file, Cartesian coords, Begin plotting
  2794.  
  2795.  
  2796.      8.1.  Defining plot fields
  2797.  
  2798.      Select the "Select fields" option.  You will be asked to move the cursor
  2799.      to the field you want to use as the x coordinate (abscissa), then asked to
  2800.      choose the y coordinate (ordinate), then asked to choose an optional z
  2801.      trace variable and finally a tag character.  (Of course, you may have in
  2802.      mind fields that are more appropriately displayed in other than Cartesian
  2803.      coordinates, in which case think of x, y and z as dimensions.) If you type
  2804.      q for either x or y then no more fields will be defined.  If you type q
  2805.      for the z field there will be no z field.  You can not label a plot line
  2806.      with the letter "q" at this time.
  2807.  
  2808.      This then repeats so you may choose up to ten of these sets for any given
  2809.      plot run.  Each set defines what will become a line on the final plot.
  2810.      Note that you may select the "Search" field to indicate use of the current
  2811.      search function; that function must be defined by the time plotting is
  2812.      turned on.
  2813.  
  2814.      If you turn plotting off and back on the fields selected for plotting are
  2815.      reactivated the same as they were last time. You may change them if
  2816.      desired, of course, but there is no need to redefine them if you do not
  2817.      wish to change them.
  2818.  
  2819.      8.2.  Displaying a plot file
  2820.  
  2821.      Select the "Display a plot file" option to generate a crude plot on the
  2822.      screen of an existing plot file previously created by ephem.  The entries
  2823.      in the file will be drawn on the screen using their tag characters; the
  2824.      plot remains on the screen until you type any character.
  2825.  
  2826.      The plot may be made in polar or Cartesian coordinates, depending on the
  2827.      setting of the plotting mode in the quick-choice (see next section).
  2828.  
  2829.      8.3.  Cartesian or Polar coords
  2830.  
  2831.      This toggles the plotting mode coordinate system.  The mode remains until
  2832.      changed.  Polar coordinates assume the first numeric field in the plot
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838.  
  2839.  
  2840.  
  2841.  
  2842.                                        - 17 -
  2843.  
  2844.  
  2845.      file is the radius, and the second is the angle counterclockwise from
  2846.      right, in degrees.
  2847.  
  2848.      8.4.  Begin Plotting
  2849.  
  2850.      If plot field lines are defined then the third option, "Begin plotting"
  2851.      will be available.  You will be asked for the name of the file to use.  If
  2852.      it already exists you will be asked whether to overwrite it or append to
  2853.      it.  You will also be asked for a title line that will become the next
  2854.      line of the file, automatically prefixed with a "*" to make it a valid
  2855.      comment line.  Once you have chosen a file, plotting is on and the top
  2856.      menu plotting status field changes to "on".  The default plot file name is
  2857.      ephem.plt.  The values are written to the plot file each time they are
  2858.      updated on the screen until you select "Plot" again and select the "Stop"
  2859.      option to turn plotting back off.
  2860.  
  2861.      8.5.  Stopping Plotting
  2862.  
  2863.      If plotting is on, then selecting the Plot field in the top section will
  2864.      turn plotting off. You may pick Plot again and resume with the same fields
  2865.      by selecting "Begin plotting" again.
  2866.  
  2867.      Note that due to internal buffering the plot file will not be completely
  2868.      written to disk until plotting is turned off.
  2869.  
  2870.      9.  Listing
  2871.  
  2872.      This feature works very much like Plotting. However, the fields you select
  2873.      define columns of a table generated as ephem runs. These columns are look
  2874.      exactly like their corresponding fields on the ephem screen and so are far
  2875.      more readable than plot files.
  2876.  
  2877.      See the section on Plotting for an explanation of the quick-choice menu.
  2878.      The general operation is very much the same.
  2879.  
  2880.      10.  Watching
  2881.  
  2882.      You may generate a simple drawing on the screen of the local sky in two
  2883.      forms or the solar system by selecting "Watch".  It will bring up a
  2884.      quick-choice menu as follows:
  2885.  
  2886.      Select: Sky dome, Alt/az sky, Solar system, No trails
  2887.  
  2888.  
  2889.      10.1.  Trails
  2890.  
  2891.      You may either erase after each iteration or leave the tags up, referred
  2892.      to as "trails". Picking the right-most choice will toggle between "No
  2893.      trails" and "Leave trails"; you should set it as desired before you select
  2894.      the style of sky plot you wish.  Ephem will remember your selection.
  2895.  
  2896.  
  2897.  
  2898.  
  2899.  
  2900.  
  2901.  
  2902.  
  2903.  
  2904.  
  2905.  
  2906.  
  2907.  
  2908.                                        - 18 -
  2909.  
  2910.  
  2911.      10.2.  Sky dome
  2912.  
  2913.      This draws the currently active planets within a circle that represents
  2914.      the locally visible hemisphere.  This is similar to the formats commonly
  2915.      used in the popular astronomy magazines.  East is left, south is down,
  2916.      west is right and north is up.
  2917.  
  2918.      10.3.  Alt/az sky
  2919.  
  2920.      This is a cylindrical projection showing the currently active planets as
  2921.      they would appear in the sky looking southwards at the current time and
  2922.      date.  The coordinate system is such that 0 degrees azimuth (north)
  2923.      through 360 degrees (north, once around) is mapped to the horizontal
  2924.      screen dimension, and 0 degrees altitude (level) through 90 degrees (the
  2925.      zenith) is mapped to the vertical dimension. Thus, the bottom row is the
  2926.      horizon and all across the top is the zenith.
  2927.  
  2928.      10.4.  Solar System
  2929.  
  2930.      This selection draws the currently active planets as they would appear
  2931.      looking "down from the top" of the ecliptic, with the sun at the center
  2932.      and zero hours right ascension towards the right.  The scale is adjusted
  2933.      to roughly fill the screen according to the outer-most active planet.
  2934.      Note that the scaling does not take into account the distances of the user
  2935.      defined objects so, if they don't appear, select a planet that is at least
  2936.      as far out as they are.  The screen transformation assumes a screen aspect
  2937.      width/height ratio of 4/3.  Down the left column of the screen is the
  2938.      heliocentric altitude of the planet above or below the ecliptic, drawn to
  2939.      the same scale as the circular display.  Values so close as to land on the
  2940.      same line are sorted left to right; the S and E symbols always denote
  2941.      heliocentric altitude 0.
  2942.  
  2943.      In each style of display, pressing RETURN advances the time by whatever
  2944.      amount StpSz is set to.  Pressing "h" advances the time by one hour, "d"
  2945.      advances by one day, and "w" advances by one week (seven days).  Pressing
  2946.      "q" returns to the watch quick-choice menu from which you may select
  2947.      another display style or return to the main tabular display by typing
  2948.      another "q".  Pressing any other key starts an automatic loop with each
  2949.      step advancing by StpSz; pressing any key stops the looping.
  2950.  
  2951.      As symbols are placed, collisions (overstrikes) are avoided by moving
  2952.      characters in such a way as to maintain increasing sorted order towards
  2953.      the right.
  2954.  
  2955.      When you return to the main menu, the last watched time will be maintained
  2956.      as the current time.  The StpSz is not changed.
  2957.  
  2958.      11.  Searching
  2959.  
  2960.      Ephem can search for arbitrary conditions to exist among most displayed
  2961.      fields.  You first enter a function, then select from among three forms of
  2962.      equation solvers to iteratively solve for the next time when the function
  2963.      meets the requirements of the solver. The solver selects the next time for
  2964.      which it wants the function evaluated and sets StpSz so that the next
  2965.  
  2966.  
  2967.  
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.                                        - 19 -
  2975.  
  2976.  
  2977.      iteration will occur at that time. The solvers continue to iterate until
  2978.      either they achieve their goal or NStep reaches 0.
  2979.  
  2980.      You may set NStep to be quite large and let ephem search unattended or set
  2981.      it to 1 and watch it converge one step at a time. You may also plot at the
  2982.      same time as search to record the exact steps ephem took to converge.
  2983.      (But recall that screen updates are suppressed if plotting is also on).
  2984.  
  2985.      The "Search" selection in the top half of the screen controls all
  2986.      searching.  Picking it brings up a quick-choice menu as follows:
  2987.  
  2988.      Select: Find extreme, Find 0, Binary, New function, Accuracy
  2989.  
  2990.  
  2991.      11.1.  Find extreme
  2992.  
  2993.      This search algorithm searches for a local maximum or a minimum in the
  2994.      search function, whichever it finds first. It begins by evaluating the
  2995.      search function at the current time then for two more times each separated
  2996.      by StpSz. It then fits these three points to a parabola and solves it for
  2997.      the time of its maximum (or minimum). StpSz is set so that the next
  2998.      iteration will evaluate at this point.  This parabolic fit solution keeps
  2999.      repeating until StpSz changes by less than the desired accuracy or until
  3000.      the curve becomes so flat that an extrema appears too broad to find.
  3001.  
  3002.      11.2.  Find 0
  3003.  
  3004.      This search algorithm uses the secant method to solve for the time at
  3005.      which the search function is zero. The function is evaluated at the
  3006.      current time and then again StpSz later to establish a slope for which the
  3007.      x-intercept is found as the next zero guess. This is used to set StpSz for
  3008.      the next desired time value and the slope hunting process repeats until
  3009.      StpSz changes by less than the desired accuracy.
  3010.  
  3011.      11.3.  Binary
  3012.  
  3013.      This search algorithm must be used with a search function that yields a
  3014.      boolean result, ie, a true or false value. The idea is that the function
  3015.      is assumed to be one truth value when evaluated at the present time, and
  3016.      the opposite truth value when it is evaluated StpSz later. The algorithm
  3017.      will then do a binary search for the time when the truth value changes.
  3018.  
  3019.      The binary algorithm does not begin until the state change is bounded in
  3020.      time.  Initially, as long as the truth value at StpSz is the same as the
  3021.      previous value the algorithm will just keep moving in time by StpSz
  3022.      looking for when the state changes.  That is, a linear search is initiated
  3023.      to bound the state change, then the binary search proceeds.
  3024.  
  3025.      11.4.  Define a New function
  3026.  
  3027.      Select "New function" to display the current search function.  If you type
  3028.      "q" it will be left unchanged.  If you type RETURN it will be erased.  If
  3029.      you type anything else it will be compiled and, if there are no errors, it
  3030.      will become the new search function.  Once a valid function has been
  3031.  
  3032.  
  3033.  
  3034.  
  3035.  
  3036.  
  3037.  
  3038.  
  3039.  
  3040.                                        - 20 -
  3041.  
  3042.  
  3043.      stored, it will remain unless changed.  If a search function is selected
  3044.      and there is as yet no valid search function defined, you will
  3045.      automatically be asked to enter one as though you had selected "New
  3046.      function."
  3047.  
  3048.      A search function consists of intrinsic functions, field-specifiers,
  3049.      constants and operators, and precedence may be overridden with
  3050.      parentheses.
  3051.  
  3052.  
  3053.      11.4.1.  Intrinsic functions
  3054.  
  3055.      In this release, the only intrinsic function available is abs(), which
  3056.      returns the absolute value of its argument.
  3057.  
  3058.      11.4.2.  Field Specifiers
  3059.  
  3060.      A field in the bottom half of the menu is specified in the form of
  3061.      "object_name.column_name". The object_name is enough of the planet name to
  3062.      be unique; use "x" or "y" for the user-specified object X or Y.  The
  3063.      column_name is from the following table, depending on which menu is up. In
  3064.      all cases additional characters may be entered but are ignored.
  3065.  
  3066.      Planet Data Menu        Rise/Set Menu               Separation Menu
  3067.      ------------------      --------------------        ---------------
  3068.      al      Alt             hr      Hrs Up, or          j       Jup
  3069.      az      Az              hu      Hrs Up              ma      Mars
  3070.      d       Dec             raz     Rise Az             me      Merc
  3071.      ed      Ea Dst          rt      Rise Time           mo      Moon
  3072.      el      Elong           saz     Set Az              n       Nep
  3073.      hla     Helio Lat       st      Set Time            pl      Pluto
  3074.      hlo     Helio Long      ta      Transit Alt         sa      Saturn
  3075.      ph      Phs             tt      Transit Time        su      Sun
  3076.      ra      R.A.                                        u       Uranus
  3077.      sd      Sn Dst                                      ve      Venus
  3078.      si      Size
  3079.      vm      VMag
  3080.  
  3081.  
  3082.      In addition, the following top-half fields may be used:
  3083.  
  3084.      da      Dawn
  3085.      du      Dusk
  3086.      n       NiteLn
  3087.  
  3088.  
  3089.  
  3090.      Remember, searching may only involve fields being calculated for display
  3091.      at the time the solver is active.  While you can syntactically include any
  3092.      field in a search function it is useless to define a search that uses
  3093.      fields from other than the menu that is selected at the time the search is
  3094.      running.
  3095.  
  3096.  
  3097.  
  3098.  
  3099.  
  3100.  
  3101.  
  3102.  
  3103.  
  3104.  
  3105.  
  3106.                                        - 21 -
  3107.  
  3108.  
  3109.      11.4.3.  Constants
  3110.  
  3111.      Constants may be integers or floating point numbers. The latter may be
  3112.      expressed in scientific notation if desired. Examples include 100, .9,
  3113.      1.234, 1e10 and 1.2e-4.  Any number may be preceded by - to make it
  3114.      negative.
  3115.  
  3116.      11.4.4.  Operators
  3117.  
  3118.      The collection of arithmetic, relational and boolean operators provided
  3119.      mimics those of C language as listed in the following table, in decreasing
  3120.      order of precedence.  Operators grouped together have the same precedence
  3121.      and all have left-to-right associativity. Parentheses may be used as
  3122.      desired.
  3123.  
  3124.      Symbol  Meaning                 Resulting type
  3125.      ------  --------------------    --------------
  3126.      *       multiply                arithmetic
  3127.      /       divide                  arithmetic
  3128.  
  3129.      +       add                     arithmetic
  3130.      -       subtract                arithmetic
  3131.  
  3132.      >       greater than            boolean
  3133.      >=      greater than or equal   boolean
  3134.      <       less than               boolean
  3135.      <=      less than or equal      boolean
  3136.  
  3137.      ==      equality                boolean
  3138.      !=      inequality              boolean
  3139.  
  3140.      &&      logical and             boolean
  3141.  
  3142.      ||      logical or              boolean
  3143.  
  3144.  
  3145.      11.5.  Specifying Search Accuracy
  3146.  
  3147.      Selecting "Accuracy" allows you to specify when the search will stop.  The
  3148.      search algorithms will stop when StpSz becomes equal to or less than this
  3149.      value. The default is one minute.  If ephem has not yet converged to the
  3150.      specified accuracy but NStep has decremented to 1, the searching will stop
  3151.      but the search status field will still indicate which search procedure is
  3152.      in effect. To try more iterations you may increase NStep and resume
  3153.      searching. If the accuracy was achieved, the search status field will
  3154.      switch to "off" with the number of "unused" steps remaining in NStep and
  3155.      the last step size in the StpSz fields.
  3156.  
  3157.      11.6.  Stop
  3158.  
  3159.      If searching is on, this option will also appear on the quick-choice menu
  3160.      and may be selected to turn off the search.
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167.  
  3168.  
  3169.  
  3170.  
  3171.  
  3172.                                        - 22 -
  3173.  
  3174.  
  3175.      11.7.  Example Searches
  3176.  
  3177.      As an example, let's find when Pluto again becomes the furthest planet
  3178.      from Sol.  You may find when the difference in their sun distance is zero,
  3179.      or you might use a binary search on the condition that Pluto's sun
  3180.      distance is larger then Neptune's.
  3181.  
  3182.      To try the former approach select Search, select "Find 0", specify the
  3183.      search function to be:
  3184.  
  3185.      pl.sd - nep.sd
  3186.  
  3187.      set StpSz to something large like 10d, NStep to allow several iterations
  3188.      like 20, and then type "q" to start the search and watch ephem do the
  3189.      hunt.  Ephem will settle on about 21:02 1/10/1999 UT.
  3190.  
  3191.      To try a binary search, you first need to have some idea of when the event
  3192.      will occur so you can eliminate the initial linear search for the state
  3193.      change. We can start at, say, 1/1/1999, set StpSz to 30d, select Binary
  3194.      search, specify the search function to be:
  3195.  
  3196.      pl.sd > nep.sd
  3197.  
  3198.      and go. Once it brackets the state change note how StpSz keeps being cut
  3199.      in half but can go in either direction (sign) as it divides each interval
  3200.      in half.  Ephem will converge on the same answer.
  3201.  
  3202.      11.8.  Another Example
  3203.  
  3204.      To find the time of last quarter moon during December, 1989, use the "Find
  3205.      0" search algorithm to solve "moon.el + 90".  (At last quarter, the moon
  3206.      is 90 degrees west of the sun, or -90 east in ephem's elongation display.)
  3207.      Set the initial time to mid-month, 12/15/1989, StpSz to 1 day and NStep to
  3208.      10. Ephem takes only a few iterations to settle on 23:57 12/19 UT.
  3209.  
  3210.      11.9.  Caution
  3211.  
  3212.      Beware that most celestial phenomena are generally pseudo-periodic in
  3213.      nature.  In early search steps ephem can easily skip over a local maxima
  3214.      and find a later one, which, while correct, may not be what was desired.
  3215.      In general, the closer you can be when you start the search the better
  3216.      ephem can refine it; it is not as good with very broad searches that can
  3217.      go "wild". Set StpSz large enough to offer significant change in the
  3218.      function value, but small enough not to skip too far.
  3219.  
  3220.      For example, Saturn and Neptune had three close approaches during 1989.
  3221.      If you did not know this then just asking ephem to find a minimum would
  3222.      have produced different results depending on the starting conditions.
  3223.      When starting a search for a certain class of event it is a good idea to
  3224.      first use the plotting or watching facility of ephem to get a broad
  3225.      picture of the general circumstances then use ephem's search facility to
  3226.      refine a given region (or create and inspect a plot file and do your own
  3227.      interpolation directly from it separately).
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.                                        - 23 -
  3239.  
  3240.  
  3241.      Similarly, ephem's searching techniques are not good for eclipses because
  3242.      the moon and sun are close every month; the trick is sorting through the
  3243.      frequent conjunctions for ones that are particularly close. One needs a
  3244.      way of establishing an envelope fit to the local extrema of a cyclic
  3245.      function in order to find a more global extreme.
  3246.  
  3247.      12.  Implementation Notes
  3248.  
  3249.      Remember that everything is for the current local time and day. So, for
  3250.      example, the calendar marks moon events in local time; commercial
  3251.      calendars usually mark the UT date.  Similarly, the rise/set times are for
  3252.      the current local day.
  3253.  
  3254.      The program uses a horizontal plane tangent to the earth as the horizon
  3255.      for all altitude calculations, rise/set events, etc.  This is not the same
  3256.      as the angle up from the local horizon unless the observer is directly on
  3257.      the ground due to earth's curvature.  The effect can be found from:
  3258.  
  3259.              sin(a)**2 = (h**2 + 2Rh) / (R+h)**2
  3260.          where:
  3261.              R = radius of earth
  3262.              h = height above ground (same units as R)
  3263.              a = increase in altitude
  3264.  
  3265.      For example, the effect is more than two arc minutes at a height of 5
  3266.      feet.
  3267.  
  3268.      Visual magnitudes are not very accurate ... I haven't bothered to fix.
  3269.  
  3270.      The accuracy of ephem can not be specifically stated since the Duffett-
  3271.      Smith book does not warrant its planet position polynomials to any given
  3272.      degree. I know for sure that better accuracy could be achieved if ephem
  3273.      used TDT but I have not yet decided on a suitable algorithm.  Allowing for
  3274.      this manually, (see the Wish List section) comparisons with the
  3275.      Astronomical Almanac are often within a few arcseconds.
  3276.  
  3277.      The program uses double precision throughout. While this precision might
  3278.      seem a little ridiculous, it is actually more efficient for most
  3279.      traditional K&R C compilers and the search functions seem to be are far
  3280.      more stable.
  3281.  
  3282.      Searching and plotting always use full precision but if neither of these
  3283.      are turned on pure display and watching only recompute a given planets new
  3284.      location if the time has changed enough to effect the required display
  3285.      precision, based on the planets mean apparent orbital motion.
  3286.  
  3287.      The sun-moon distance is the solution for the third side of a planar
  3288.      triangle whose two other sides are the earth-moon distance and earth-sun
  3289.      distance separated by the angle of elongation.
  3290.  
  3291.      Beware of specifying a year of 0, or of computing with the user-defined
  3292.      objects before they are properly defined. These conditions can cause ephem
  3293.      to blow.
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303.  
  3304.                                        - 24 -
  3305.  
  3306.  
  3307.      12.1.  Program limits
  3308.  
  3309.      The search function is limited to a maximum of 32 instructions (each
  3310.      constant, field spec, and operation is one instruction), with no more than
  3311.      a total of 16 constants and field specs. At run time, the function can not
  3312.      require more than 16 stacked values (due to operator precedence or
  3313.      explicit parenthetical expressions) to evaluate.
  3314.  
  3315.      No more than 32 different fields can be tracked simultaneously for
  3316.      plotting and/or searching.
  3317.  
  3318.      No more than 10 lines may be plotted at once.
  3319.  
  3320.      The maximum file name length is 14 characters.
  3321.  
  3322.      13.  DOS Installation Procedure
  3323.  
  3324.      You must be running DOS V2.0 or later, though somewhere between V2.0 and
  3325.      V3.21 the behavior of control-c to terminate the program was fixed.  An
  3326.      8087 floating point chip will be used if present.
  3327.  
  3328.      The distribution floppy contains five files:
  3329.      README describes last minute items and details of this release.
  3330.      MAN.TXT is this manual, hopefully formatted and printable on most any
  3331.      printer.
  3332.      EPHEM.EXE is the executable program.
  3333.      EPHEM.CFG is a sample configuration file.
  3334.      EPHEM.DB is a sample database.
  3335.      To run the program, make working copies of these files in a directory and
  3336.      run "ephem" from that directory.
  3337.  
  3338.      13.1.  Setting TZ
  3339.  
  3340.      Before running ephem, you should set a DOS environment variable, TZ.  It
  3341.      is is used to establish the timezone name and hours offset whenever the
  3342.      "Now" shorthand is used from ephem, either from the configuration startup
  3343.      file or whenever any time field is changed manually.  Set it in the
  3344.      following form:
  3345.  
  3346.           set TZ=SSSnDDD
  3347.  
  3348.      where
  3349.  
  3350.      SSS  is the 3-letter abbreviation for the local standard timezone;
  3351.  
  3352.      n    is a number between -23 to 24 indicating the number of hours that are
  3353.           subtracted from GMT to obtain local standard time;
  3354.  
  3355.      DDD  is an optional 3-letter abbreviation for the local daylight savings
  3356.           time zone name. Leave it off if you do not have savings time in your
  3357.           area or it is not currently in effect. If the changeover dates differ
  3358.           from the internal algorithm, just use SSS and n directly.
  3359.  
  3360.      For example, in the midwestern United States with savings times set
  3361.  
  3362.  
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368.  
  3369.  
  3370.                                        - 25 -
  3371.  
  3372.  
  3373.      TZ=CST6CDT
  3374.  
  3375.      If for some reason your system does not change to savings time at the
  3376.      right time, then omit the DDD parameter and just set the SSS and n to
  3377.      exactly what you want.
  3378.  
  3379.      You can put this in your AUTOEXEC.BAT file so it gets set each time you
  3380.      boot DOS.
  3381.  
  3382.      14.  Known Bugs and Wish List
  3383.  
  3384.      incorporate Terrestrial Dynamical Time (known as Ephemeris Time prior to
  3385.      1984).  TDT is about 57 seconds ahead of UT1 in 1990.
  3386.  
  3387.      it's too easy to turn on objx/y before it's defined and bomb out.
  3388.  
  3389.      add explicit searching for eclipses and occultations.
  3390.  
  3391.      in watch mode, RTC reverts back to being based off the time when watch was
  3392.      first entered.
  3393.  
  3394.      add a facility (or tool) to find g/k from a set of observed magnitudes.
  3395.  
  3396.      find a better precession algorithm; current one exhibits some hysteresis
  3397.      and isn't all that accurate in general.
  3398.  
  3399.      add search criteria for database objects.
  3400.  
  3401.      add plot options to reverse x and/or y direction.
  3402.  
  3403.      handle year 0 properly.
  3404.  
  3405.      add moons.
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417.  
  3418.  
  3419.  
  3420.  
  3421.  
  3422.  
  3423.  
  3424.  
  3425.  
  3426.  
  3427.  
  3428.  
  3429.  
  3430.  
  3431.  
  3432.  
  3433.  
  3434.  
  3435.  
  3436.                                        - 26 -
  3437.  
  3438.  
  3439.      15.  Sample Screens
  3440.  
  3441.      Here are sample ephem screens. They are generated using the first sample
  3442.      ephem.cfg file (listed in the section describing the configuration file).
  3443.      There is one for each of the three possible screen formats.  The rise/set
  3444.      screen was done using the Adaptive option.  The separations screen was
  3445.      done using the Topocentric option.
  3446.  
  3447. Move to another field, RETURN to change this field, ? for help, or q to run
  3448.  
  3449. CDT 19:00:00  4/30/1990 | LST    8:19:50 | Lat   44:50:37 |      April 1990
  3450. UTC  0:00:00  5/01/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
  3451. JulianDat 2448012.50000 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
  3452. Watch                   | Dusk     22:15 | Temp      40 F |  8 FM 10 11 12 13 14
  3453. Listing             off | NiteLn    5:55 | AtmPr 29.50 in | 15 16 17 18 19 20 21
  3454. Search              off |                | TZ     5:00:00 | 22 23 NM 25 26 27 28
  3455. Plot                off | NStep        1 | Epoch   2000.0 | 29 30
  3456. Menu        Planet Data | StpSz RT CLOCK | Pause        0 |
  3457. --------------------------------------------------------------------------------
  3458. Ob   R.A.    Dec    Az     Alt  H Long H Lat  Ea Dst Sn Dst Elong  Size VMag Phs
  3459. Su  2:32.3  14:58 278:40  12:38 220:22        1.0075               1905  -27
  3460. Mo  8:09.9  21:11 186:06  65:53 119:55   1:04 234821 1.0071   79.5 1897  -12  44
  3461. Me  2:49.4  17:39 277:48  17:26 214:08   1:43 0.5764 0.4360    4.9 11.7  1.6   1
  3462. Ve 23:49.4  -2:25 296:53 -27:39 282:39  -1:30 0.9288 0.7276  -43.9 18.2 -4.8  64
  3463. Ma 22:39.8 -10:09 308:17 -44:14 297:56  -1:43 1.5438 1.4067  -62.9  6.1  0.3  89
  3464. Ju  6:30.9  23:23 235:13  59:04 106:16   0:08 5.6806 5.1941   56.6 34.6 -2.0  99
  3465. Sa 19:49.6 -20:53  17:24 -65:14 289:45   0:10 9.7077 10.017 -105.0 17.1  1.1 100
  3466. Ur 18:41.9 -23:24  51:18 -60:39 276:55  -0:18 18.864 19.401 -120.9  3.5  5.6 100
  3467. Ne 19:03.2 -21:46  40:51 -62:01 282:48   0:51 29.754 30.207 -115.8  2.1  7.9 100
  3468. Pl 15:14.8  -1:26  81:18 -10:37 226:18  15:28 28.693 29.658 -162.9  0.3 13.6 100
  3469. X   0:08.3  36:01 316:59   5:58 238:20  26:29 0.5622 0.6657  -38.4       1.5  33
  3470. Y  15:22.9  -2:40  80:43 -12:54 226:17  10:49 2.3635 3.3381 -162.5      10.1100
  3471.  
  3472.  
  3473.  
  3474.  
  3475.  
  3476.  
  3477.  
  3478.  
  3479.  
  3480.  
  3481.  
  3482.  
  3483.  
  3484.  
  3485.  
  3486.  
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.                                        - 27 -
  3503.  
  3504.  
  3505. Move to another field, RETURN to change this field, ? for help, or q to run
  3506.  
  3507. CDT 19:00:00  4/30/1990 | LST    8:19:50 | Lat   44:50:37 |      April 1990
  3508. UTC  0:00:00  5/01/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
  3509. JulianDat 2448012.50000 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
  3510. Watch                   | Dusk     22:15 | Temp      40 F |  8 FM 10 11 12 13 14
  3511. Listing             off | NiteLn    5:55 | AtmPr 29.50 in | 15 16 17 18 19 20 21
  3512. Search              off |                | TZ     5:00:00 | 22 23 NM 25 26 27 28
  3513. Plot                off | NStep        1 | Epoch   2000.0 | 29 30
  3514. Menu      Rise/Set Info | StpSz RT CLOCK | Pause        0 |
  3515. --------------------------------------------------------------------------------
  3516. Ob  Rise Time    Rise Az  Trans Time  Trans Alt  Set Time    Set Az    Hours Up
  3517. Su     6:05       67:48     13:12       60:01     20:20      292:28     14:15
  3518. Mo    10:54       57:14     18:49       66:01      1:56      304:46     15:02
  3519. Me     6:13       63:34     13:30       62:51     20:47      296:04     14:34
  3520. Ve     4:35       93:02     10:29       42:33     16:23      267:14     11:48
  3521. Ma     3:57      103:53      9:20       34:52     14:43      256:17     10:45
  3522. Ju     9:24       54:59     17:11       68:33      1:00      305:01     15:36
  3523. Sa     1:56      119:18      6:31       24:17     11:06      240:42      9:10
  3524. Ur     1:01      123:08      5:24       21:47      9:46      236:52      8:45
  3525. Ne     1:14      120:39      5:45       23:24     10:16      239:21      9:02
  3526. Pl    19:55       91:11      1:57       43:46      7:55      268:48     12:00
  3527. X      1:41       32:26     10:51       81:10     20:00      327:20     18:19
  3528. Y     20:08       92:55      2:06       42:28      7:59      267:01     11:50
  3529.  
  3530.  
  3531. Move to another field, RETURN to change this field, ? for help, or q to run
  3532.  
  3533. CDT 19:00:00  4/30/1990 | LST    8:19:50 | Lat   44:50:37 |      April 1990
  3534. UTC  0:00:00  5/01/1990 |                | Long  93:42:08 | Su Mo Tu We Th Fr Sa
  3535. JulianDat 2448012.50000 | Dawn      4:10 | Elev    800 ft |  1  2  3  4  5  6  7
  3536. Watch                   | Dusk     22:15 | Temp      40 F |  8 FM 10 11 12 13 14
  3537. Listing             off | NiteLn    5:55 | AtmPr 29.50 in | 15 16 17 18 19 20 21
  3538. Search              off |                | TZ     5:00:00 | 22 23 NM 25 26 27 28
  3539. Plot                off | NStep        1 | Epoch   2000.0 | 29 30
  3540. Menu        Separations | StpSz RT CLOCK | Pause        0 |
  3541. --------------------------------------------------------------------------------
  3542. Ob  Sun  Moon   Merc  Venus  Mars   Jup    Sat  Uranus  Nep  Pluto    X     Y
  3543. Su        79:32   4:52 43:59  62:55 56:31   105:  121:   116:  163:  38:21  162:
  3544. Mo  79:32        74:49  124:   142: 23:01   175:  160:   164:  106:  99:52  108:
  3545. Me   4:52 74:49        48:43  67:39 51:50   110:  126:   121:  163:  39:57  163:
  3546. Ve  43:59  124:  48:43        18:56  100:  61:09 77:00  71:58  129:  38:49  126:
  3547. Ma  62:55  142:  67:39 18:56         119:  42:14 58:04  53:04  111:  50:48  108:
  3548. Ju  56:31 23:01  51:50  100:   119:         162:  177:   172:  128:  80:40  130:
  3549. Sa   105:  175:   110: 61:09  42:14  162:        15:52  10:50 69:37  83:36 67:17
  3550. Ur   121:  160:   126: 77:00  58:04  177:  15:52         5:11 54:43  97:18 52:21
  3551. Ne   116:  164:   121: 71:58  53:04  172:  10:50  5:11        59:06  92:24 56:46
  3552. Pl   163:  106:   163:  129:   111:  128:  69:37 54:43  59:06         125:  2:22
  3553. X   38:21 99:52  39:57 38:49  50:48 80:40  83:36 97:18  92:24  125:         124:
  3554. Y    162:  108:   163:  126:   108:  130:  67:17 52:21  56:46  2:22   124:
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565.