Analyzing Minimum Altitudes in Range Rings

I started running a FlightAware feeder in late March and have been looking at ways to improve reception. The PiAware stats page has the handy polar graph that shows aircraft/positions along each of the cardinal directions and range rings, but it doesn’t show the minimum altitude in each sector. I have been playing around with a way to present that information and created the graph shown below.

To run this I am pulling the /var/dump1090-fa/*.json files over to another host and processing the history files in order based on their timestamps. If I find a valid ICAO, lat, long, alt_baro then I look for the lowest altitude in each sector. I run this every 30 minutes and store the results.

After a little more code cleanup I may put a repository on GitHub and throw the code out there. It’s all written in PHP and uses standard JSON files for storage. I may integrate with a database at some point but haven’t gone down that path yet.

There are several pieces of code that were written to be reused as libraries. These include:

  • Calculate Cardinal directions and range rings based on two GPS coordinates
  • Convert ICAO Hex to N-Number (US Only)
  • Create SVG Polar graphs

I’m also working on one more feature to calculate the track length for aircraft over time. It’s interesting to see instances where my receiver has tracked an aircraft continuously for well over 200 miles. More to do on this one.

Let me know if you’d be interested in the code.

Diggy

Setup
Raspberry Pi 3B+
PiAware SD Card
FlightAware Pro Stick Plus
1090 MHz dipole

2 Likes

yeah, would love to get the code and see what my feeder is seeing

As promised, I have got the GitHub repository setup and the code is moved out there. I apologize in advance for any pain and suffering caused by trying to read the code or read the documentation.

Thanks @kevdel, here is the repository link. Good luck!