The OrbitTools Libraries
NORAD SGP4/SDP4 Implementations in C++ and C#
by
Michael F. Henry

Provided here are implementations of NORAD algorithms for determining satellite location and velocity in earth orbit.  The algorithms come from the December, 1980 NORAD document "Space Track Report No. 3".  The two orbital models implemented here are: SGP4, for "near-earth" objects, and SDP4 for "deep space" objects.  These two models are widely used in satellite tracking software and can produce very accurate results when used with current NORAD two-line element data.

Public and Standard Editions

In 2002, I created a modern, object-oriented C++ version of the original 1980's era NORAD FORTRAN IV SGP4/SDP4 implementations.  In 2003,  I ported this C++ implementation to C#.  These two implementations represent the Public Edition of my software, and are available free of charge for non-commercial use.  Commercial users must purchase a software license agreement, for which they receive the Standard Edition of the software.  The Standard Edition includes all the features of the Public Edition, plus WGS-84 support, and ECF coordinate support.

Professional Edition and Track Library

In 2009, I integrated the changes recommended in "Revisiting Space Track Report No. 3" (D. Valledo, et al.) into my C# implementation, and did the same for my C++ implementation in 2010.  These two implementations of the software represent the Professional Edition, and are available only to customers who purchase a license agreement.  In 2012, I developed the Track Library as an extension of the Professional Edition.  The Track Library provides implementations of common tasks performed by satellite tracking software, including satellite pass predictions.  Information about the Track Library can be found here.

More information about the the Public, Standard, and Professional Editions of the OrbitTools libraries can be found here.

For excellent information on the underlying physics of orbits, visible satellite observations, current NORAD TLE data, and other related material, see www.celestrak.com which is maintained by Dr. T. S. Kelso. 

Michael F. Henry
mfh@zeptomoby.com
April, 2014


OrbitTools Public Edition
Downloads 

The Public Edition software may be used free of charge for non-commercial applications only; commercial users please contact the author for information regarding the Standard and Professional Editions of the software.

C++
cppOrbitTools.zip (57 KB, updated September 3, 2014) - This download contains a modern, object-oriented implementation of the NORAD SGP4/SDP4 algorithms packaged as C++ libraries.  The download contains complete source code for the SGP4/SDP4 algorithms, miscellaneous supporting classes, and an example program that demonstrates how to calculate the ECI position of a satellite, as well as its look angle from a location on Earth.
 

C#
csOrbitTools.zip (52 KB, updated July 6, 2014) - This download contains an implementation of the NORAD SGP4/SDP4 algorithms packaged as .NET assemblies.  The assemblies are written entirely in C#.  The download contains complete source code for the SGP4/SDP4 algorithms and miscellaneous supporting classes.  Also included in the ZIP file is a companion C# program that demonstrates how to use the assemblies to calculate the ECI position of a satellite, as well as its look angle from a location on Earth.
 

Utility Program Downloads
Example programs written using the OrbitTools Libraries.

AOS Pro  New!

AOS Pro is a reference satellite pass prediction utility.  The program can calculate satellite pass prediction information for any point on the earth, as well as indicate which passes are visible to the naked eye.  Built using the OrbitTools Track Library, it demonstrates the speed of the Track Library's parallel pass prediction engine.  More information can be found here.

Make a Contribution!

Would you like to help promote the maintenance and future development of the software found here?  It's simple!  Click on the "Donate" button to be taken to PayPal, a secure online payment processing website.  Once there, you can make a donation - even if you don't have a PayPal account.  It's safe, quick, and easy.


Copyright  2003-2014 Michael F. Henry.
The author may be reached at mfh@zeptomoby.com