Procházet zdrojové kódy

Adds support automatic timestamp offset calculation.

master
Lukas Prause před 2 roky
rodič
revize
30fa09168e
1 změnil soubory, kde provedl 14 přidání a 1 odebrání
  1. +14
    -1
      calc_gps_map_csv.py

+ 14
- 1
calc_gps_map_csv.py Zobrazit soubor

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)



Načítá se…
Zrušit
Uložit