Satellite data collection without a permanent antenna requires some planning. I usually find when the best passes are for the week, and see if I have free time in my schedule to run out and collect data. Programs like gPredict and websites like https://satnogs.org/, or apps like Heavens Above can use TLE data to calculate when the satellites are going to pass overhead.

TLE or Two Line Element data is a format for describing the orbits of satellites. NASA and NORAD developed a data format in the 70s to describe the orbits of satellites that can fit on a punch card. Long gone are punch cards, but the TLE format is still used today.

An example here:

ISS (ZARYA)
1 25544U 98067A   08264.51782528 -.00002182  00000-0 -11606-4 0  2927
2 25544  51.6416 247.4627 0006703 130.5360 325.0288 15.72125391563537

For more information on TLE data, see https://en.wikipedia.org/wiki/Two-line_element_set

Other Tools

I had been using gpredict on my Debian machine for the last few years. It is a great application and should be your first stop on your satellite journey.

gpredict

I was getting frustrated with it because you need to search through each of your selected satellites to find the next pass with a decent minimum altitude. Minimum altitude in this case means: at the highest point in the pass, what is the angle from horizon of the satellite. A value from 0 to 90 degrees, higher the better for low earth orbit. With gPredict it takes three clicks per satellite to find its next pass filtered by a minimum altitude, and on the main screen it will not filter the minimum altitude. Multiple times I thought a decent pass was coming up just to find out that it was an unfiltered pass at 5 degrees above horizon.

I then wanted to use the Heavens Above Android app but they do not have the latest Meteor M2 data in my version of the app. People recommend SatDump, but it cannot download the latest TLE data, so that program does not work either.

spaceboi

I decided to take my pain points, and write my own application, spaceboi. With spaceboi I wanted to let the user easily see the next satellite events in their area, without going through dozens of menus. I want the minimum altitude to filter everything, even on the main screen.

spaceboi

This first pass has both a CLI and a GUI. The command line interface lets you get a readout of the next passes for your selected satellites filtered by a minimum altitude. The GUI shows a map of the world, a table with the upcoming passes, and polar plots of the passes. The GUI is written in Python with PyQt5, skyfield, and matplotlib. TLE data is download from celestrak Skyfield takes in TLE data and calculates the relative position of the satellite to the observer. Matplotlib is used to plot the polar plots and the map.

The code is available on github. Or on pypi with pip install spaceboi.

I hope you can try it out and let me know what you think. I am open to any feedback, drop me a line on my contact page.

I hope in future version to flesh out the configuration page. Perhaps add a downlink database for users to identify the frequency of the satellites, and themes for the GUI. I also want to add more visualizations on the map to show the orbit of the satellites.

-E