Austin Ogle

Date of Award


Document Type

Thesis - Open Access

Degree Name

Master of Science in Engineering Physics


Physical Sciences

Committee Chair

Dr. Edwin Mierkiewicz

Committee Advisor

Dr. Stephen Gillam

First Committee Member

Dr. Sirani M. Perera

Second Committee Member

Dr. Muhammad Farooq

Third Committee Member

Dr. Chad Brodel


Accurate orbit determination techniques are fundamental to the maintenance and execution of any ongoing space-based mission. This project serves as a guide and demonstration of a batch sequential least-squares filter for Earth-orbiting satellites using exclusively open-source technologies. The target audience for this project was an academic institution aiming to keep track of an irregularly documented satellite. The observation function mimics a telescope, accepting right ascension and declination as measured values.

State propagation was handled using the Poliastro library. This package boasts FORTRANlevel speed by utilizing the DOPRI8 integrator, explicitly calling FORTRAN code. Matrix inversion was solved using the SciPy banded solver function, a wrapper for the LAPACKdgbsv function, also written in FORTRAN. Frame conversions between ITRS (ECEF), GCRS (ECI), and ICRS (J2000) were handled using Astropy.

A suite of tests with a range of noise were run to verify appropriate convergence of algorithm. In each case, the algorithm converged as expected with reasonable variances that changed in an anticipated fashion. These tests demonstrated that it is possible to achieve sub km accuracy for LEO satellites with 10 observations given 1 arcminute uncertainty and noise.

Despite the interface requiring manual, the backend has been optimized to save memory supporting large batches of observations. As a result, the project detailed in this report requires little adaptation to support a much larger scale use such as tracking orbital debris. Any such changes are outlined in the designing a system subsection 3.3.1 or future expansion chapter.

A GUI was assembled to support users with a limited coding background using Kivy.