In May 2020, we announced that Libre Space Foundation would be mentoring two projects for the Google Summer of Code 2020. As the students are about to submit their final work, we would like to share with you an overview of their achievements/progress this summer. One of the GSoC proposals is to create a Python module to assist SatNOGS operators in tackling RF collisions. More details on the progress of this project and an update about it will be given to you on the SatNOGS blog within the next weeks.
Today, however, we will be focusing on the hard work Adithya Venkateswaran has put in as a valuable member of the Polaris project team. Adithya maintains a personal blog walking the readers through his work and the final post on his GSoC contribution was the inspiration for this post.
Polaris: a quick technical overview.
Before delving into Adithya’s work, allow us to provide some background information, helpful context on what Polaris is about.
Polaris is a command-line based, satellite-telemetry analysis tool using machine learning. Space operators usually have to deal with a lot of telemetry parameters from their satellites, and it is often hard to understand how they impact each other on a global picture. Polaris makes use of the XGBoost algorithm for eXtreme gradient boosting to predict every telemetry in the satellite and provide their inter-importances (like a dependency without the causality). The importance of links between telemetry parameters is represented as a graph in a web-based 3D interface. 3d-force-graph is the graph component used for the output.
Practically Polaris consists of four distinct parts:
- polaris fetch: It fetches data from various sources, such as telemetry from the SatNOGS Network and Space Weather from SWPC (NOAA).
- polaris learn: A machine learning (XGBoost) based module that analyses the relationship of all the data “fetched” and provides a JSON graph file as an output.
- polaris viz: A 3d graph-based visualisation module, which offers an intuitive graph representation of data.
- polaris anomaly (WIP): An autoencoder-based tool (betsi) that detects anomalies in telemetry data and warns satellite operators. In other words, deep learning for space operations.
Adithya worked on several parts of the project and added useful functionality. His main contributions to Polaris were two new modules “Vinvelivaanilai” & “Betsi”.
Vinvelivaanilai is the word for space weather in Tamil. Vinvelivaanilai is a Python module which uses File Transfer Protocol services to fetch space weather data from SWPC/NOAA’s servers and stores it locally or in InfluxDB-based docker-containers.
It also contains functions to parse TLEs and OMMs (any GP data) and propagate the orbit to find the position and velocity of the satellite at any time.
The red coloured nodes in the following graph are derived from Vinvelivaanilai.
Betsi is shorthand for “Behaviour Extraction for Time-Series Investigation”. It makes use of deep-learning techniques to detect anomalies in the telemetry data. The spectrum of an anomaly is broad and it ranges from a simple orientation change to a mega-scale explosion. An explosion capable enough to wipe out all of humanity according to Adithya’s post. But of course, we wouldn’t like the latter to occur.
As the Betsi development team states
If it happened, betsi detected it*.
* You can always change the sensitivity though 😛
In the following graph, the black dotted lines are the breakpoints. Keep in mind though, that at the moment, we are working on finding a better way to represent 200 parameters used for anomaly detection. If you believe you can contribute to the project with ideas, your expertise and knowledge, don’t hesitate to reach out to the team by joining their matrix/element chatroom
As Adithya stated in his blog post, participation in the Polaris project was a more diverse learning experience than what he had expected initially. To this, we believe, that the catalytic factor was the Libre Space community and its continuous effort to share knowledge. Adithya has been an invaluable and active member of this community from the very start. And we could not be more thrilled to see him contribute and participate with such a zest and devotion.
- Adithya learned to read, comprehend in-depth and implement research papers contributing to Betsi’s creation.
- He learned to interface to FTP over Python and learned to create a stable API to fetch space weather data.
- Tested several DBMS to find the best pick for space weather data which will also be future proof.
- He familiarised himself with the Polaris API in-depth to be able to add weather data. Enabling, thus, Polaris to provide better results.
- While also contributing to improving the web graph user experience.
- Currently, Adithya is working on analysing a way to skip the normalisation steps (which converts data to SI units), which will allow Libre Space Foundation to support all satellites whose telemetry can be decoded. At the same time, he is collaborating closely with a satellite team to perform further tests.
- As an active member of our community, Adithya has helped greatly guiding new users interested in Polaris to set it up.
In the future, Adithya and the rest of the Polaris team will be working on integrating Betsi into Polaris and create a way to represent Betsi’s data in a meaningful and useful manner. They will also focus on improving the experience of the visualisation module and adding more input from SatNOGS in Polaris as soon as all the afore-mentioned changes and improvements are implemented.
Adithya’s final GSoC blog post carries a very moving message for his mentors.
All of this was possible because of your support. You not only helped me in my work but also helped me grow as an individual. I learnt so much more than just programming. I learnt to respect and enjoy the open-source culture, make my own decisions, put my point across and defend it. I learnt to be self-sufficient but also approach you when I need it (you were always there to guide me). If any of you are reading this, please know that you have helped me realize the potential I carry in me and I will forever be indebted to you for that!
We wholeheartedly believe that both on an individual and on a community level, our contributors deeply desire to empower their fellow community members and work hard towards achieving that. They do so with as much devotion as we have for the open-source technologies and methodologies. It is the inspiring combination of our community (and its members) and the Open methodologies we follow that empower everyone to continuously dream, contribute and innovate. We truly believe Adithya is one such valuable member of our community, and we cannot wait to see what the future holds for him and see him thrive.