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

The OrbitTools Libraries 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 orbital algorithms implemented in OrbitTools are: SGP4, for "near-Earth" objects, and SDP4 for "deep space" objects.  These algorithms are widely used in the satellite tracking community and produce very accurate results when provided 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 original implementations represent the Public Edition of OrbitTools, 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 support for WGS-84 and Earth Centered Fixed (ECF) coordinates.  See the Edition Information page for more information.

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 updated versions of the library represent the Professional Edition of OrbitTools, and are available only to customers who purchase a license agreement.  More information about the the Public, Standard, and Professional Editions of OrbitTools can be found on the Edition Information page.

In 2012, I developed the Track Library as an extension of the Professional Edition of OrbitTools.  The Track Library provides implementations of common tasks performed by satellite tracking software, including satellite pass predictions, ground track, coverage contours, etc.  Information about the many features of the Track Library can be found on the Track Library page.

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
(Updated December, 2019)


OrbitTools Public Edition
Downloads 

The Public Edition of OrbitTools 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 OrbitTools.

C++
cppOrbitTools.zip (57 KB, updated April 22, 2021) - 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 an Earth ground site.
 

C#
csOrbitTools.zip (45 KB, updated July 31, 2022) - This download contains an implementation of the NORAD SGP4/SDP4 algorithms packaged as .NET assemblies written 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 an Earth ground site.

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-2023 Michael F. Henry.
The author may be reached at mfh@zeptomoby.com