#!/usr/bin/env python import json import sys import csv fieldnames = [ "status", "send_time", "recv_time", "pos_time", "lat", "lon", "snr_send", "snr_recv", ] geo = { "type": "FeatureCollection", "features": [] } def main(): if len(sys.argv) < 2: print(f"Usage:\n\t{sys.argv[0]} ") return with open(sys.argv[1]) as f: reader = csv.DictReader(f, fieldnames=fieldnames) for num, row in enumerate(reader): recv_delay = float(row["recv_time"]) - float(row["send_time"]) pos_delay = float(row["send_time"]) - float(row["pos_time"]) geo["features"] += [{ "type": "Feature", "id": num, "geometry": { "type": "Point", "coordinates": [ float(row["lon"]), float(row["lat"]), ] }, "properties": { "recv_delay": recv_delay, "pos_delay": pos_delay, "snr_send": float(row["snr_send"]) if row["snr_send"] != '-' else None, "snr_recv": float(row["snr_recv"]) if row["snr_recv"] != "-" else None, } }] print(json.dumps(geo, indent=2)) if __name__ == '__main__': main()