Adds support automatic timestamp offset calculation.
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
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
|
||||||
|
|
||||||
@@ -53,6 +54,7 @@ if __name__ == "__main__":
|
|||||||
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",
|
||||||
@@ -132,13 +134,24 @@ if __name__ == "__main__":
|
|||||||
# 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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user