NORAD SGP4/SDP4 Implementations
by
Michael F. Henry

Below 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 report details six orbital models and provides FORTRAN IV implementations of each.  Two of the orbital models are implemented here: 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 datum.

The original 1980's era NORAD FORTRAN IV SGP4/SDP4 implementations were ported to Pascal by Dr. T. S. Kelso in 1995 and eventually became the basis for a modern, object-oriented C++ version I created in 2002.  In 2003,  I ported this C++ version to C#.  These versions now represent the Standard Edition of my software.

In 2009, I integrated the changes recommend in "Revisiting Space Track Report No. 3" (D. Valledo, et al.) into my C# implementation (C++ version coming in 2010).  This version of the code is the Professional Edition and is available only to customers who purchase a license agreement.  More information about the differences between the two editions 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
December, 2004
Updated November 2009


Standard Edition
Downloads 

The Standard Edition software may be used free of charge for non-commercial applications only; commercial users please contact the author for license fee information.

C++
SxP4Test.zip - This download contains a modern, object-oriented implementation of the NORAD SGP4/SDP4 algorithms.  The ZIP file contains 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 and its look angle from a location on earth.
(Last updated January 25, 2009)
 

C#
OrbitTools.zip - This download contains an implementation of the NORAD SGP4/SDP4 algorithms packaged as a .NET assembly.  The assembly is written entirely in C# and defines the "Zeptomoby.OrbitTools" namespace which includes the SGP4/SDP4 implementations and miscellaneous supporting classes.  Also included in the ZIP file is a companion C# program that demonstrates how to use the assembly to calculate the ECI position of a satellite and its look angle from a location on earth.  All source code, for both the assembly and the companion program, is included.
(Last updated January 25, 2009)
 

Make a Contribution!

Would you like to help promote the maintenance and future development of the software found here?  You can!  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-2009 Michael F. Henry.
Permission to use for non-commercial use only. All other uses contact author at mfh@zeptomoby.com