pyModeS/tests/sample_run_c_adsb.py
2019-10-29 23:19:37 +01:00

36 lines
853 B
Python

from pyModeS.c_decoder import adsb
import logging
import csv
# logging.basicConfig(level=logging.INFO)
logging.info("===== Decode ADS-B sample data=====")
f = open("tests/data/sample_data_adsb.csv", "rt")
msg0 = None
msg1 = None
for i, r in enumerate(csv.reader(f)):
ts = int(r[0])
m = str.encode(r[1])
icao = adsb.icao(m)
tc = adsb.typecode(m)
if 1 <= tc <= 4:
logging.info([ts, m, icao, tc, adsb.category(m), adsb.callsign(m)])
if tc == 19:
logging.info([ts, m, icao, tc, adsb.velocity(m)])
if 5 <= tc <= 18:
if adsb.oe_flag(m):
msg1 = m
t1 = ts
else:
msg0 = m
t0 = ts
if msg0 and msg1:
pos = adsb.position(msg0, msg1, t0, t1)
alt = adsb.altitude(m)
logging.info([ts, m, icao, tc, pos, alt])