[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gpsd-users] STATUS_DGPS_FIX mystery

From: Eric S. Raymond
Subject: Re: [gpsd-users] STATUS_DGPS_FIX mystery
Date: Thu, 21 Jan 2016 22:47:29 -0500
User-agent: Mutt/1.5.23 (2014-03-12)

Gary E. Miller <address@hidden>:
> Can I buy a clue as to where that is in the code?  I'd like to check
> it out.

Sure. It's in libgpsd_core.c; the actual multiplication is in gpsd_error_model()
near line 853.  The function fill_dop() is also significant, and you should
read the comment above it with the matrix algebra.

Here's what's going on.  We want 95% confidence error ranges for lat, lon,
and alt.  What we generally get explicitly from the device is usually much
less detailed than that, usually just a radius of 95% CEP.

Fortunately, it's possible to (part) replicate the error modeling
GPSes do internally.  the basic trick is to compute dimensionless
dilution-of-precision numbers which capture the relevant pieces of
satellite geometry, then multiply them by a base error, dimensioned as
a length, that is actually proportional to the amount of time jitter
imposed on the sat signals
fill_dop() computes DOPs from the skyview covariance matrix.  The base
errors (horizontal and vertical) are magic numbers that have to be derived
from long-term observation of error statistics at some site with a precisely
fixed location.

The dominant term in the base error is due to ionospheric delay lag.
DGPS observations within about 400km can compensate that out; base
error drops by about 50%.
                <a href="";>Eric S. Raymond</a>

Attachment: signature.asc
Description: Digital signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]