Satellite constellation imaging schedule optimization

This 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 had two problems to be solved: 1. Orbit determination from GPS measurements and 2. Satellite imaging schedule optimization. Here the second problem and the solution which I had developed in a week are shown below.

Here, there are 15 satellites in the constellation, for which their positions are provided. Furthermore, the position of the sun relative to each of the targets is provided for evaluating how the illumination (lighting conditions) change during an imaging activity, and finally, a list of targets (cities) is provided. The goal is to optimize the imaging activities for this constellation.

Now, let’s dive into the motivation of the problem. Satellite constellations have numerous satellites (15 satellites in this problem) in different orbits at a particular time. The amount of “good data” collected by these satellites is directly proportional to the revenue the company makes. Hence, the question to be answered is “How can a satellite constellation take the highest number of good images (with proper lighting, clear skies, big cities, and important resources) in a particular time period?”. So the goal is to find a schedule that contains a list of imaging actions for each of the satellites for a given time period, which would look something like this:

Here, the schedule contains the satellite name, the target id (city name) for taking an image, the location of the satellite, and the elevation information of the satellite relative to the target. The deck shown below covers all the implementational details of the project.

The jupyter notebook which contains all the code can be found here.

Description

Optimization has been one of my passions throughout college. Large scale optimization in particular intrigues me and I love any opportunity of solving problems related to it. This project was particularly interesting to me as it was extremely challenging but I was driven to solve it. Constellations are going to be widespread and having this opportunity to gain an insight into solving such a difficult problem was so much fun!