Week 2


This week I figured I would talk a little bit about the topics I have been researching while putting together my project plan. My project is an application to track satellites with HAM radio capabilities in an AR view of the sky, sort of like the Night Sky app. This would allow for a radio operator to easily aim their antenna at a satellite and get the right radio frequency to communicate with it. Since my project is focused around tracking the satellites themselves, that’s what I dove into first.

Before starting this project I didn’t really know anything about tracking satellites, so this has certainly been a learning experience for me right out of the gate. There are many websites and apps out there that let you track a seemingly endless set of stuff in space, but I didn’t come across any services or web APIs that provide this information programmatically. It seems like most of these applications propagate positions using their own internal logic. After digging into this more, I discovered that organizations like CelesTrak and Space Track provide element sets from which satellite positions can be propagated using a library called SGP4 which was originally developed by the US government in 1988 and described in Spacetrack Report #3. Propagated satellite positions allow you to predict where a satellite will be at a given moment in time.

Element Sets

Tracking the position of any object in space starts with getting a set of numbers, or elements, that describe its orbit. In my research I saw element sets referred to as TLEs (which describes a specific data format), General Perturbation Element Sets, Keplerian Elements, etc, but I will just refer to them as element sets. The AMSAT website has a nice tutorial that walks you through the element set structure and how to use each element. For my purposes, the key piece of information is the Epoch, which is a timestamp indicating when the element set was created. This timestamp is important because the nice Keplerian orbit that can be calculated from it will eventually become so affected by gravity from other objects, the imperfect shape of the Earth, atmospheric drag, etc that the actual position of the satellite will eventually decay from it’s predicted orbit. Many satellites also have engines or thrusters that keep them in a specific orbit.

SGP4

This is where the SGP4 code comes in. Over the years this has been refined to accommodate for variables that cause a predicted orbit to decay. It cannot predict satellite positions indefinitely into the future or past, but apparently it can accurately predict satellite positions a few weeks out from the epoch timestamp. Space Track has released SGP4 in the form of binaries (you must be logged in to see the page), and there are numerous other implementations out there. One of particular interest is a python library called Skyfield with a specific set of tools for propagating positions for Earth Satellites.

After doing this research, I was surprised at how scattered this information is considering how important satellite tracking is for many applications. Hopefully you found this interesting – I certainly did!

Print Friendly, PDF & Email

Leave a Reply

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