Polaris: Applying Machine Learning to Satellite Operations

At Libre Space Foundation, we are dedicated to developing and supporting open-source space technology and projects that promote knowledge and improve space operations. Polaris is a project developed with the support of Libre Space Foundation (LSF). It brings together developers, engineers and university students from around the world. A diverse group of people with a shared interest in space and open-source technology. They are the ones working hard on designing, developing and optimising Polaris: a Python-based, Μachine-Learning (ML) tool, developed in an open-source, collaborative way, aimed at applying machine learning to satellite telemetry.

Polaris ML for SpaceOps

The challenge: Satellite operators, during a mission, have to tackle a daunting yet critical task; to monitor and keep track of numerous telemetry parameters to maintain a clear idea of the behaviour of their satellite. They need to comprehend how these parameters interfere with each other and estimate their impact accurately.

The Solution: This is where Polaris ML gets into the picture. It is a command-line based, machine-learning tool providing a satellite-telemetry analysis that can be of great help to satellite operators. The data collected are turned into comprehensive graph visualisations, using machine-learning models to understand and predict a satellite’s behaviour. Other data sources are also converted into valuable information available to spacecraft operators.

Note: Before examining Polaris ML in more detail, allow us to describe briefly how satellite operators handle these issues at the moment. Though satellites are built to be more self-aware nowadays, operators are still required to jump in and evaluate the situation by setting manual limits. This is called the Out-Of-Limit (OOL) technique which analyses and evaluates the behaviour of a satellite by collecting data and raising out-of-limit alarms about the state of a satellite. Consequently, a ‘soft out-of-limit’ alarm indicates a dangerous trend, while a ‘hard out-of-limit’ alarm is indicative of a failure occurring.  At this point, let us clarify that Polaris ML does not seek to replace operators or the techniques already applied. Instead, what Polaris ML is after is to be able to provide assistance and amplify the process. Polaris ML is after becoming a reliable, efficient and complementary solution for Space Operators.

A closer look

Before analysing the project, let us point out that this is a tool under active development, thus, the interface is very likely to change. Allow us now to delve into the different components of Polaris ML.

Polaris ML makes use of the XGBoost algorithm to analyse the relationship and the inter-dependencies between telemetry parameters. The XGBoost library allows for eXtreme gradient boosting. This is an approach enabling new, updated, and better-informed models to be created by predicting the errors of the previous models. Then, both models are added together to deliver a final prediction. Using this approach, Polaris ML predicts every telemetry parameter in a satellite. It then provides a graph illustrating the interdependence between the parameters, depicting the degree to which one parameter affects the other. The importance of telemetry parameters and how these are linked is presented as a web-based, 3D-interface graph. 3d-force-graph is the component used for the graph output.

Polaris ML is made up of these distinct parts:

  • polaris fetch: As the name reveals, this part fetches the data from various sources. Including telemetry data from the SatNOGS Network and Space Weather from SWPC (NOAA).
  • polaris learn: This part consists of a machine-learning (XGBoost)-based module that analyses the relationship of all the “fetched” data and returns a JSON graph file as the output.
  • polaris viz: A 3d graph-based visualisation module providing an intuitive graph representation of the data.
  • polaris convert: A tool used to convert graph outputs from “polaris learn” and “polaris viz” into other formats. For now, it only supports the .gexf formats, which is a language utilised for describing complex networks structures, as well as the associated data and their dynamics.


Vinvelivaanilai is a Python module that fetches space weather data from servers of SWPC/NOAA. It then stores the data in text files or on the InfluxDB. It also includes functions enabling TLE and OMM parsing (any GP data) and propagating the orbit of a satellite to locate both its position and its velocity at any given time.

Vinvelivaanilai is the word for space weather in Tamil.


The word BETSI stands for “Behaviour Extraction for Time-Series Investigation”, and it aims to implement a state-of-the-art model to detect anomalies automatically without any manual intervention. The model for creating the concise representation is called autoencoder, and it utilises deep-learning techniques to detect any anomalies found within the telemetry data.

But what exactly is an anomaly? 

Anomalies are all events that fall outside the spectrum of the nominal behaviour of a system, generating massive shifts in the values of one or more parameters. Anomalies can have a catastrophic impact on the satellite, especially since their spectrum is quite broad, as it may range from a simple change in orientation to a massive explosion. (One can only imagine the impact).

Polaris ML in a nutshell

Polaris is an open-source, python-based solution developed to facilitate space diagnostics and help spacecraft operators investigate anomalies. It aims to support and enhance satellite operators to improve their processes by enabling them to detect spacecraft behaviour and helping them drive their investigations when anomalies occur.

Valuable Resources on how to get started and join

As we plan to take this project to a broader scale and see it developing further and expanding, we have created a list of resources that can help you familiarise yourself with Polaris ML. To start with, these are the Polaris repositories on GitLab. Then, you can check the detailed documentation that is available online as it walks users through the Polaris ML project. There are also several exciting talks and presentations by some of the members of the Project.

Want to join the community? Find out how you can get in touch with the team

Polaris ML is backed up by a diverse, international team, welcoming people from different continents, cultures and backgrounds. The project is developed in a collaborative, open-source way and is fostered by an inclusive community. If you want to join, you can contact the team at the dedicated Polaris ML element/matrix channel: https://app.element.io/#/room/#polaris:matrix.org. You are welcome to join the channel, introduce yourself and contribute to the discussions there.

Polaris ML and GSoC

The Polaris ML team welcomes students from all over the world, and it is a popular project sought after by students applying for the Google Summer of Code program. Polaris ML participates in the programme for the third year in a row. The entire team has had great experiences with GSoC, and the project itself has expanded due to the support and contribution of the GSoC students. Adithya Venkateswaran, who has created the Vinvelivaanilai library, has been a star student of GSoC and is an integral member of the Polaris team.

What next?

Polaris ML is an aspiring project with great potential; it aims to optimise space diagnostics, reduce operation workload and enhance autonomous spacecraft operations. With the help of machine learning, Polaris ML aims at becoming a reliable, scalable solution for Space Operations. The project is still developing, optimised to deliver even better intuitive graph models, creating valuable and dynamic anomaly reports. Polaris ML is after opportunities to implement and test this solution in future satellite operations. We have already worked with BOBCAT-1  and the QUBIK pair of satellites. Still, as we wish to improve further and expand, collaborations with satellite operators for upcoming missions are welcome. Especially since we want to test further and optimise the solution itself and its key components.

Leave a Reply

Your email address will not be published. Required fields are marked *