Internal Angles Article

[This article is the updated web version of an article that has appeared in "Compass and Tape" in the US, and in "Compass Points" in England.]

There seems to be a lot of confusion in the Cave Surveying community about what to do with foresights and backsights when there are magnetic anomolies. And I've even seen reports of folk saying that nothing can be done with this situation and fore and back sights don't help. This later view is often accompanied by an alleged proof that shows that averaging foresights and backsights (or some other mathematically meaningless or otherwise irrelevant method) is the wrong thing to do. [In logic this fallacy is called a "straw man" argument, where you make up something silly and claim it is implied by a view, descredit the sillyness, and pretend you've discredited the original view.]

So, here is explaination of how magnetic anomolies can be handled using foresights and backsights, and how to do the error analysis when magnetic anomolies are present. This will be shown on an example survey.

A more basic paper on the theory of dealing with magnetic anomolies with for and backsights is at This paper extends it to show how to identify and handle blunders.

Table of contents


There can be [initially unknown] magnetic anomalies at every single point. (Not an uncommon state of affairs for most lava tube surveys.) No assumption is made as to the reason that these anomolies are present. We do assume that magnetic north is in SOME direction at each point. (I.E. the field strength is not zero.)

Foresights and Backsights have been recorded for all shots.

Example Survey

The example survey is laid out as follows:

 / \
B - D
 \ /

Contrived survey Data:

(In a form often seen in Cave Survey notes.)

From To  Dist   Inc  Back-Inc Foresight Backsight (Discrepancy)
A    B   10     0      0      214        42       ( 8 degrees)
B    C   10     0      0      162       336       (-6 degrees)
C    D   10     0      0       36       209       (-7 degrees)
D    A   10     0      0      327       154       ( 7 degrees)
D    B   10     0      0      267       102       (15 degrees)

Note that because there are severe magnetic anomalies at all points the foresights and backsights are going to be dramaticly different. This is not wrong... they differ because magnetic north at the various stations is different.

A survey instructor has pointed out that this data looks much different than it would if it had came from a real surveyor. In the interest of pushing cave surveyors back toward main line surveying, I'll include a copy of the data as surveyors would expect it to appear.

BS is Back Station        (Sometimes written +S)
IS is Instrument Station  (Where you are standing, which makes it
                           what cavers call the "From station")
FS is Forward Station     (Sometimes written -S)
SD is Slope Distance      (I.E. Measured distance)

BS and FS are what cavers would call the "To station".

   A  B    214     0           10.0
A  B        42     0
   B  C    162     0           10.0
B  C       336     0
   C  D     36     0           10.0
C  D       209     0
   D  A    327     0           10.0
D  A       154     0

   D  B    267     0           10.0
   B  D    102     0


In order to do the processing we have to rearrange the data from a shot specific viewpoint (as recorded) to a station specific viewpoint, since the sights are actually relative to magnetic north at the point taken, and not a theoretical magnetic north for the shot itself.

One advantage of this is that it groups shots with the same magnetic deviation.

All sightings taken from exactly the same point share exactly the same magnetic north, regardless of what direction that magnetic north may be at that point.

Because of this we can now compute the change in angle (the "turned" angle) between any two shots associated with a given point. This angle is obviously independent of what direction magnetic north points, as long as it points in some direction.

The turned angles, and an inital "basis of bearing" shot (or even an assumed bearing) can be used to lay out the entire survey. And, if there are loops in the data they can be used to do blunder analysis of the loops, as shown below.

Since we are only concerned with computing internal angles in this example, I'll drop the Distance and Inclination information.

From  To   Azimuth  Comments

A     B    214     (Foresight of shot from A to B)
A     D    154     (Backsight of shot from D to A)

B     A    42      (Backsight of shot from A to B)
B     C    162     (Foresight of shot from B to C)
B     D    102     (Backsight of shot from D to B)

C     B    336     (Backsight of shot from B to C)
C     D    36      (Foresight of shot from C to D)

D     A    327     (Foresight of shot from D to A)
D     B    267     (Foresight of shot from D to B)
D     C    209     (Backsight of shot from D to C)

The pattern here is: list foresight if the shot was FROM this point, list backsight if the shot was TO this point. We are basically collecting all the measurements made at each specific point, and making a record to go with that specific point. (While magnetic north may be different on both ends of a shot, in the absence of bad survey procedure it should be the same for all the shots that were taken from a single point.

Note that we have to be careful here about the order of shots, angles, and labels. The angle "B-A-D" is *not* the same as the angle "D-A-B", as one is the negative of the other. The label BAD, for example, refers to the angle between B and D as measured from A (which is 214-154 = +60) and DAB is the angle between D and B (In that order) as measured from A (Which is 154-214 = -60).


The internal angles in the loops can now be computed.

Loop (A, B, D)
 ABD = 042-102 =  -60
 BDA = 267-327 =  -60
 DAB = 154-214 =  -60 (Isn't contrived data wonderful?)
         Total = -180 which is -1*180 + 0

The internal angles sum to a multiple of 180. This loop has no (angle) blunder.

Loop (D, B, C)
 DBC = 102-162 =  -60
 BCD = 336-036 = +300
 CDB = 209-267 =  -58
         Total =  182 which is 1*180 + 2

The internal angles sum to something other then a multiple of 180. This loop contains at least 2 degrees of angle problems. It could be a single blunder of two degrees, or it could have been (for example) a +8 degree blunder and a -6 degree mistake canceling to be a two degree problem.

In this specific case, we know that CDB is blundered, but only because of the way this data was contrived. HOWEVER, in general all we know is that there is a problem (or problems) somewhere in this loop.

[Since the paragraph above was written, I've been taken to task because there IS enough information to correctly identify the blundered angle. For example, the book [Wolf and Ghilani, 1997] "Adjustment Computations, Statistics and Least Squares in Surveying and GIS", in the chapter on blunder detection in horizontal surveys, gives a technique for identifying the direction from points in the loop to the specific station at fault. There are also tests documented in the survey literature that give distance from stations in the loop to the location of the blundered station.

Alternate Computation

Some folk prefer positive angles. For example they take -60 degrees as 300 degrees. This makes little difference, and one could have computed something like:

Loop (A, B, D)
 ABD = Modulo(042-102, 360) =  300
 BDA = Modulo(267-327, 360) =  300
 DAB = Modulo(154-214, 360) =  300
                      Total =  900  Which is 5*180 + 0

Loop (D, B, C)
 DBC = Modulo(102-162, 360) = +300
 BCD = Modulo(336-036, 360) = +300
 CDB = Modulo(209-267, 360) = +298
                      Total =  898  Which is 5*180 - 2.

Working with Longer loops

An early reviewer of this complained that it wasn't obvious how to do a loop that wasn't a triangle. So... here is an example of the outside loop (A, B, C, D)

Loop (A, B, C, D)
 ABC = 042-162 = -120
 BCD = 336-036 =  300
 CDA = 209-327 = -118
 DAB = 154-214 =  -60
         Total =    2  Which is 0*180 + 2

Since the outer loop also contains the blundered angle, it should come as no surprise that it also miscloses by 2 degrees.

Note that each angle is just the next angle in the loop.

And for the "positive angle" folk the same example is:

Loop (A, B, C, D)
 ABC = Modulo(042-162, 360) =  240
 BCD = Modulo(336-036, 360) =  300
 CDA = Modulo(209-327, 360) =  242
 DAB = Modulo(154-214, 360) =  300
                      Total = 1082  Which is 6*180 + 2

Direction of loops

It really doesn't matter which direction one goes around loops, as long as one is consistant. As an example, the loop above in the other direction would be:

Loop (D, C, B, A)
 DCB = 036-336 = -300
 CBA = 162-042 =  120
 BAD = 214-154 =   60
 ADC = 327-209 =  118
         Total =   -2

Or alternately for the positive angle folk:

Loop (D, C, B, A)
 DCB = Modulo (036-336, 360) =  60
 CBA = Modulo (162-042, 360) = 120
 BAD = Modulo (214-154, 360) =  60
 ADC = Modulo (327-209, 360) = 118
                      Total =  178  = 180 - 2


We now know that the first loop in the example has no angle problems, and that the second loop does.

Since the first loop has no angle problems, the discrepancy between foresights and backsights in that loop must reflect real underlying differences between magnetic north between the stations.

Simple arithmetic can now show that the difference in magnetic north between A and B is 8 degrees (The discrepancy between fore and back sights in shot AB), between A and D is -7 (The negative of the discrepancy on shot from D to A) and of course between D and B it is consistently 15 (The discrepancy from shot BD). (The difference between magnetic norths is the negative of the shot discrepancy if you are tracing the graph in a direction opposite the original shot.)

If one sets A as the reference, then it is easy to list the differences for the whole of the (unblundered) net. But magnetic north at C can only be estimated, since some shot to C contains a blunder.

A major obvious assumption being made with that technique is that all shots *FROM THE SAME POINT* have the same offset from magnetic north. This is generally true unless the anomaly is being caused by something the caver is carrying.

Clearly, if you went around averaging fore and back sights, no reasonable analysis is possible. For shot AB this would give you a recorded number of:

   (azimuth_A + anomaly_A + azimuth_B + anomaly_B) / 2

which hopelessly intermingles the shots and any magnetic anomalies.

Without loops you have no redundant information to check against, so detecting blunders this way is not possible. (Although, obviously, you can still correct for anomolies if there are no blunders) HOWEVER, in surveys with few magnetic problems, there is sometimes some blunder information to be gained. If one computes the (apparent) magnetic anomalies in a traverse, the assumed magnetic north will be stable but different on the two traverse pieces on each side of the blunder. In most limestone areas this may aid in locating the blunder. I really need to give another example to show this technique.

Go to ...

This page is
© Copyright 2000 by John Halleck, All rights reserved.
This page was last modified on July 12th, 2005