Coder Social home page Coder Social logo

adsbcompare's Introduction

Collection of scripts for visualising ADS-B data and characterising receiver performance.

All scripts here use gnuplot.

compare.sh

This script obtains data from the rrd database collected with graphs1090 by wiedehopf. Graphs1090 configuration /etc/default/graphs1090 should be edited to enable daily export of data for creation of scatter plots:

# enable data collection for caius scatter graphs
enable_scatter=yes

Usage is:

./compare.sh <date1> <duration1> <date2> <duration2>

where the dates are the start date of each period and duration is how long in days to compare. eg:

./compare.sh 2019-07-10 10 2019-08-01 7

Example output comparing two different LNAs:

compare.sh

polar.sh

This script uses data collected either directly from dump1090-fa, or from timelapse1090. It collects aircraft positions, altitudes and signal strengths, and then calculates azimuth, range and elevation to each aircraft from the receiver position. Points are coloured by signal strength, and can be used to help identify receiver blindspots or terrain limitations. Plots produced include:

  • Azimuth/Elevation plot.
  • Position/Signal strength heatmaps for high, low, and all altitudes.
  • Range/Altitude plot.

Prerequisites for running this are: gawk, and gnuplot 5.2 or later. These are not included in rasbian stretch or the piaware image by default, but can be installed by doing:

sudo apt update
sudo apt install gawk
sudo apt install liblua5.3
sudo apt install gnuplot-data gnuplot-nox
sudo apt install jq aglfn

cat /etc/os-release | grep PRETTY

# the following is not required on Raspbian Buster, only on Stretch:
wget -O gnuplot-data.deb http://ftp.debian.org/debian/pool/main/g/gnuplot/gnuplot-data_5.2.6+dfsg1-1+deb10u1_all.deb
wget -O gnuplot-nox.deb http://ftp.debian.org/debian/pool/main/g/gnuplot/gnuplot-nox_5.2.6+dfsg1-1+deb10u1_armhf.deb
sudo dpkg -i gnuplot-nox.deb gnuplot-data.deb

The current version of the script requires a https://www.heywhatsthat.com/ ID to generate a horizon profile and range ring - this should be set in the variables at the top of the script along with receiver height and position.

To collect live data give the first argument as duration in minutes, and the second as the interval in seconds between samples: You need to set your receiver location and height in metres at the top of the script prior to running.

./polar.sh 120 5

Alternatively, invoke the script like this to use data collected by timelapse1090:

bash polar.sh -1

If run directly on the pi collecting data, local data will be used. If run on a separate machine, it will attempt to retrieve the data from the pi specified at the top of the script and then generate the graphs. This is recommended if plotting long periods and short intervals due to the large number of data points generated. Data collected is saved in a file similar to polarheatmap-2019-08-05.

Example output:

elevation

polarheatmap

polarheatmap_high

polarheatmap_low

altidues

altitudes.sh

This script uses data generated by polar.sh to plot a position heatmap coloured by altitudes. Usage example:

./altitude.sh polarheatmap-2019-08-05

altitudes

heatmap.sh

Original heatmap script. Usage is similar to polar.sh, except it must be run on the local machine. Plots are made using latitude and longitude directly, so while accurate may be a little distorted depending on your latitude.

adsbcompare's People

Contributors

caiusseverus avatar wiedehopf avatar adsb-related-code avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.