X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=gps303%2Fmkgpx.py;h=55cc943cc1787ddc53a8fc71c001cc95ed7edd8e;hb=e84104c8d7e93efc4ab2f543e7dfef4cc0208187;hp=40588a0885791b347d5f3fc2ddb0f43a1b560cb6;hpb=0a3288ad7ed56d995f9e0c15527f1a3af9a6d757;p=loctrkd.git diff --git a/gps303/mkgpx.py b/gps303/mkgpx.py index 40588a0..55cc943 100644 --- a/gps303/mkgpx.py +++ b/gps303/mkgpx.py @@ -3,14 +3,29 @@ from sqlite3 import connect import sys from .gps303proto import * -from .opencellid import qry_cell +from . import opencellid as ocid +ocid.init({"opencellid": {"dbfn": sys.argv[2]}}) db = connect(sys.argv[1]) c = db.cursor() -c.execute("select tstamp, packet from events where proto in ({})" - .format(", ".join([str(n) for n in (WIFI_POSITIONING.PROTO, WIFI_OFFLINE_POSITIONING.PROTO, GPS_POSITIONING.PROTO, GPS_OFFLINE_POSITIONING.PROTO)]))) +c.execute( + "select tstamp, packet from events where proto in ({})".format( + ", ".join( + [ + str(n) + for n in ( + WIFI_POSITIONING.PROTO, + WIFI_OFFLINE_POSITIONING.PROTO, + GPS_POSITIONING.PROTO, + GPS_OFFLINE_POSITIONING.PROTO, + ) + ] + ) + ) +) -print(""" +print( + """ @@ -18,23 +33,28 @@ xmlns="http://www.topografix.com/GPX/1/1"> Location Data -""") +""" +) for tstamp, packet in c: msg = parse_message(packet) if isinstance(msg, (WIFI_POSITIONING, WIFI_OFFLINE_POSITIONING)): - lat, lon = qry_cell(sys.argv[2], msg.mcc, msg.gsm_cells) + lat, lon = ocid.lookup(msg.mcc, msg.mnc, msg.gsm_cells, msg.wifi_aps) if lat is None or lon is None: continue elif isinstance(msg, (GPS_POSITIONING, GPS_OFFLINE_POSITIONING)): lat, lon = msg.latitude, msg.longitude else: continue - isotime = datetime.fromtimestamp(tstamp).astimezone(tz=timezone.utc).isoformat() - isotime = isotime[:isotime.rfind(".")] + "Z" + isotime = ( + datetime.fromtimestamp(tstamp).astimezone(tz=timezone.utc).isoformat() + ) + isotime = isotime[: isotime.rfind(".")] + "Z" trkpt = """ - """.format(lat, lon, isotime) + """.format( + lat, lon, isotime + ) print(trkpt) if False: print( @@ -43,6 +63,8 @@ for tstamp, packet in c: .isoformat(), msg, ) -print(""" +print( + """ -""") +""" +)