[GSoC’18|OrbitDeterminator|Aakash] Week #7-8 : Propagation Model

About the Author: Hello guys, I am Aakash Deep. I am an undergraduate student from Indraprastha Institute of Information Technology, Delhi (IIIT-D) in Computer Science and Engineering (CSE). I am a speed-cuber and, my hobby is solving Rubik's Cube. I am also founder of Rubik's Cube Club at IIIT-D.

The post is in the continuation of the series of posts from the past. To read those blogs use these links for blog1, blog2 and blog3.


  • The database module was added earlier to create and maintain/update the database. For the database, we used MySQL.
  • The Gibb’s Method was implemented and OOP concepts were used for the ease of use and better maintenance.
  • Propagation Model was implemented and the output was making some sense.

Database Module

The database module contains two scripts: initDatabase.py and scraper.py. MySQL was used for the database so the database was created and updated locally on the system. Afterwards, this started creating the problem in the build process of the whole module. As the database was stored locally in the system and during the build process, the module tried to connect to the database. Due to this reason, the build process was failing. Therefore, the database was currently removed. We will add the database module later after looking upon it.

Propagation Model

At first, the code was sort of hard coded as it reads the TLE from the celestrak website. It was scraping the data from the website then using the TLE for state vector computation for 8 hours and creating a file and then storing the calculated data into it. Problem with this is that we can not use it for our own data.

Now, the code is not scarping the data from the celestrak website anymore which makes it more flexible as we can feed any TLE as input. There is no more file handling in the code. Hence, the code is no more storing the data in a file instead it is giving the final output as a vector containing all the state vectors which are more usable as an output.

As all the functions are inside a class. It can be easily called by creating an object of the class. Now, you just need to call the function using its class object and passing both lines of TLE  as input which means it can be accessed from anywhere. As output, it will return a final vector which will contain all the state vectors for the 8 hours.

The gibbsMethod.py output is changed in the same format. Now, a single vector is containing all the state vectors and then it is returned as the output of the function.


Tests for the sgp4.py and gibbsMethod.py were written in test_sgp4.py and test_gibbsMethod.py respectively. Documentation of every function is there in the code as docstrings.

Schreibe einen Kommentar