[GSoC2019|OrbitDeterminator|Rakshit] – Wrapping up, Google Summer of Code 2019

Introduction:

During GSoC 2019, I worked on AerospaceResearch.net’s  orbitdeterminator and orbitdeterminator-webapp project, the following is what I was able to add/test/modify to these exciting projects:

  1. A custom perturbation module: Allows user to propagate orbital elements generated by gauss method in environments of different custom perturbations, incorporated SDP/SGP4 models and displays final co-ordinates and initial and final orbital elements.
  2. Least square subroutines: Add support for non-equal weights in least-squares subroutines.
  3. Conversion scripts: Added various functions helpful in orbit determination.
  4. Parsing scripts and Inter-frame coordinate conversion, added support for all angle subformats in IOD data.
  5. Field testing and validation with satobs community.
  6. Comparison mode for web-app: Allows user to compare plots and results produced by various keplerian determination techniques.
  7. Incorporated units, filters and keplerian determination techniques into the web-app.

Custom propagation module:

A script that allows the user to propagate keplerian elements generated by gauss method. Propagation module consists of environments for various natural and artificial perturbation accelerations. User can select ephemeris for sun orbiting bodies both while applying gauss method and while propagating. Options to select SGP4/SDP models for the propagation of earth orbiting satellites. User can change the values of various natural constants or use the default ones. Add option to use NASA NEO Webservice for (comets and asteroids) NEOs orbital data and add method for their propagation. Prints initial orbital elements and final (position, velocity) vectors and final orbital elements. Added support for all angle subformats in IOD format used by satobs.

More units, filters and keplerian determination techniques for web-app:

Added option to select Filters and Methods of Keplerian determination for determining the orbit.

User can now select from the following filters-

  1. Savintzky Golay.
  2. Triple moving average.
  3. Both(Savintzky Golay and Triple moving average).
  4. None (no filter).

User can now select the method of keplerian determination from the following-

  1. Ellipse Fit.
  2. Gibbs method.
  3. Cubic Spline Interpolation.
  4. Lamberts Kalman.

Comparison mode for web-app:

A script that allows the user to generate comparison plots for different filters/methods.

3-d animated plotting:

Better plots for simple visualization using matplotlib.

Conversion module:

Contains various conversion functions essential for further progress of this project.

2. Link to my GSoC 2019 project work:

The main part of the work I did is contained in the following modules:

  • orbitdeterminator/kep_determination/custom_prop.py
  • orbitdeterminator/kep_determination/least_squares.py
  • orbitdeterminator/util/conversion_module.py
  • orbitdeterminator/kep_determination/satobs.py
  • orbitdeterminator/kep_determination/gauss_method.py
  • orbitdeterminator-webapp/app.py
  • orbitdeterminator-webapp/comparison_app.py

The work I did during GSoC is here: 

Orbitdeterminator:

https://github.com/aerospaceresearch/orbitdeterminator/pull/177

https://github.com/aerospaceresearch/orbitdeterminator/pull/168

Orbitdeterminator-webapp:

https://github.com/aerospaceresearch/orbitdeterminator-webapp/commits/master

TODOS:

  1. Refining custom perturbation module.
  2. Add support for radar delay/Doppler observations of Sun-orbiting bodies.
  3. Add support for R.D.E. format data in orbit determinator.
  4. Add support for all formats(IOD, RDE, UK) into the web-app.
  5. Incorporate app.py and comparison_app.py into a single multi-page web-app.
  6. Methods for coordinate conversion when slant range is not available.

Acknowledgment:

The success and final outcome of this project required a lot of guidance and assistance from my GSoC mentors(Arya, Aakash and Nilesh) and I am extremely privileged to have got this all along the completion of my project. All that I have done is only due to such supervision and assistance and I would not forget to thank them.

I owe my deep gratitude to Andreas Hornig(organization head), who took a keen interest in our project work and guided us all along. Also because of the system aerospaceresearch.net has developed over the years working for this organization gave me the freedom to expand my knowledge rather than just implementing stuff that I simply don’t understand.

Contact me at: