This project vows to create a software capable of tracking known satellites with a huge accuracy as well as allowing the pursue of propagating a specified orbit using perturbations calculations. It will consist of two different systems :
- a satellite tracker using TLE Data for quick predictions for known satellites in the NORAD Database.
- a satellite propagator using ephemeride or user-inputted data in order to predict their future orbits, accounting for various perturbations such as the Moon and Sun, solar radiation or the roughness of the geoid.
This satellite tracker uses TLE Data provided by NORAD in order to estimate the position of satellites at certain times. We used to be doing the estimation in a simple naive way although the estimator needs a SGP4 algorithm in order to provide accurate results.
TLE or Two Line Element is a format capable of transmitting info about a satellte's position easily created and updated regularly by NORAD. It gives us an access to some values of our satellite's orbit through some Keplerian parameters that can be propagated through a SPG4 estimator taking into account perturbations of the satellite's trajectory. However, given the amount of perturbations changing a satellite's trajectory and also the possibility of maneuvers, this data has a low life expectancy. Our code updates its NORAD TLE database by downloading it directly from the Celestrak website where many categories can be found. We managed to associate an active satellites database with many famous debris families such as the Iridium 33 debris. These multiple databases can be switched on/off via the Tracker/Preferences option through checkboxes as shown right below :
Keplerian parameters from TLE Data cannot be used as is and need a specific algorithm in order to estimate the associated orbit. This is the role of the SGP4 estimator algorithm. It is provided by the sgp4 Python library in our case.
git clone https://github.com/EnguerranVidal/PySatTracker.git
cd PySatTracker
pip install -r requirements.txt
To start the GUI, the following command can be entered :
python3 main.py
I first announced the new version to be finilized around the end of Summer 2021 but the GUI and my attempts at creating my own SGP4 propagator lengthen the amount of work needed. But since some personal projects have been finished and college gave me a slight breaks between exams and assignements, I could finally get back to it and finish this version with a SGP4 estimator (not home made however). The promised GUI is finally done, with a lot of work still needed in creating the 3D view and propagator mechanics as well as expand the amount of shown data.
Future additions are as follows :
- Display some info on selected satellites, already found a database for this purpose.
- A satellite propagator for orbit prediction takin into account multiple perturbations such as the Moon and Sun, drag, the geoid potential and Solar radiation pressure.
- A way of creating our own satellite and implementing it into the system.
- Get the ground-track display to be more interactive, repsonding to selection on the map for displaying the ground-track for example.
- An interactive 3D display of each satellite trajectory.
- A over-head passings polar plot, possibly a tool giving multiple passages throughout the TLE data lifespan.
- Creating a play/pause/forward bar for time management/travel to see past trajectories.
- Better the GUI visually through the use of custom themes from ttkthemes