                          *************************     
                          *    Program SATPLOT    *
                          *                       *
                          *  Copyright (c) 1995   *
                          *                       *
                          *   by C. David Eagle   *
                          *************************

SATPLOT is an interactive computer program for the IBM-PC (tm) and true 
compatible personal computers which can be used to generate three dimensional 
orthographic displays of Earth satellite orbits. The software supports 16 
color VGA graphics and the user can display up to five different satellite 
orbits. The user can also select the viewpoint of the orthographic display and 
the color of each satellite orbit. The SATPLOT software numerically integrates 
the equations of motion using a first order model which includes the first
order oblateness (J2) effect of the Earth's gravity field. 

The SATPLOT program reads a simple ASCII data file which contains such data as
the X-Y aspect ratio for your graphics display and orbital elements for one or
more satellites. The proper format of this file is described later in this 
README file.

The SATPLOT software will ask you to input several items necessary for proper 
operation. If you give an invalid response, the program will repeat the prompt
and you can input a response again. The following is a short description of 
each program prompt.

The program will begin by asking if you would like to display a world map on
the Earth's surface. The prompt is a follows:

      Would you like to display a world map (y = yes, n = no)

If you choose "y" for yes, the ASCII data file XYZMAP.DAT must be in the 
current directory in order for SATPLOT to find and plot it.

The software will ask you for the epoch calendar date and Universal Time for
the orbital elements contained in the SATPLOT satellite data file with the 
next two prompts.

      Please input the epoch calendar date
      (month [1 - 12], day [1 - 31], year [YYYY])
      
      Please input the epoch Universal Time
      (hours [0 - 24], minutes [0 - 60], seconds [0 - 60])
      
Please note the valid range of each data item. Be sure to include all four 
digits of the calendar year.

The SATPLOT program can plot the satellite orbits specified in the input data
file for any time interval specified by the user. The program requests for 
this information are as follows:

      Please input the initial plot display time (minutes)
      
      Please input the final plot display time (minutes)
      (final time must be greater than initial time)
      
Please note that the initial plot display time must be >= 0 minutes.

The step size for the orbit plot is specified by responding to this question:

      Please input the plot display step size (minutes)
      
For a user-defined time interval, shorter step sizes require more time to 
compute and plot one or more satellite orbits.

The software can zoom in and out when displaying the Earth and the satellite
orbit(s). The zoom factor is input in response to this next request:

      Please input the zoom factor (zoom > 0)
      (try zoom = 1; larger zoom factor gives larger field of view)
      
The software will ask you to input the name of the disk file which contains
the satellite orbital elements with this next question:

      Please input the orbital elements data file name
      (be sure to include the file name extension)
      
The program will ask if you would like to single step the graphics display. 
This question is as follows:

      Would you like to single step the screen displays (y = yes, n = no)
      (press the Enter key to advance the display or the X key to exit)

You can manually advance the orbit plot by pressing the Enter key after each
screen display is complete. You can also leave the single step program option
at any time by pressing the X key. This response is not case sensitive.

Finally, the software will ask you to input the viewpoint coordinates. The
othographic view created by SATPLOT is relative to a point very far from the
Earth which is located above a user-defined geographic latitude and east 
longitude. The viewpoint rotates with the Earth as one or more satellites 
fly their (inertial) trajectories. The viewpoint prompts are as follows:

      Please input the viewpoint latitude (+ north, - south; degrees)
      (-90 <= latitude <= 90)
      
      Please input the viewpoint east longitude (degrees)
      (0 <= east longitude <= 360)

Please note the sign conventions and valid ranges for each coordinate.

****************************
SATPLOT Satellite Data Files
****************************

The following is an example of a typical SATPLOT ASCII data file (2SATS.DAT):

XY aspect ratio
1.32
total number of satellites
2
satellite #1 - display color
2
satellite #1 - semimajor axis (kilometers)
6728.14
satellite #1 - orbital eccentricity (non-dimensional)
0
satellite #1 - orbital inclination (degrees)
30
satellite #1 - argument of perigee (degrees)
0
satellite #1 - RAAN (degrees)
0
satellite #1 - true anomaly (degrees)
0
satellite #2 - display color
14
satellite #2 - semimajor axis (kilometers)
7728.14
satellite #2 - orbital eccentricity (non-dimensional)
0
satellite #2 - orbital inclination (degrees)
30
satellite #2 - argument of perigee (degrees)
0
satellite #2 - RAAN (degrees)
0
satellite #2 - true anomaly (degrees)
0

Please note that the comment lines can be changed but they should not be 
eliminated. The aspect ratio is for typical VGA monitors but may have to be 
"tweaked" for your particular hardware. Tweaking is best done trial and error
by measuring the height and width of the Earth on the screen. The screen is
calibrated when they are both equal.

The data item below the comment "total number of satellites" determines how
many sets of orbital elements SATPLOT will read.

The valid range of each orbital element is as follows:

     0 <= orbital eccentricity < 1
     0 <= orbital inclination <= 180
     0 <= argument of perigee <= 360
     0 <= right ascension of the ascending node (RAAN) <= 360
     0 <= true anomaly <= 360

The satellite plot colors available are as follows:

     0 = black
     1 = blue
     2 = green
     3 = cyan
     4 = red
     5 = magenta
     6 = brown
     7 = white
     8 = gray
     9 = bright blue
     10 = bright green
     11 = bright cyan
     12 = bright red
     13 = bright magenta
     14 = bright brown
     15 = bright white

The values for the earth's gravitational constant (mu), gravity coefficient 
(j2) and equatorial radius (req) used in the SATPLOT software are

     mu  = 398600.5 km^3/sec^2
     j2  = .00108263 (non-dimensional)
     req = 6378.14 kilometers

You may know a satellite's perigee and apogee altitude instead of its 
semimajor axis and eccentricity. The equations which relate perigee and apogee 
altitudes, semimajor axis and orbital eccentricity are as follows:

     rp = req + hp
     ra = req + ha

     sma = (ra + rp) / 2
     ecc = (ra - rp) / (ra + rp)

     where

       hp  = perigee altitude (kilometers)
       ha  = apogee altitude (kilometers)
       rp  = perigee radius (kilometers)
       ra  = apogee radius (kilometers)
       sma = semimajor axis (kilometers)
       ecc = orbital eccentricity (non-dimensional)

Please note that these equations are valid for satellite altitudes specified 
with respect to a spherical Earth.

******************************************************************************

July 17, 1995

C. David Eagle

Science Software
P.O. Box 2188
Reston, VA 22090-0188

(703) 815-8834

CompuServe 74561,606

Internet davidea@haven.ios.com

*****************************************************************************

Additional Science Software programs:

NPOE - Numerical Prediction of Orbital Events

Celestial Computing - A Journal and Companion Software for Computers and 
                      Celestial Mechanics

Thank you for using SATPLOT. Please call, write or e-mail for additional 
information and NPOE and Celestial Computing demo disks. I can also provide 
custom mission analysis software written in either Microsoft (tm) QuickBASIC 
or PowerStation FORTRAN.

