Просмотр исходного кода

Adds support automatic timestamp offset calculation.

master
Lukas Prause 2 лет назад
Родитель
Сommit
30fa09168e
1 измененных файлов: 14 добавлений и 1 удалений
  1. +14
    -1
      calc_gps_map_csv.py

+ 14
- 1
calc_gps_map_csv.py Просмотреть файл

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)



Загрузка…
Отмена
Сохранить