X-Git-Url: http://average.org/gitweb/?a=blobdiff_plain;f=loctrkd%2Fopencellid.py;h=20fd3ae1a2fc91723a2c5c211e5ad9971307a3c9;hb=148c0b3bdecfd52371506c348c17e1f2c2fdb137;hp=583d2e167b98af216b7a05360cf7d6666ca49c6d;hpb=dbdf9d63af31770ad57302e16b17a2fdc526773f;p=loctrkd.git diff --git a/loctrkd/opencellid.py b/loctrkd/opencellid.py index 583d2e1..20fd3ae 100644 --- a/loctrkd/opencellid.py +++ b/loctrkd/opencellid.py @@ -42,36 +42,13 @@ def lookup( (mcc,), ) data = list(lc.fetchall()) + # lc.execute("drop table mem.seen") + lc.execute("""detach database mem""") + lc.close() if not data: - return 0.0, 0.0 + raise ValueError("No location data found in opencellid") sumsig = sum([1 / sig for _, _, sig in data]) nsigs = [1 / sig / sumsig for _, _, sig in data] avlat = sum([lat * nsig for (lat, _, _), nsig in zip(data, nsigs)]) avlon = sum([lon * nsig for (_, lon, _), nsig in zip(data, nsigs)]) - # lc.execute("drop table mem.seen") - lc.execute("""detach database mem""") - lc.close() return avlat, avlon - - -if __name__.endswith("__main__"): - from datetime import datetime, timezone - import sys - from .zx303proto import * - - db = connect(sys.argv[1]) - c = db.cursor() - c.execute( - """select tstamp, packet from events - where proto in (?, ?)""", - (proto_name(WIFI_POSITIONING), proto_name(WIFI_OFFLINE_POSITIONING)), - ) - init({"opencellid": {"dbfn": sys.argv[2]}}) - for timestamp, packet in c: - obj = parse_message(packet) - avlat, avlon = lookup(obj.mcc, obj.mnc, obj.gsm_cells, obj.wifi_aps) - print( - "{} {:+#010.8g},{:+#010.8g}".format( - datetime.fromtimestamp(timestamp), avlat, avlon - ) - )