diff --git a/tools/filter-regs.js b/tools/filter-regs.js index d4b4783..fa8fa1b 100644 --- a/tools/filter-regs.js +++ b/tools/filter-regs.js @@ -18,17 +18,41 @@ // nodejs filter-regs.js output.csv var reglookup = require('../public_html/registrations.js'); +var actypes = require('../public_html/db/aircraft_types/icao_aircraft_types.json'); var csv = require('csv'); var parser = csv.parse({columns: true}); var writer = csv.stringify({header: true}); var transformer = csv.transform(function (record, callback) { - if (('icao24' in record) && ('r' in record)) { - var computed = reglookup(record.icao24); - if (computed === record.r) { - record.r = ''; - } else if (computed !== null) { - console.warn(record.icao24 + " computed " + computed + " but CSV data had " + record.r); + if ('icao24' in record) { + if ('r' in record && record.r != '') { + var computed = reglookup(record.icao24); + if (computed === record.r) { + record.r = ''; + } else if (computed !== null) { + console.warn(record.icao24 + " computed registration " + computed + " but CSV data had " + record.r); + } + } + + if ('t' in record && record.t in actypes) { + if ('desc' in record && record.desc != '') { + var computed_desc = actypes[record.t].desc; + if (computed_desc === record.desc) { + record.desc = ''; + } else if (computed_desc !== undefined) { + // too noisy, the icao descriptors are very coarse and reality often disagrees + //console.warn(record.icao24 + " (" + record.t + "): computed type description " + computed_desc + " but CSV data had " + record.desc); + } + } + + if ('wtc' in record && record.wtc != '') { + var computed_wtc = actypes[record.t].wtc; + if (computed_wtc === record.wtc) { + record.wtc = ''; + } else if (computed_desc !== undefined) { + //console.warn(record.icao24 + " (" + record.t + "): computed type WTC " + computed_wtc + " but CSV data had " + record.wtc); + } + } } }