| import multiprocessing | import multiprocessing | ||||
| import os | import os | ||||
| from argparse import ArgumentParser | from argparse import ArgumentParser | ||||
| from datetime import datetime | |||||
| from math import ceil | from math import ceil | ||||
| from time import sleep | from time import sleep | ||||
| parser.add_argument("--save", default=None, help="Location to save pdf file.") | parser.add_argument("--save", default=None, help="Location to save pdf file.") | ||||
| parser.add_argument("--time_offset", default=0, type=int, help="Minutes added to GPS datetime.") | parser.add_argument("--time_offset", default=0, type=int, help="Minutes added to GPS datetime.") | ||||
| parser.add_argument("--neg_offset", default=False, action="store_true", help="Subtract GPS time offset.") | parser.add_argument("--neg_offset", default=False, action="store_true", help="Subtract GPS time offset.") | ||||
| parser.add_argument("--auto_offset", default=False, action="store_true", help="Calculate GPS time offset.") | |||||
| parser.add_argument( | parser.add_argument( | ||||
| "-c", | "-c", | ||||
| "--cores", | "--cores", | ||||
| # load dataframe an put it into geopandas | # load dataframe an put it into geopandas | ||||
| df = pd.read_csv(args.gps_file) | df = pd.read_csv(args.gps_file) | ||||
| df["kmh"] = df["speed (knots)"].apply(lambda x: x * 1.852) | df["kmh"] = df["speed (knots)"].apply(lambda x: x * 1.852) | ||||
| if args.time_offset > 0: | |||||
| if not args.auto_offset and args.time_offset > 0: | |||||
| if args.neg_offset: | if args.neg_offset: | ||||
| df["datetime"] = pd.to_datetime(df["datetime"]) - pd.Timedelta(minutes=args.time_offset) | df["datetime"] = pd.to_datetime(df["datetime"]) - pd.Timedelta(minutes=args.time_offset) | ||||
| else: | else: | ||||
| df["datetime"] = pd.to_datetime(df["datetime"]) + pd.Timedelta(minutes=args.time_offset) | df["datetime"] = pd.to_datetime(df["datetime"]) + pd.Timedelta(minutes=args.time_offset) | ||||
| elif args.auto_offset: | |||||
| gps_first = datetime.strptime(df["datetime"].iloc[0], "%Y-%m-%d %H:%M:%S.%f") | |||||
| pcap_first = datetime.strptime(transmission_df["datetime"].iloc[0], "%Y-%m-%d %H:%M:%S.%f") | |||||
| calc_offset = gps_first - pcap_first | |||||
| if gps_first > pcap_first: | |||||
| time_offset = gps_first - pcap_first | |||||
| df["datetime"] = pd.to_datetime(df["datetime"]) - time_offset | |||||
| else: | |||||
| time_offset = pcap_first - gps_first | |||||
| df["datetime"] = pd.to_datetime(df["datetime"]) + time_offset | |||||
| else: | else: | ||||
| df["datetime"] = pd.to_datetime(df["datetime"]) | df["datetime"] = pd.to_datetime(df["datetime"]) | ||||
| df = df.set_index("datetime") | df = df.set_index("datetime") | ||||
| df.index = pd.to_datetime(df.index) | df.index = pd.to_datetime(df.index) | ||||