Signal Strength Heatmap

Could someone please explain why the elevation of this plane is so low on the azimuth/elevation chart, when the elevation vs distance chart shows it accurately?

Should I be interpreting the elevation in the azimuth/elevation chart as

  • the angle of elevation from the ADSB, or
  • the height of the plane above sea level

(if you look carefully you’ll see the trace begins at 35,000 feet. PS I have reset timelapse1090 in order to just capture a simple plane, to reduce confusion)

Thanks for your help

I’m not sure whether the resolution of the images posted here will be sufficient to see the trace.
If not, please see the original files here:
https://drive.google.com/open?id=1LM84O618Qhb7NudZG_rQtdkHeURCfKNh

Elevation is an angle, altitude is a distance. A small elevation means that the aircraft is close to the horizon as viewed from your site, not that it’s close to the ground.

1 Like

Understood. Thank you

Is it somehow possible to generate these charts using only a subset of the timelapse1090 data?

I have timelapse1090 configured to save 1 week worth of data at a time. I find this a useful time frame to keep tinelapse1090 data.

The tricky part is: I’m aiming to generate a clean set of charts at midnight each day, which cover the 24 hours beforehand.

Is there a way to configure polar.sh or polar.conf to use only the most recent 24 hours of data from timelapse1090?

Thanks very much

Is it possible? Yes - the json data contains time stamps which could be used to filter by date/time.
Can the current script do it? No, and it’s not something I’m likely to add at the moment. If you want to try it yourself, then I’d point you in the direction of the documentation for jq, which is the tool used to extract the data from the jsons, and jqplay, which is very useful for testing filters.

Depending on the interval you are saving data at and how busy your site is, be aware that you might run into problems with memory limitations processing a weeks worth of data at a time.

1 Like

Much easier to set timelapse for a day and then letting the polar script save the data.
There is even a setting for that.

Then you just make different directories with the polar script.
Let it run every day (in every directory).
One directory you delete the data after every run or just disable the setting in regards to saving the data.
That will be your daily plot.

Other directories you only delete the data if the timeframe you want has elapsed.
The script still runs every day but as it saves the data, more data accumulates.
You’ll of course have to also take care of the pictures.

Edit: Removed a remark, this thread is too nice for flames.

I don’t think there’s any need for any hostility. Just bear in mind that not everyone is writing in their first language and that written communication can be easily misinterpreted - give people the benefit of the doubt. This is a remarkably friendly forum compared to many and it would be good if it stayed that way.

That aside, I updated the script to add the range ring to the map plot as requested by @keithma. I’ll be adding some airport data to it as well as soon as I’ve decided how to display it.

3 Likes

Demanding an answer to a question like that isn’t the best tone in my opinion.
You have been asking for custom solutions since you started writing in this thread.

But my previous remark wasn’t useful, i’ll try again without the tone:
Think for yourself, show a little initiative, that goes a long way.

1 Like

A few changes:

  • Added airport data. Data is public domain from Ourairports, so not guaranteed to be accurate - fortunately you can just edit it on the website if you see a problem. Azimuths are shown on the elevation plot, ranges on the altitude plot and locations of airports on the map plots.

  • Position and altitude are now taken from the heywhatsup data file - this should help reduce problems people have had where the locations don’t match exactly. I’ll probably tidy this up further in future, as it effectively makes the location settings in the script unnecessary.

  • Some tidying up to hopefully make things a bit more resilient in conjunction with the above. Should avoid some bugs with rendering things like horizons.

Airports are currently labelled with IATA codes as they are a bit more human readable than ICAO codes. The data is present for both however, so can easily be changed if required.

Let me know if you have any problems.

3 Likes

I have an error with this new version :

Using config file
HWT OK
ADS-B and MLAT aircraft will be plotted
Using tmpfs : /tmp/tmp.cwmQRZkL2K
Using local archive:
Unpacking compressed data:
.....................................
Retrieving recent history:
...............................................................................
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:  48.54764
Longitude:  2.42108
Height:  85.344
Number of data points collected: 1413434
Calculating Range, Azimuth and Elevation data:
Filtering altitudes
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 8178k  100 8178k    0     0   682k      0  0:00:11  0:00:11 --:--:--  846k
Generating all altitudes heatmap...
Generating high altitude heatmap...
Generating low altitude heatmap...
Generating close range heatmap
"/dev/stdin" line 65: undefined variable: reset
"/dev/stdin" line 65: undefined variable: reset

Thanks.

I generally remove the upintheair.json file before I run the script as I seem to remember that it needed to be regrabbed after making some changes. I’ve just done that, downloaded the latest polar.sh and now I get this error:

Using config file
HWT OK
ADS-B aircraft only will be plotted
Using disk : /home/pi/heatmap
Using local archive:
Unpacking compressed data:
.....................................
Retrieving recent history:
.........................................................................................................................................................................
Processing heywhatsthat.com data:
jq: error: Could not open file /home/pi/heatmap/upintheair.json: No such file or directory

It looks as though it hasn’t tried to grab it.

/edit - I’ve put upintheair.json back manually, re-run the script and it appears to have completed successfully - Results here.

Number of data points collected: 2765974
Calculating Range, Azimuth and Elevation data:
Filtering altitudes
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 8178k  100 8178k    0     0  2055k      0  0:00:03  0:00:03 --:--:-- 2054k
Generating all altitudes heatmap...
Generating high altitude heatmap...
Generating low altitude heatmap...
Generating close range heatmap
Generating elevation heatmap...
Generating Range/Altitude plot...
Generating Close Range altitude plot
Generating low heatmap with map overlay
Graphs available at :
http://192.168.1.182/dump1090-fa/plots/
Graphs rendered in 1522 seconds
1 Like

Generating close range heatmap
“/dev/stdin” line 65: undefined variable: reset

Generating Range/Altitude plot…
“/dev/stdin” line 102: undefined variable: x

 dir.'/small' u ($9/1852):($10/1852) with points pt 7 ps 0.3 lc rgb "green" notitle, \

must be

 dir.'/small' u ($9/1852):($10/1852) with points pt 7 ps 0.3 lc rgb "green" notitle

and

dir.'/small' u ($8):($7/1852) with points pt 7 ps 1.5 lc rgb "green" notitle , \ 
reset	

should be

    dir.'/small' u ($8):($7/1852) with points pt 7 ps 1.5 lc rgb "green" notitle

reset

This should be fixed - problem was that the test for changed ID didn’t account for a missing file.

This should also be fixed - was just a typo. Odd that it didn’t cause an error for me though.

3 Likes

Sure is, thank you…

@caius, the enhancements you are making to this project are great but if it’s not too much to ask…

Given that Hey What’s That is so important to the process, would it be possible to move the validation steps to the beginning of the script so they take place before the data collection phase rather than afterwards?

It does check that an ID has been entered right at the start, and will stop if one isn’t present. The script will stop if an invalid ID is entered as the download will throw up an error, but that won’t happen until after data is collected atm. I could rearrange things so that the ID is processed before data collection starts I suppose, but I need to add some more error checking first.

Hmm i’m thinking if it would be possible to do the plots without the HWT stuff in case it’s not working.

But dynamically modifying the gnuplot scripts seems to be a pain.
Maybe just give it some default data to chew on in case the HWT stuff doesn’t work out?

I guess bailing out before doing any real work also makes sense.

2 Likes

Yeah I’ve been thinking about how best to do it for a while - someone before had a problem because HWT only covers to latitude 60 (data originates from a shuttle mission, and that’s the orbit it had). The options are to have an alternate gnuplot block without the hwt stuff in it, but I think that means everything has to be duplicated and makes it unnecessarily complicated.

I think generating some dummy data files that are empty would work OK - gnuplot should just throw up an error, but still produce output on the data it has. It’s next on the list of things to do, so I’ll have a play with it later.

1 Like