dump1090/tools
Oliver Jowett 35299c47ba Have filter-regs emit a special value "-COMPUTED-" for filtered data values,
rather than blanking them out entirely.

This lets csv-to-json.py handle the case where an earlier input file has (e.g.)
a registration value which does not match the computed value, and then a later
input file has a value that does match. In this case we want to override the
older value with the newer value, then notice that the registration can be
omitted when writing the database. Previously in this case the older (incorrect)
value would be used.
2019-08-16 15:16:55 +08:00
..
csv-to-json.py Have filter-regs emit a special value "-COMPUTED-" for filtered data values, 2019-08-16 15:16:55 +08:00
debug.html A few bugs fixed in debug.html. 2013-01-27 21:42:40 +01:00
extract-icao-ranges.py Regenerate the ICAO ranges table based on data extracted from Annex 10. 2015-09-01 14:21:25 +01:00
filter-regs.js Have filter-regs emit a special value "-COMPUTED-" for filtered data values, 2019-08-16 15:16:55 +08:00
flightaware-20190502.csv.xz Update aircraft DB to 20190502 2019-05-02 18:54:59 +08:00
fuzzy-30003-matcher.py Add a port-30003 regression diff script. 2016-10-02 13:27:13 +01:00
README.aircraft-db.md Update aircraft DB to 20190502 2019-05-02 18:54:59 +08:00
replay-beast.py Tool to replay beast captures with the right inter-message timing. 2016-10-01 15:06:02 +01:00
vrs-to-csv.py Rearrange json DB stuff so it can work with CSV input. 2016-08-27 16:13:10 +01:00
vrs.csv.xz Compress vrs.csv since it's basically readonly. 2016-09-10 17:43:10 +01:00

dump1090 aircraft database

The dump1090 webmap uses a static database of json files to provide aircraft information.

This directory has some tools to turn a CSV file with aircraft data into the json format that the dump1090 map expects.

Data sources

The default data comes from a combination of:

  • some historical data kindly provided by VRS (unfortunately no longer updated) - this data is in vrs.csv.xz; and
  • a data export provided by FlightAware that is updated periodically - this data is in flightaware-*.csv.xz

The VRS data was extracted by:

$ wget http://www.virtualradarserver.co.uk/Files/BasicAircraftLookup.sqb.gz
$ gunzip BasicAircraftLookup.sqb.gz
$ tools/vrs-to-csv.py BasicAircraftLookup.sqb >tools/vrs.csv

The FlightAware data is a subset of the registry information that FlightAware uses internally. It contains only the data that FlightAware can redistribute to the public; some data sources that FlightAware uses do not allow this and are excluded from the export.

Regenerating the json database

To regenerate the json database from these input files:

$ rm ../public_html/db/*.json
$ xzcat vrs.csv.xz | nodejs ./filter-regs.js >vrs-pruned.csv
$ xzcat flightaware-20190502.csv.xz | nodejs ./filter-regs.js >fa-pruned.csv
$ ./csv-to-json.py vrs-filtered.csv fa-filtered.csv ../public_html/db

Additional CSV files can be given to csv-to-json.py if desired.

The contents of public_html/db should be installed where the webmap can find them; the Debian packaging puts these in /usr/share/dump1090-fa/html/db

The CSV format is very simple. The first line must be a header line that names the columns. These columns are understood:

  • icao24: the 6-digit hex address of the aircraft
  • r: the registration / tail number of the aircraft
  • t: the ICAO aircraft type of the aircraft, e.g. B773

Any other columns are put into the json DB under the name you give them, but the standard map code won't do anything special with them. You can pick these columns up in the PlaneObject constructor (see planeObject.js where it calls getAircraftData()) for later use.