*SD command?
Olly Betts
olly at survex.com
Thu Feb 6 00:07:47 GMT 2025
On Mon, Jan 20, 2025 at 05:43:44AM -0500, Richard Knapp wrote:
> In our survey, we have used a DistoX for the main line to the current
> back of the cave. Many of the side surveys are compass and tape. I
> would like to weight the DistoX data as more accurate than the compass
> and tape data.
>
>
> Do I need to include an *SD in the DistoX surveys?
You don't *NEED* to, but if you do then loop closure will take into
account that the DistoX legs are more accurate. That will affect how
misclosures are distributed around loops that mix tape/compass/clino
and DistoX measurements, and will also affect the E, H and V error
values (which Aven uses to colour by error/horizontal error/vertical
error) as these are the actual error number divided by the SD from
the error model. These can be helpful for spotting blunders.
> The tape measurements are within .1’ (.03m) but I would est the compass readings +/- 0.5 or 1 degree. Inclinometer should be +/- 0.25 degree.
> Would I put the following SD command in the data file?
>
> *SD COMPASS 0.5 degrees
> *SD BACKCOMPASS 0.5 degrees
> *SD CLINO 0.25 degrees
> *SD BACKCLINO 0.25 degrees
>
> ?
Note you can set instruments together:
*SD COMPASS BACKCOMPASS 0.5 degrees
*SD CLINO BACKCLINO 0.25 degrees
> Do these values seem reasonable?
The tl;dr is I'd suggest halving them, but read on to understand why I
suggest that. You should probably also think about the appropriate
position error - with a DistoX or similar device you only have one
instrument to position on the "from" station and have a laser beam
pointing at the "to" station, plus no need to get your head next to
instrument to read compass and clino.
The underlying question here is how to determine an appropriate SD value
from "+/- 0.5 or 1 degree" or "+/- 0.25 degree", which really depends on
what these actually mean in terms of the distribution of true values
for a given measured reading.
If we assume the reading is the true value rounded to the nearest
(say) 0.5 degrees, than the distribution of true values for a reading of
090 is what's called a "Continuous uniform distribution" covering 089.5
to 090.5.
There's a formula for the standard deviation of this - from
https://en.wikipedia.org/wiki/Continuous_uniform_distribution
the variance is 1/12*(b-a)² where a is 089.5 and b is 090.5, and the
standard deviation is the square root of this so sqrt(1/12)*(b-a) and
b-a = 1 so the SD is 0.289 to 3 decimal places.
(The (b-a) bit means that this scales linearly with the width of the
uniform distribution so 0.25 degrees -> 0.5*sqrt(1/12), etc.)
However it seems unrealistic to think that the only source of error here
is what precision you (or the DistoX electronics) are recording the true
value to - while it's likely if the reading is 090 to 0.5 degrees that
the true value is between 089.5 and 090.5, there's probably a non-zero
but small probability it's slightly outside this range (and dropping off
the further outside), but also the distribution within the range likely
dips away from the centre because a true reading of 090.4 is more
likely to be read as 091 than a true reading of 090.1. The overall
effect seems likely to be that the SD will be higher if anything
(because we've moved some of the distribution further from the middle).
A different way to think about the situation is the approach the
bcra5.svx and bcra3.svx we ship take (the default SD values match those
in bcra5.svx) which is to assume the distribution of the error is a
Normal Distribution, because assuming the errors are independent and
finite, accumulating errors tend to a Normal distribution. A key
caveat is that "tend to" - if we averaged a bunch of readings we would
expect to get very close to a Normal distribution, but for a single
reading we're relying on accumulating errors from different sources of
error to that single reading, and it's not obvious how close that's
going to get us in practice.
For a Normal Distribution we expect 95% of values are within 2 SDs:
https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule
Perhaps easier to think that we'd expect 1 value in 20 to be outside the
2 SD range (1 value in ~3 outside a 1 SD range; 1 value in ~333
outside a 3 SD range).
If we treat our ±0.5 degree range this way then the SD is 0.5/2 = 0.25
degrees, which is not too different to 0.289 but actually lower when
it seemed like 0.289 was probably an underestimate if anything.
(Again this scales linearly with X from "within X" and indeed that
should be the case for any reasonable interpretation.)
The key point to make here is that this matches the approach taken by
Survex by default, so halving the "within" to get an SD (so "within 0.5
degrees" -> SD 0.25) probably gives appropriate distribution of
misclosure in loops mixing tape/compass/clino and DistoX.
The true SDs may actually be higher though, and the E, H and V values
would be higher as a result (e.g. we'd expect E > 3 for only 1 in ~333
loops in the absence of blunders, but we may see it higher more often).
It occurs to me it would be interesting (and hopefully useful) to try to
measure the distribution of true values for a given reading, and also
that I'm unlikely to be the first to have that idea. Does anyone know
of something existing on this topic?
> Would I also need to add *SD commands to the DistoX surveys?
That seems to be the same question as above - did you mean to ask if you
also need to add them to the *NON*-DistoX surveys?
If you set the DistoX SDs inside the *begin...*end blocks for the DistoX
surveys then other surveys will use the default SDs which are derived
from BCRA grade 5. If you use the "SD = ½*(within)" approach then you
can reasonably just let that default be used for tape/compass/clino
surveys.
Maybe we should have some sort of named SD sets to better support the
increasing use of DistoX and similar devices. There's a plan for
supporting something similar for specifying errors on GPS fixes.
In both cases the key part is coming up with appropriate SD values
to use.
Cheers,
Olly
More information about the Survex
mailing list