Inspiration

When I saw the category for a space related app, I immediately knew that that was what I wanted to do because I have always been interested in space and more specifically near Earth space travel. I like to gaze up at the stars and ponder about the universe and it is always a treat to catch a glimpse of a satellite passing, however its very difficult to plan a view experience for something like that, so I decided to make an easy to use tool to find out when you can see satellites passing.

What it does

My project is an interactive map of all active satellites orbiting Earth. When the webpage loads it queries Celestrak's database for their last updated measurements. It then calculates the current positions using and mathematical model called SGP4 and displays them on the webpage. Once loaded, the user can pan around to view satellites in different areas or click a satellite to find out more info and find when it will next be visible in your location.

How I built it

The project is built using C++ as a backend for a website and Wt as a library for converting the data to HTML, CSS, and JS for the client. The server sends a web request to Celestrak's database and retrieves the TLE info for all the active satellites. It then parses them and converts them to SGP4 data. The SGP4 data is used to propagate the satellite positions to the current time. These positions are then transformed from 3D space to 2D space and pushed to the client to render. Curl & Curlcpp are used for making the web requests and and SGP4 library called "SGP4 Library" is used for the SGP4 calculations. I would have used my own but I only half finished writing it in the time.

Challenges I ran into

The first major challenge was my inability to complete the SGP4 library. I got it to the point of where it could propagate the satellite info but it was only accurate about 90% of the time due to what was probably an overflow and would probably be fine in 64 bit. I ended up using a publicly available library for this but the half completed code will be on the GitHub still.

Another challenge was making the map interactive. In order to do this I had to write a 3D transform function which I had no experience in and was too stubborn to just look up. I ended up doing all the math myself and got some pretty crazy looking results in the meantime.

Accomplishments that I am proud of

Honestly I am just proud I completed it because there was a large portion of time towards the beginning where it looked like I wasn't going to have anything to show for the time because everything was going wrong. Curl & Curlcpp almost three hours to set up because all the builds were out of date and the build files they came with didn't work, I couldn't figure out how to draw on Wt and the SGP4 propagation was not right.

Also, I am proud of the 3D transform.

What I learned

I learned about the standards for satellite data (TLE) and orbit propagation (SGP) which despite being very interested in space, I had never even heard of. I learned how to use Wt which is very useful and I will most likely add it to future projects.

What's next for Sat Map

Desired Features

  • View the past of future positions of satellites.
  • Have a texture of Earth rather than a blue sphere to aid in positional understanding
  • Draw orbit lines
  • Predict possible collisions
  • Search and filter feature

Built With

Share this project:

Updates