PREDICT is an open-source, multi-user satellite tracking and orbital prediction program written under the Linux operating system by John A. Magliacane, KD2BD. PREDICT is free software. Users may redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License or any later version.

PREDICT Features

PREDICT provides real-time satellite tracking and orbital prediction information to users and client applications in a variety of ways:

Data such as a spacecraft's sub-satellite point, azimuth and elevation headings, Doppler shift, path loss, slant range, orbital altitude, orbital velocity, footprint diameter, orbital phase (mean anomaly), squint angle, eclipse depth, the time and date of the next AOS (or LOS of the current pass), orbit number, and sunlight and visibility information are provided on a real-time basis. PREDICT can also track (or predict the position of) the Sun and Moon. PREDICT also has the ability to control AZ/EL antenna rotators to maintain accurate orientation in the direction of communication satellites. As an aid in locating and tracking satellites through optical means, PREDICT can articulate tracking coordinates and visibility information as plain speech.

* Newsflash! *

PREDICT Version 2.3.0 has been released! Version 2.3.0 includes an easy-to-use satellite transponder database editor, and introduces support for a mouse (or touch screen under a Termux/Android environment). New features make it possible to run PREDICT in Multi-Satellite Tracking Mode, left click on any satellite displayed in the list, and be brought directly into Single Satellite Tracking Mode for more detailed tracking information on the chosen spacecraft. In addition, Vocalizer code has been integrated into PREDICT's mainline source. Text-to-speech operations are now executed in separate threads rather than forked background processes as was the practice in the past. Please refer to the CHANGES file for more information.

Download PREDICT

PREDICT software is released in three forms:

PREDICT may be downloaded through the following links:

You may now find and contribute to PREDICT through GitHub.

Dana Rawding, N1OFZ, created a web page that describes how to run PREDICT and the graphical client GSAT successfully under Mac OS X.

PREDICT for Android

The full version of PREDICT is now available for operation using a Termux environment running under an Android platform. Now you can carry your smartphone in your shirt pocket while voice announcements made by PREDICT's "vocalizer" tell you where to locate the ISS, Hubble, or other visible satellites in the night sky! Check out these screenshots of PREDICT's Main Menu, SingleTracking, and MultiTracking modes.

Termux may be downloaded either directly (as a .apk file) or through the F-Droid application.

Portable PREDICT Plus!

Portable PREDICT Plus! 1.0, a miniature distribution of Linux by KD2BD that includes PREDICT, MoonTracker, Fodtrack, PB/PG, AX.25 Utils, Minicom, PacsatTools, and a host of related utilities was released on February 8, 2005.

Portable PREDICT Plus! boots from a pair of floppy disks, and runs entirely in RAM, so there's no need to install Linux, compile code, re-partition your hard disk, or download huge CDROM images to run this software.

Portable PREDICT Plus! is based on Linux kernel 2.6.9, and supports a total of eight virtual consoles, providing multiple login sessions that take full advantage of the multitasking and co-operative nature of the operating system and many of the included applications. Portable PREDICT Plus! is capable of supporting moonbounce, analog and digital (Pacsat) satellite operations, satellite and terrestrial packet radio communications (including ISS operations), as well as the generation of APRS-style beacons. Portable PREDICT Plus! supports KISS and 6pack mode terminal node controllers, and runs on 32-bit PCs from 386s on up.

Two version are currently available: one for installation under a Linux/Unix environment, and one for installation under a DOS/Windows environment.

An article authored by John Magliacane describing Portable PREDICT Plus! software appeared in the Winter 2005 issue of CQ-VHF Magazine.

Antenna Positioning Hardware

Hardware and associated software utilities that have been developed to work with PREDICT and Portable PREDICT Plus! to permit automatic AZ/EL antenna tracking of satellites, include:


Client applications that poll tracking data through PREDICT's UDP network interface include:

PREDICT client capabilities have also been integrated into PB/PG Pacsat Groundstation Software by Bent Bagger, OZ6BL.

PREDICT Derviatives

PREDICT has been the inspiration for creating a growing number of open source satellite tracking software applications including:

There is also a version of PREDICT currently being ported to the Android platform. Additionally, some code from PREDICT was incorporated into the design of Howard Long's LVB Tracker 2 hardware.

More recently, David Johnson, G4DPZ, created a Java port of PREDICT that has been incorporated into AmsatDroid FREE, Look4Sat, and AC2CZ's AMSAT Pacsat Groundstation Software, that was created to serve as a groundstation client for the FalconSAT-3 satellite.


The following organizations have reported using PREDICT for satellite tracking/orbital analysis applications:

PREDICT in Research

PREDICT software is cataloged under The Smithsonian/NASA Astrophysics Data System hosted by Harvard University. Its use has been cited in a number of research papers including:

The use of PREDICT has also been cited in theses presented recently at Santa Clara University at both the Undergraduate and Graduate levels in Computer and Electrical Engineering.


4 penguines

Shortly after its initial release in late 1999, PREDICT was evaluated by the Linuxberg/Tucows web site and received a rating of four out of five possible penguins/cows. More than twenty years later, its use and popularity are strong and continue to grow stronger.

Program Operation

PREDICT's start-up screen lists the program's main functions. Several tracking and orbital prediction modes are available, as well as several utilities to manage the program's orbital database.

PREDICT main menu

Predicting Satellite Passes

Orbital predictions are useful for determining in advance when a satellite is expected to come within range of a ground station. They can also be used to look back to previous passes to help to confirm or identify past observations.

PREDICT includes two orbital prediction modes to predict any pass above a ground station (main menu option [P]), or list only those passes that might be visible to a ground station through optical means (main menu option [V]). In either mode, the user is asked to select a satellite of interest from a menu, and then asked to enter the date and time (in UTC) at which prediction calculations should start. Orbital calculations are started and prediction information is then displayed on the screen.

select a satellite


The date and time in UTC, along with the satellite's elevation above ground, azimuth heading, modulo 256 orbital phase, sub-satellite point latitude and longitude, slant range between the ground station and the satellite, and the satellite's orbit number are all displayed. An asterisk (*) displayed to the right of the orbit number means the satellite is in sunlight at the date and time listed on the line. A plus symbol (+) means the satellite is in sunlight while the ground station is under the cover of darkness at the time and date listed. Under good viewing conditions, large satellites such as the International Space Station, and the US Space Shuttles are visible to the naked eye. If no symbol appears to the right of the orbit number, then the satellite is in the Earth's shadow at the time and date listed, and is not receiving any illumination from the sun.

Selecting [V] from PREDICT's main menu will permit a ground station to only predict passes for satellites that are potentially visible through optical means. Since all other passes are filtered out in this mode, and since some satellites may never arrive over a ground station when optical viewing conditions are possible, the program provides the option of breaking out of visual orbital prediction mode by pressing the [ESC]ape key as calculations are made. A prompt is displayed at the bottom of the screen to alert the user of this option.

In either orbital prediction mode, predictions will not be attempted for satellites that can never rise above the ground station's horizon, or for satellites in geostationary orbits. If a satellite is in range at the starting date and time specified, PREDICT will adjust the starting date back in time until the point of AOS so that the prediction screen displays the first pass in its entirety from start to finish.

Single Satellite Tracking Mode

In addition to predicting satellite passes, PREDICT allows satellites to be tracked individually in real-time using PREDICT's Single Satellite Tracking Mode (main menu option [T]), or simultaneously as a group of 24 using the program's Multi-Satellite Tracking Mode (main menu option [M]). The positions of the Sun and Moon are also displayed when tracking satellites in real-time.

Selecting option [T] from PREDICT's main menu places the program in Single Satellite Tracking Mode. The user will be prompted to select the satellite of interest, after which a screen will appear and display tracking positions for the satellite selected.

single tracking mode

In Single Satellite Tracking Mode, a wealth of real-time satellite data is provided by PREDICT. If the satellite contains an active communications downlink, uplink, or two-way communications transponder, then Doppler-corrected uplink and downlink frequencies, path loss, propagation delay, and echo are displayed. It is also possible to tune across the transponder's passband using certain keystrokes to locate a specific uplink or downlink frequency within the satellite's transponder. This makes it possible to determine the appropriate uplink frequency to match a desired downlink frequency (or vice-versa). PREDICT supports a number of transponders per satellite, including linear (both inverting and non-inverting), digital (Pacsat), and bent-pipe (FM). Also new to version 2.2.x is the determination of antenna squint angle and solar eclipse depth.

If a soundcard is present in your machine and the Single Satellite Tracking Mode is invoked with an uppercase 'T' rather than a lowercase 't', PREDICT will make periodic voice announcements stating the satellite's tracking coordinates in real-time. Announcements such as:

"This is PREDICT. Satellite is at fifty six degrees azimuth and forty five degrees elevation, and is approaching. Spacecraft is currently visible."

are made at intervals that are a function of how quickly the satellite is moving across the sky. Announcements can occur as frequently as every 50 seconds for satellites in low earth orbits such as the International Space Station (370 km), or as infrequently as every 8 minutes for satellites in very high orbits, such as the GE-2 geostationary satellite (35780 km). Voice announcements are performed as background processes so as not to interfere with tracking calculations as the announcements are made. Announcements can be forced at any time by pressing the 'T' key in Single Satellite Tracking Mode. Alarms are sounded at the precise moment when satellites enter into sunlight or into eclipse.

Solar Illumination Predictions

PREDICT even makes it possible to determine how much solar illumination a particular satellite will receive over the course of a day. This information is especially valuable to spacecraft designers and satellite groundstation controllers who must monitor spacecraft power budgets or thermal conditions on-board their spacecraft due to sunlight and eclipse periods. It can even be used to predict the optimum times for astronauts to perform extra-vehicular activities in space.

solar predictions

Multi-Satellite Tracking Mode

Selecting [M] from PREDICT's main menu places the program in a real-time multi-satellite tracking mode. In this mode, all 24 satellites in the program's database are tracked simultaneously along with the positions of the Sun and Moon. Tracking data for the satellites is displayed in two columns of 12 satellites each. The name, azimuth heading, elevation, sub-satellite point latitude (in degrees North) and longitude (in degrees West) positions are provided, along with the slant range (in kilometers), and the slant range distance between the satellite and the ground station (also in kilometers).

A letter displayed to the right of the slant range indicates the satellite's sunlight and eclipse conditions. If the satellite is experiencing an eclipse period, an N is displayed. If the satellite is in sunlight and the ground station is under the cover of darkness, a V is displayed to indicate the possibility that the satellite is visible under the current conditions. If the satellite is in sunlight while conditions at the ground station do not allow the satellite to be seen, a D is displayed. Satellites in range of the ground station are displayed in BOLD lettering. The AOS dates and times for the next three satellites predicted to come into range are displayed on the bottom of the screen between the tracking coordinates of the Sun and Moon. Predictions are not made for satellites in geostationary orbits or for satellites so low in inclination and/or altitude that they can never rise above the horizon of the ground station.

multitracking mode

Solar and Lunar Orbital Predictions

In addition to making orbital predictions of spacecraft, PREDICT can also predict transits of the Sun and the Moon. When making solar and lunar orbital predictions, PREDICT provides azimuth and elevation headings, the right ascension, declination, Greenwich Hour Angle (GHA), radial velocity, and normalized distance (range) to the Sun or Moon.

solar predictions

lunar predictions

The Declination and Greenwich Hour Angles correspond to the latitude and longitude of the object's sub-satellite point above the Earth's surface. The radial velocity corresponds to the speed and direction the object is traveling toward (+) or away (-) from the ground station, and is expressed in meters per second. When the radial distance of the Moon is close to zero, the amount of Doppler shift experienced in Moon bounce (EME) communications is minimal. The normalized distance corresponds to the object's actual distance to the ground station divided its average distance. In practice, the normalized distance can range from about 0.945 to 1.055 for the Moon, and about 0.983 to 1.017 for the Sun.

EME Support

Included with PREDICT is a utility called MoonTracker. MoonTracker supports moonbounce (EME) communications by calculating the position of the Moon, and sending appropriate control signals to an AZ/EL antenna rotator to track the Moon as it crosses the sky. Once invoked, MoonTracker spawns itself as background process, and continues to run until terminated by a kill signal. If the Moon is not above the horizon when MoonTracker is invoked, MoonTracker goes to "sleep" until the predicted time of Moon rise.

Client Applications

The Linux version of PREDICT includes networking code to permit its use as a socket-based server, allowing it to supply real-time tracking and orbital prediction information to client applications using the UDP communications protocol. A number of excellent client applications have been developed thus far for use with PREDICT, and more are on the way.

map program

gsat screen

gsat az/el about GSAT


earthtrack globe

earthtrack zoom

The graphical client applications pictured above are included as part of the Linux version of PREDICT.

pb/pg screen

The latest version of PB/PG (a Pacsat communication suite) for Linux written by Bent Bagger, OZ6BL polls PREDICT for live tracking data, and displays the information in the center of PB's main screen.

Dog running
Written using vi Valid HTML 4.01 Best viewed using ANY browser

PREDICT software is Copyright © 1991-2022 by John Magliacane, KD2BD.
For information on other software developed by this author, please see the software page.