All Projects → JorgeGT → PlotRTL1090

JorgeGT / PlotRTL1090

Licence: GPL-3.0 license
3D visualization of air traffic through RTL-SDR (dump1090) and MATLAB

Programming Languages

matlab
3953 projects

Projects that are alternatives of or similar to PlotRTL1090

RTLSDR-Airband
Multichannel AM/NFM demodulator
Stars: ✭ 487 (+355.14%)
Mutual labels:  aviation, sdr, rtl-sdr
readsb
ADS-B decoder swiss knife
Stars: ✭ 114 (+6.54%)
Mutual labels:  sdr, rtl-sdr, ads-b
gitbook-adsb-guide
Guide to aircraft tracking using ADS-B reception with SDR & docker containers. Published on GitBook.
Stars: ✭ 46 (-57.01%)
Mutual labels:  sdr, rtl-sdr, ads-b
flare
nRF905 single-chip radio transceiver demodulator + FLARM protocol decoder
Stars: ✭ 51 (-52.34%)
Mutual labels:  aviation, rtl-sdr
Tsl Sdr
Software Defined Radio Demodulation and Decoding Tools
Stars: ✭ 94 (-12.15%)
Mutual labels:  sdr, rtl-sdr
Dumpvdl2
VDL Mode 2 message decoder and protocol analyzer
Stars: ✭ 100 (-6.54%)
Mutual labels:  sdr, rtl-sdr
Wavesdr
macOS native desktop Software Defined Radio app
Stars: ✭ 144 (+34.58%)
Mutual labels:  sdr, rtl-sdr
Gqrx
Software defined radio receiver powered by GNU Radio and Qt.
Stars: ✭ 1,934 (+1707.48%)
Mutual labels:  sdr, rtl-sdr
Acarsdec
ACARS SDR decoder
Stars: ✭ 177 (+65.42%)
Mutual labels:  sdr, rtl-sdr
flight2bq
RTLSDR ADS-B dump1090 to Google BigQuery
Stars: ✭ 33 (-69.16%)
Mutual labels:  rtl-sdr, ads-b
radio-astronomy-fftw
fftw3 based radio-astronomy data collection and dissemination (see project on hackster.io website)
Stars: ✭ 22 (-79.44%)
Mutual labels:  sdr, rtl-sdr
Readsb
Readsb is a Mode-S/ADSB/TIS decoder for RTLSDR, BladeRF, Modes-Beast and GNS5894 devices.
Stars: ✭ 91 (-14.95%)
Mutual labels:  sdr, rtl-sdr
Soapy power
Obtain power spectrum from SoapySDR devices (RTL-SDR, Airspy, SDRplay, HackRF, bladeRF, USRP, LimeSDR, etc.)
Stars: ✭ 88 (-17.76%)
Mutual labels:  sdr, rtl-sdr
Gqrx Scanner
A frequency scanner for Gqrx Software Defined Radio receiver
Stars: ✭ 116 (+8.41%)
Mutual labels:  sdr, rtl-sdr
Pysdr
A guide for using Python as a software-defined radio (SDR) framework, for extremely rapid development of SDR apps/research with beautiful GUIs
Stars: ✭ 60 (-43.93%)
Mutual labels:  sdr, rtl-sdr
Airspy Fmradion
Software decoder for FM/AM broadcast radio with AirSpy R2 / Mini, Airspy HF+, and RTL-SDR
Stars: ✭ 59 (-44.86%)
Mutual labels:  sdr, rtl-sdr
gqrx
Software defined radio receiver powered by GNU Radio and Qt.
Stars: ✭ 2,345 (+2091.59%)
Mutual labels:  sdr, rtl-sdr
Shinysdr
Software-defined radio receiver application built on GNU Radio with a web-based UI and plugins. In development, usable but incomplete. Compatible with RTL-SDR.
Stars: ✭ 884 (+726.17%)
Mutual labels:  sdr, rtl-sdr
Sdrangel
SDR Rx/Tx software for Airspy, Airspy HF+, BladeRF, HackRF, LimeSDR, PlutoSDR, RTL-SDR, SDRplay RSP1 and FunCube
Stars: ✭ 1,058 (+888.79%)
Mutual labels:  sdr, rtl-sdr
rtl-power-fftw
Power spectrum for RTLSDR dongles.
Stars: ✭ 139 (+29.91%)
Mutual labels:  sdr, rtl-sdr

PlotRTL1090

3D visualization of air traffic through RTL-SDR (dump1090) and MATLAB

Summary

PlotRTL1090 is a simple MATLAB routine to record and visualize air traffic. It makes use of the excellent dump1090, forked by MalcolmRobb from antirez which profits from the ability of a ~$6 USB DTV receptor (RTL-SDR) to relay raw radio data along a wide spectrum, including the 1090 MHz frequency in which aircraft broadcast ADS-B messages indicating their callsign, altitude, speed, position, etc.

The code is provided on a single file for convenience, but the actual use is divided in two phases. The first portion of the code contains a loop that polls a running dump1090 server (or forks!) to read the JSON transcript of decoded ADS-B messages and store them in a .mat file. You can resume this loop at any time to collect additional data (which will be timestamped for your convenience). When enough data is recorded, you can execute the second code cell to render the data into a 3D visualization (which will be also saved as a .gif and .mp4).

Requirements

  • A server running dump1090 to record ADS-B data. For those who don't have (yet!) an RTL-SDR dongle available, two sample datasets are provided to test the code. Those have been used to generate the renders shown on the following section.
  • MATLAB (tested on 2012b and 2014a)

Example results

The file coords contains a recording of air traffic around the Valencia area (LEVC) in Spain. The file coords_nl has been supplied by /u/theodric of /r/RTLSDR using this code near Amsterdam-Schiphol (EHAM) area in The Netherlands. Using these files some sample renderings are shown below.

  • Valencia Airport (LEVC): using the default options of the provided MATLAB script, the following render can be reproduced: Resultado

  • Amsterdam-Schiphol Airport (EHAM): in order to use the data from Schiphol, we must also modify the bullseye center and select which land contours to plot. In this case the most simple option is to select all countries (the render time will be increased):

load('coords_nl');
centerLoc = [52.3147007,4.755935]; 
countries = shaperead([SHPdir 'ne_10m_admin_0_countries.shp'],'UseGeoCoords', true);

Resultado

  • Holding, approach and take off patterns (EHAM): just by filtering the plotted data by altitude, we can avoid the very crowded high altitude airways and focus on landing/take off operations. Operations from the small Den Helder airport can also be seen:
filter = alt < 5000; % feet

Resultado

  • Airlines: Ryanair (EHAM): the filter can contain more elaborate expressions! For instance, let's use a regular expression to select only flights operated by the blue-and-white irish low cost. As you can see in the following figure, the irish airline appears to avoid using the Schiphol airport, as only high altitude flighs can be seen:
filter = cellfun(@(x) ~isempty(regexpi(x,'^RYR.*$')),flg);

Resultado

Tip: you can concatenate logical expressions in the filter! You could for example select only Ryanair flights operating under 5000 ft by making filter = cellfun(@(x) ~isempty(regexpi(x,'^RYR.*$')),flg) & alt < 6000;. Any combination of altitude, speed, position, callsign, etc. is available!

Acknowledgements

  • Antirez and MalcolmRobb for dump1090.
  • Christianpanton for the included matlab-json function.
  • Natural Earth for releasing the included shapefiles as public domain.

Licensing

This code is licensed under GPL v3.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].