Basic Get/Set Time Comparisons
[1]:
import timeit
import numpy as np
# load Android Google Challenge data
!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/google_decimeter_2021/Pixel4XL_derived.csv --quiet -O "Pixel4XL_derived.csv"
[2]:
REPEAT_COUNT = 10
ITERATION_COUNT = 1000
[3]:
SETUP_CODE = '''
from gnss_lib_py import AndroidDerived2021
# load Android Google Challenge data
navdata = AndroidDerived2021("Pixel4XL_derived.csv", remove_timing_outliers=False)
'''
TEST_CODE = '''
navdata["corr_pr_m"] = navdata['raw_pr_m'] \
+ navdata['b_sv_m'] \
- navdata['intersignal_bias_m'] \
- navdata['tropo_delay_m'] \
- navdata['iono_delay_m']
'''
# timeit.repeat statement
times = timeit.repeat(setup = SETUP_CODE,
stmt = TEST_CODE,
repeat = REPEAT_COUNT,
number = ITERATION_COUNT)
print(f'NavData avg time: {np.round(1E3*np.mean(times)/ITERATION_COUNT,5)} ms')
NavData avg time: 0.36499 ms
[4]:
SETUP_CODE = '''
import pandas as pd
from gnss_lib_py import AndroidDerived2021
# load Android Google Challenge data
df = pd.read_csv("Pixel4XL_derived.csv")
df.rename(columns=AndroidDerived2021._row_map(), inplace=True)
'''
TEST_CODE = '''
df["corr_pr_m"] = df['raw_pr_m'] \
+ df['b_sv_m'] \
- df['intersignal_bias_m'] \
- df['tropo_delay_m'] \
- df['iono_delay_m']
'''
# timeit.repeat statement
times = timeit.repeat(setup = SETUP_CODE,
stmt = TEST_CODE,
repeat = REPEAT_COUNT,
number = ITERATION_COUNT)
print(f'Pandas avg time: {np.round(1E3*np.mean(times)/ITERATION_COUNT,5)} ms')
Pandas avg time: 0.74882 ms
[5]:
SETUP_CODE = '''
import pandas as pd
from gnss_lib_py import AndroidDerived2021
# load Android Google Challenge data
df = pd.read_csv("Pixel4XL_derived.csv")
df.rename(columns=AndroidDerived2021._row_map(), inplace=True)
raw_pr_m = df['raw_pr_m'].to_numpy()
b_sv_m = df['b_sv_m'].to_numpy()
intersignal_bias_m = df['intersignal_bias_m'].to_numpy()
tropo_delay_m = df['tropo_delay_m'].to_numpy()
iono_delay_m = df['iono_delay_m'].to_numpy()
'''
TEST_CODE = '''
corr_pr_m = raw_pr_m \
+ b_sv_m \
- intersignal_bias_m \
- tropo_delay_m \
- iono_delay_m
'''
# timeit.repeat statement
times = timeit.repeat(setup = SETUP_CODE,
stmt = TEST_CODE,
repeat = REPEAT_COUNT,
number = ITERATION_COUNT)
print(f'Numpy avg time: {np.round(1E3*np.mean(times)/ITERATION_COUNT,5)} ms')
Numpy avg time: 0.01269 ms