FlightAware Discussions

Signal Strength Heatmap

Yes, that’s a possibility as well. To get a plot for a month at a time of this you could concatenate these files, or modify the script to re-read them sequentially.

Thank you both for pointers, it’ll be fun getting all this to work this week.

I suppose my use case is a little different after all, as I’m also interested in seeing exactly what the effects of various buildings and local terrain have on the availability of signals, and the relative signal strength. I’m also comparing a subrurban site in Limerick Ireland with a top floor apartment site in Zurich

I do have some benchmarks of a sort to report, bog standard, no overclocking:
Pi4b :- 2490 data points processed per second.
Pi3b+ :- 912 data points processed per second
Pi2b+ :- 601 data points processed per second

1 Like

The number of aircraft you see at a time is more indicative of how large the data will be. It doesn’t directly use the messages received from aircraft, so message rate doesn’t really affect it much. It takes snapshots of the visible aircraft.

For what it’s worth, you don’t really need a month of data to see where you have terrain masking - 24 hours is sufficient to see that. For example:

I did some collecting of data for november; graphs and videos of daily and hourly graphs:
(The whole monthly graph is just a bit too much data i think)
altmap for november 2019

video of daily (24h) altmap for november 2019
video of hourly (1h) altmap for november 2019

Anyone else see this perfect circle on their heatmap for Wednesday 4th December?

Main receiver

Loft receiver

Martello Tower Group receiver

Yes, it was a NATO E-3 Sentry. Was orbiting there for some time during the day:


1 Like

That’s very cool. Good spot.

My receiver captured this as well on November 21st:

After a while the aircraft was heading home:

1 Like

I live within striking distance of Travis Air Force Base and get these circles from time to time. Can be over land or over the Pacific.


1 Like

That was my birthday!

Some more :slight_smile:


Is there an easy way to install this? I can’t find the specific command line instructions anywhere and I really don’t want to break my new install of Raspbian Buster.

Disregard, I got it working.

I’m loving the plots. It’s taking me some time to figure this all out as i’m no coding or linux expert! The one thing i am really struggling with is the following output however.

pi@raspberrypi:~/Heatmap $ ./polar.sh 1 1
Config file found
Processing heywhatsthat.com data:

Setting receiver position from heywhatsthat data. If these values do not match what you are expecting, please check the heywhatsthat ID is correct and that it was generated with the correct location
Latitude: XX. XXX
Longitude: XX.XXX
Height: 119.8288

ADS-B aircraft only will be plotted
Using disk : /home/pi/Heatmap
Gathering data every 1 seconds until Wed 20 May 18:39:51 BST 2020
Number of data points collected: 65612
Calculating Range, Azimuth and Elevation data:
Filtering altitudes
Generating all altitudes heatmap…
"/dev/stdin" line 34: Can’t plot with an empty cb range!

Can anyone help as to what the issue is?

It’s complaining about the range of the colour box setting - that’s the key that shows the range of signal strengths on the plots. It is set automatically from the data, but if the data produces odd stats for some reason it could cause an error like this.

Take a look in the data you are plotting. If you open the file containing the data, the signal strengths are in the third column, for example:


It should contain all negative numbers.

If that looks ok, then try making an edit to the script and run it again.
Change line 406 from
stats dir.'/heatmap' u ($3) noout
stats dir.'/heatmap' u ($3)

and run the script again.
That will make gnuplot output the stats it’s calculating and I can see what’s going on. The bit I’m interested in looks like this, to save posting all of it:

  Mean:             -10.1868
  Std Dev:            8.0318

So i have looked inside the heatmap file produced after running ./heatmap.sh and it was full of the following;


Every line in the file was the same.


I am currently running;

nohup ./heatmap.sh 60 1 & and am being given the following output;

[1] 4771
pi@raspberrypi:~/Heatmap $ nohup: ignoring input and appending output to 'nohup.out’

This is creating a new heatmap and nohup.out file. The heatmap file so far contains several lines of;


but it is also populating several different lines that look similar to;


UPDATE: The above heatmap completed and it appears it has run successfully. I suspect the issue may have been a lack of data as it was quiet when i was running the very short test maps to determine that they were working.

The one thing the png output images are missing however is the green geographical outlines and airports etc. On first running the script it generated the world_10m.txt and airports.csv files so i’m not sure what the issue is here.

As well as the png files there are also several files named heatmap_low, heatmap_high and heatmap which are produced. Am i’m assuming these are just data files and i do not need to do anything with these?

Thank you for the help

Image one looks as i would have expected the map to loo like. (Traffic above 25’000)

Image two appears to be missing any data however this was expected as there was no low level traffic during the capture.

Image three appears to have my location plotted at the very top of the image and not central for some reason. My lat/lon is 56 / -2 but the image appears to plot from 0 - 60 lat.

As you can see, all appear to be missing the green terrain outlines and airports etc.

heatmap.sh won’t produce the plots with the outlines. That’s the first version of the script and is much more basic. From memory it doesn’t explicitly set the ranges for each axis, so if there’s not much data it may look odd. The one that produces all the other plots is polar.sh.

If you have timelapse1090 installed, polar.sh can use the data it collects to produce the plots, so you don’t have to use nonup to do it.

You can do:

./ polar.sh -1

rather than set the time and interval.

Thanks for the quick reply, caius :slight_smile: and that explains why i don’t have the full set heatmaps - I was only running ./heatmap.sh and not ./polar.sh !

I have only installed timelapse1090 this morning but have had graphs1090 installed for over a week, so i’m not sure if ./ polar.sh -1 timelapse1090 will work?

One thing i noticed on the ./polar.sh run is that i can now successfully view the output at http:///dump1090-fa/plots/ :grinning: The only issue is the RSSI range is set from -2 to 0 so nothing appears to have been plotted. I will need to somehow change this.

EDIT: I now realise the RSSI range was/is governed by the RSSI info gathered, and the scale will adjust as necessary.


I have just ran ./polar.sh 60 1 having made the edit to line 406 as you suggested. I look forward to the output and will post *COLUMN results as asked.