Orbit Determination of a satellite from GPS data

This mini-project was done as a part of my coding interview with Planet for the Satellite Orbit R&D team. Planet is a data analytics company that specializes in geospatial data imaging services via satellite imagery. The company now has deployed more than 350 satellites around the Earth and provides some really amazing services.

The coding interview has two problems to be solved: 1. Orbit determination from GPS measurements and 2. Satellite imaging schedule optimization. Here the first problem and the solution which I had developed in a week are shown below. There were 33 GPS measurements provided and the goal is to predict the satellite’s position for the given period of 48 hours into the future.

With regards to the solution, the Batch Least Square method is used from the Orekit library – a low level space dynamics library. The deck below covers the solution which I submitted to Planet that includes all the details. (The dove on the front page of the deck represents the name Planet uses to address one of their smaller satellites.)

An output file was automatically generated with the determined orbit and a screenshot of it is shown below. This format is particularly preferred as it is a standard for orbit ephemeris data storage according to the CCSDS format.

The code used in this project can be found in the page here.

Description

This project was done as a part of my coding interview for the Orbit R&D position at Planet. I had one week to complete two problems: 1. Orbit determination and prediction from GPS measurements (covered here) and 2. Satellite constellation imaging schedule optimization. This problem took me three days to code given that I had no prior knowledge of Orekit.