For the third year in a row, Libre Space Foundation is selected as a mentoring organisation for the Google Summer of Code program. The application period has now closed and the results are in! The three projects that will be participating in this iteration of the Google Summer of Code via Libre Space Foundation are the following. Let us check them out:
Expanding events detection in Poliastro
Poliastro is an open-source, python library for interactive astrodynamics and orbital mechanics. This project will work on expanding the event-detection capabilities of Poliastro. It plans on achieving that by adding several event-detection algorithms and methods to it. These detectors will allow Poliastro to calculate eclipses, collisions, line-of-sight, sunlight exposure, altitude thresholds, longitude/latitude crossing, visibility of orbiting objects from a location on earth, and sunrise/sunset and moonrise/moonset times also from a location on earth.
Rich analysis reports for Polaris
Polaris is an open-source tool that applies machine learning to satellite telemetry. This year’s project will create a visual module for Polaris. This will use the results of its anomaly detector to generate web-based interactive graphs, visualising anomalies and their points of occurrence. At the same time, it will allow pdf generation and command-line tools for these.
Improving the transmission capabilities of gr-satnogs
Gr-satnogs is the GNU-Radio, Out-of-tree module used by the SatNOGS open-source satellite ground-station network. The scope of this project is to expand the current transmission capabilities of gr-satnogs. This has already been tested on UPSat while in orbit and on Qubik 1 and Qubik-2 in the lab. To achieve that the project aims to improve the gr-satnogs transmission framing API and add new encoders to the already existing AX.25 and IEEE 802.15.4 such as the Nanocom AX.100, various AMSAT-related encoders and more.
Google Summer of Code is an annual program offering university students the opportunity to work on open-source projects during their summer break while earning a stipend! Libre Space Foundation is devoted to working on open-source space technologies and you can find out more about our Principles regarding open-source and space in our Manifesto.
This year’s Google Summer of Code application received 6991 applications submitted by 4975 students from 103 countries. These applications were reviewed by 199 mentoring organizations. Eventually, 1292 students from 69 countries were selected.
We are thrilled to be part of this grand initiative. But we are also excited and looking forward to working with our students over the next few months. Congratulations to everyone and welcome aboard!
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.
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.