Ok OIly and Wookey, you are right, my formula has not been very lucky.
It was an attempt to understand what error he was experiencing when
compiling data with fore/back bearings. I found a large difference in
loop closure error between Auriga (2.85 m in 1967m loop), Compass (2.9m)
and Therion (14m).
Debugging the compilation I have found that the data transferred to
Survex (data.svx), don't have sense to me. I have searched in the code
source and found the complicated formula.
I made my own formula in a Excell, and calculate the average. With this
I have detected a strong magnetic anomaly in one leg (Auriga has this
bearing manually discarded, and the translation to Compass was OK, but
to Therion the fore-bearing was translated with a 0, a 56 degrees
difference with the inverse back-bearing). After to correct the magnetic
anomaly and to calculate the fore-bearing with the inverse back-bearing,
the loop error it's OK too in Therion (2.9m).
Only that it was necessary to understand what numbers Therion was going
through to Survex, and that some degrees were deviating from those
calculated manually. With the two files attached in the previous message:
-a file with magnetic declination to 0 and fore/back bearings
-a file with DM=0 and my average bearings.
I have compared the results, that are the same. After looking carefully
at the files and the compilation log, I found the difference. The data
transferred to Survex are: bearing - magnetic declination - meridian
convergence. These two components are what made me see different data
between those calculated by Therion and those calculated manually.
After some more checks, I have verified that Therion is correctly
calculating the average between fore/back bearings. MY MISTAKE. The
issue is closed.
Best regards and thanksfor the patience.
El 17/05/2018 a las 15:02, Wookey via Therion escribió:
On 2018-05-17 09:25 +0200, Evaristo Quiroga via Therion wrote:
El 17/05/2018 a las 0:36, Olly Betts escribió:
I think the formula is too complicated. I purpose a simpler formula,
If bearing <=180
AverageBearing = (bearing + (backbearing
AverageBearing = (bearing + (backbearing +180))/2
Your proposed formula gives wrong answers in some cases - consider:
bearing = 80, backbearing = 0
These give AverageBearing = (80 + 0 - 180) / 2 = -50 (equivalent to
310), but this should be 130 (average of 80 and 180).
In this case is not a problem with my formula, is a serious magnetic anomaly
(100 degrees difference) and the program should to stop and to send a warning.
Yes a warning should probably be issued about poor data, but it _is_ a
problem with your formula. It's just an example showing that all cases
have to be dealt with correctly, including the wrap-around at 0/360
(or 0/400 for grads) and your simplified formula doesn't.
An example with a much smaller difference between back and foresight
could still be constructed to show the issue:
Fore: 175, Back: 0 AverageBearing= (175+0-180)/2 = -2.5. That's
wrong. It should be 177.5 in this case.
Therion mailing list
Therion mailing list