2014/12/19 に chiseki さんから掲示板で御指摘をいただいた「トラバースの誤差配分」について説明します。
---------------------- 2015/01/15 加筆 ------------------------
ここで説明したバグを修正したβ版を公開しました。 バグが見つかりました・Ver.5.734βで修正済み
--------------------------------------------------------------------------
1.ご指摘の要旨
御投稿内容は下記のとおりです。
距離の閉合差の補正:コンパス法則にて計算を行いましたが、
距離の比率に応じた誤差配分がされないような気がします。
chiseki さんからは、詳しいデータをご提供いただきましたので、そのデータ等を使わせていただき、GioLine の誤差配分の手法について説明(言い訳)をさせていただきます。
下表は結合トラバース計算書の一部の抜粋で、閉合誤差(8mm) のコンパス法による配布結果(空欄は0)です。
εx はchiseki さんが Excel で計算された結果で、その右列は GioLine の結果です。
一見して分かるとおり、chiseki さんの計算値は、距離の長い順に正しく配布されていますが、GioLine の結果は極めて不自然で、滅茶苦茶です(例えば、No.2 の距離はこの路線で最短ですが 、1mm 配布されています)。
εx = 閉合差(8mm)× 距離 ÷ Σ距離 で計算するので、No.6 では、
= 8 × 38.058 ÷ 506.080
= 0.60161239329 を四捨五入して
= 1 mm となりますが、No.2 の距離は 16.882 ですから、0 が正しい結果です。
したがって、御投稿された chiseki さんのご指摘のとおり、距離の比率に応じた誤差配分がされていません。
※Ver.5.67β以降は修正したので、下表の最右列のようになっています。
2.GioLine の誤差配布手法
今回ご指摘いただいたのは「コンパス法」ですが、実はトランシット法の閉合差にも同じ問題があります。
ここでは「コンパス法」を例にして説明します。
不自然な結果になる原因は、GioLine が、上記の計算式ではなく、
閉合差×(計算対象までの各辺長の累加距離 ÷ 総距離)- 前点までの補正量の合計値
で計算しているためです。以下この式を簡便法と呼ぶことにします。
簡便法で計算した結果が下表です(一部ですが)。GioLineは四捨五入で丸めています。
今度も調整不足になりますから、再調整でどこかに 1mm 加える必要があります。
以上の例は極めて特殊&極端だと思われると思いますが、絶対にあり得ないと言えない限り、プログラムで対応する必要があります。
4.方法はないのか
それでは、正規の式で処理する方法はないのかと思われるでしょう。
現在、GioLine のコンパス法の補正計算は測点順に実行されていますが、測点順ではなく、辺長の長い順に行えばある程度、解決できます(式は簡便法と同じ)。
すぐにプログラムの修正を行うことは難しいですが、将来的には対応したいと思います。2015/01/14 対応済み
5.最後の言い訳
こちらの Yahoo 知恵袋 に拙作と同じ簡便法の回答がありますから、簡便法で処理されているケースもあるようです。
測量のプログラムで一番面倒なのは補正量の計算です。
GioLine のトラバースは時代遅れの方法だと思っています。
計算は対数表と算盤で行っていた手法をプログラムに置き換えただけの物です。
コンピュータの時代ですから、トラバース計算の場合も、計算過程の距離はフル桁でおこない、閉合差も当然フル桁で、誤差配布もフル桁、最後の座標値で小数部3桁に丸めれば、プログラムは極めてシンプルになり、簡単に作る事ができます、精度も向上するはずです。
(コンパス法でも正確な按分になりますし、均等法等も同様です。)
しかし、旧来の手法を踏襲しているので、補正は全て整数値であることが求められ、煩雑な処理が必要です。
また、精度も劣っているはずです。
本来、トラバース測量の処理に「基準」はないはずですから、全てフル桁処理でも問題はないと思いますが、やはり計算書が綺麗に見えないのが原因でしょうか?
最後になりますが、chiseki さんからご指摘いただいた配分処理の間違いは GioLine 公開直後から存在していた訳ですが、ご指摘は初めてだと思います。
閉合差が大きいと気が付きにくい間違いだからだと思います。
改めて、chiseki さんのご指摘に感謝します。
補足 2017/12/12
会員版の「2点結合トラバース」の計算は「5.最後の言い訳」に記したフル桁で処理をおこなっています。
詳しくはこちらをご覧下さい。
今度は調整不足になりますから、再調整でどこかに 1mm 加える必要があります。
それでは3辺長が同一で、閉合差が 4mm だった場合はどうでしょうか?
3.なぜ簡便法を使っているのか
なぜ正規の式で処理していないのか、疑問に思われると思いますし、これでは「コンパス法ではない!」とのご批判もごもっともです。
簡便法を採用したのは私の力量不足のためです。
多角測量プログラムはどのような観測データでも処理できなければなりませんから、プログラミングは現実的ではないデータの処理が可能か検証しながら作る必要があります。
例えば下表のように4辺全部が同じで、閉合差が 3mm だった場合です。
正規な式で調整累計が 4mm となるので、どこかの測点の調整量を1mm 減らす処理が必要です。
一番簡単なのは、正規式でも累計を求め、累計が閉合差と一致した段階で調整計算を打ち切る方法で、この例では No.4 の補正が 0 になります。
それでは、閉合差が 1mm だった場合はどうでしょうか?