Residuals
[1]:
import gnss_lib_py as glp
[2]:
# load Android Google Challenge data
glp.make_dir("../data")
!wget https://raw.githubusercontent.com/Stanford-NavLab/gnss_lib_py/main/data/unit_test/google_decimeter_2021/Pixel4XL_derived.csv --quiet -nc -O "../data/Pixel4XL_derived.csv"
derived_data = glp.AndroidDerived2021("../data/Pixel4XL_derived.csv", remove_timing_outliers=False)
Calculating GNSS Pseudorange Residuals
[3]:
galileo_data = derived_data.where("gnss_id","galileo")
Solve for residuals using the estimated state. A new “residuals_m” row is added to derived_data
[4]:
state_wls = glp.solve_wls(derived_data)
glp.solve_residuals(galileo_data, state_wls, inplace=True)
Plot the residuals using the plot_residuals()
function. The residuals are broken up constellation and signal type and plotted on separate figures.
[5]:
figs = glp.plot_metric_by_constellation(galileo_data, "gps_millis", "residuals_m")