[time-nuts] DGPS at home
Hal Murray
hmurray at megapathdsl.net
Sat Nov 26 22:35:38 UTC 2011
> Maybe you can figure out for use how long one must average the data to get
> down to a given position accuracy. The fact that you have a poor location
> is good. You are generating real-world numbers.
I'll be glad to provide lots of crappy data if anybody wants to play with it.
----------
The refclock (nmea, PPS, TBolt, ...) support in ntpd has code to discard
outliers on a clump of timestamps. I think something like that would be very
helpful when processing position data.
The code is pretty simple in one dimension: sort, compute average, compare
distance to left and right ends, discard one, adjust average... After the
sort, the processing time is linear in the number of samples to be discarded.
I haven't figured out how to do something like that in 2 dimensions: there is
no left or right end.
The basic idea you want to implement is to start with a large circle centered
on the center of mass and shrink that circle until it hits a point. That's
the point you want to discard.
Pure brute force would compute the center of mass and then scan all the data
points computing the distance... That's an N-squared process which might
take too long with a large clump of data. For offline research like this, it
might be OK.
There is a slightly better approach that I'll call semi-brute force. The
idea would be to make two lists: one for NS and one for EW, sort them, then
use the longest end as a trial point. Then you scan in from the 4 ends. The
semi- part is that you can stop when you get to the trial / sqrt(2). At
first glance, discarding isn't cheap since you have to scan the other
list/array. Actually, you don't have to scan the other list. Just mark that
slot as dead. In either case, you can fixup the center location rather than
recomputing it. If you notice a dead slot on the end of a list you can
delete it.
[I'm pretty sure that will get the right answer. I'll try again if that
description isn't clear.]
--
These are my opinions, not necessarily my employer's. I hate spam.
More information about the time-nuts
mailing list