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")
../../_images/tutorials_algorithms_tutorials_residuals_notebook_8_0.png
../../_images/tutorials_algorithms_tutorials_residuals_notebook_8_1.png