The OrbitTools Libraries
NORAD SGP4/SDP4 Implementations in C++ and C#

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 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

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++ 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

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. 

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

Introducing the Track Library
Now available in both C# and C++

Available as an optional addition of the Professional Edition of the OrbitTools Library is the companion Track Library.  The Track Library provides implementations of common tasks performed by satellite tracking software, including pass predictions, ground track determination, etc.  More information about the Track Library 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
January, 2014


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 (55 KB, updated January 12, 2013) - This download contains a modern, object-oriented implementation of the NORAD SGP4/SDP4 algorithms packaged as C++ libraries.  The download 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.
 

C#
csOrbitTools.zip (47 KB, updated January 12, 2013) - 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 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 and its look angle from a location on Earth.

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.
Permission to use for non-commercial use only. All other uses contact author at mfh@zeptomoby.com