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 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.  Information about the many features of the Track Library can be found on the Track Library page.
[NEW SEPT 2017] Additional features include Coverage Contours, Pass Prediction sky masking capability, Orbit Geometry calculations, and Orbit Revolution calculations.

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 June, 2017)


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 (58 KB, updated June 10, 2017) - 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 (49 KB, updated June 10, 2017) - 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 an Earth ground site.
 

Utility Program Downloads
Example programs written using the OrbitTools Libraries.

AOS Pro

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

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