Supporting knowledge and scientific research are among our main goals at Libre Space Foundation. This is why we have been participating in the Google Summer of Code for the third year in a row, mentoring three amazing projects. The first project is about Improving the transmission capabilities of gr-satnogs developed by Michalis Raptakis. We presented this project in more detail last week. This week, we are delving into Poliastro.
Poliastro and GSoC
In 2021 Poliastro is participating in the Google Summer of Code programme via Libre Space Foundation. Yash Gondhalekar, a Computer Science student at the Birla Institute of Technology and Science in Pilani, India, is spending the summer working on the project. Tinkering with the code to achieve a streamlined execution of algorithms, adding event detection capabilities and improving the tool.
Poliastro: An Introduction
Poliastro is a pure Python library that provides an API tackling issues of astrodynamics and orbital mechanics. Its goal is to benefit users by providing valuable scientific information. This information will contribute towards creating more effective space strategies, improved orbital designs and more efficient maintenance policies.
The software for this tool is under constant improvement and development. Thus updates are to be released regularly.
Poliastro: A closer look
Events detection is a challenging process. Upon embarking on the GSoC experience, the Poliastro team began focusing on the eclipse detector, which appeared to be a more challenging task to tackle. After brainstorming over the most suitable method to handle this, the team decided to opt for SciPy’s event support.
Though SciPy did offer a solution to approach the issues, the team “.. still needed to come up with a time-varying and continuous “shadow” function without having to solve analytical equations manually .”
For this to be achieved, an equation had to be formulated.
After a series of geometric manipulation tests, an equation was created comprised of classical orbital elements. But the team did not stop working on the solution. As Yash points out, ” We were still questioning the performance and complexity of the method since by enacting it, we could lose the accuracy of entry and exit times of the event. In any case, the other (methods) didn’t seem to work just yet, so we decided to go with this approach since it looked feasible.”
At the same time, the team also worked on the altitude and latitude crossing detectors. However, soon enough, they realised that there are far more intricacies in the longitude detector. This required more thinking and more exploration to find the right approach and method to deal with the issue. ” All the events are supposed to work for any attractor, thus aligning with one of (the )Poliastro’s aims of having capabilities not restricted to (the )Earth.”
By leveraging some of the in-built functionalities of solve-ivp, users can stop the integration when an event is detected or control the direction of triggering an event. With the development of validation cases for the Orekit software, the team enhanced the possibility of further implementation; the tool was optimised even more by adding tests, fixing bugs and improving computation.
You can read how the team went about approaching all the issues arising in Yash’s detailed article.
Want to join the team?
As is the case with all the project communities at Libre Space Foundation, the Poliastro team is an open and inclusive community welcoming members from all over the world. In his first article about the GSoC experience with Poliastro, Yash states, “Needless to say, this is a place where I would get to interact with an engaging community and learn several things”.
If this sounds like an interesting project to you and you want to be part of this team, you can join the dedicated Poliastro channel on element/matrix and contribute to the discussions there.
The next steps
Yash and the team are working hard on further optimising Poliastro, and in the weeks to come, more event detectors will be included!
*You can follow the updates of the Poliastro project here.