厳密XY網平均の計算方法

このページは、網平均計算について興味のある方のために具体的な計算方法を掲載しました。
「厳密XY網平均の計算方法」
(上記ファイル名をクリックするとダウンロード可ですが、厳密XY網平均の計算方法エクセルの改良はご遠慮ください)

(Space Netを操作する上では、本ページ内容と「厳密XY網平均の計算方法」エクセルを理解する必要はありません)

測量計算ソフトSpace Net につきましては以下のページをご覧ください。
「Space Net XY・高低網」「Space Net 三次元網」「Space Net 水準網」
「Space Net 自由網(XY・高低)」「Space Net 自由網(三次元)」

 シート名   種類   説明  エクセルに 使用した主な計算式   
 計算の内容  計算式 記号の説明   エクセル使用箇所
 入力  入力  
・厳密XY網平均に必要なデータを入力します。

・与点座標と新点近似座標(事前にトラバース計算)、観測データ(水平角と距離)、基準点測量の等級、座標系を入力します。水平角は、同一器械点毎にバック点(ゼロ方向)からまとめて入力します。距離は観測水平距離に投影補正して基準面上の距離を求めて入力します。

・座標系を選択すると座標系原点の緯度が表示されます。この緯度は、次の計算工程の距離と方向角の補正計算に使用されます。
    以下記号のaは最確値、bは観測値、0は近似値、Iは各測線の出発点、Jは各測線の到着点を意味します。   
 1楕円体  計算  
・楕円体の要素を求めています。

・世界測地系の楕円体の長半径と扁平率は定数ですが、それと座標系原点の緯度から座標系原点の平均曲率半径を求めています。平均曲率半径は、次の距離と方向角の補正計算に使用されます。
原点の平均曲率半径   R0=α・√(1-e2)/(1-e2sin2B) R0:原点の平均曲率半径
α:楕円体長半径
  6378137m
e:第1離心率
B:座標系原点の緯度 
D列 
 2距離補正  〃  ・観測距離の補正をしています。

・入力シートで入力した球面距離を網平均計算に使う平面距離に変換します。
距離の補正  SIJ=DIJ・k0(1+1/(6・k02・R02)・(YJ2+YI・YJ+YJ2))  SIJ:平面上の距離
DIJ:楕円体面上の距離
k0:座標系原点の縮尺係数0.9999
YI:出発点のY座標
YJ:到着点のY座標 
 I列
 3角補正  〃  ・観測方向角の補正をしています。

・入力シートで入力した球面方向角を網平均計算に使う平面方向角に変換します。
方向角の補正   TIJ0=tan-1(YJ0-YI0)/(XJ0-XI0)-ρ″/(4k02R02)・(YJ+YI)(XJ-XI)+ρ″/(12k02R02)・(XJ-XI)(YJ-YI) TIJ0:平面方向角
tan-1(YJ0-YI0)/(XJ0-XI0):近似座標の方向角
YI:出発点のY座標
YJ:到着点のY座標
XI:出発点のX座標
XJ:到着点のX座標
ρ″:206264″.8062 
R・AG列 
 4係数ab  〃  
・観測方程式の係数abを求めています。

・各測線毎に、係数aとbを与点座標と新点近似座標、座標間距離から求めます。

・係数aとbを計算するには、各測線の出発点I、到着点Jの区別が重要になります。

・測線のIとJを反対にした係数も下半分の行に表示しています。(係数の符号だけ変わる)
係数ab  a=(YJ0-YI0)/SIJ02・ρ″
b=(XJ0-XI0)/SIJ02・ρ″ 
a:観測方程式の係数
b:観測方程式の係数 
O・Q列 
 5距離定数項  〃
 ・観測方程式の測距の定数項を求めています。

・距離の各測線毎に、座標間距離と観測距離の差から定数項を求めます。観測方程式は距離と角が合わさるため、単位をmから秒に変換します。
測距の定数項  LSIJ=(SIJ0-SIJb)・ρ″/SIJ0  LSIJ:測距の定数項
SIJ0:近似座標距離
SIJb:観測平面距離 
H列 
 6角定数項  〃  
・観測方程式の測角の定数項を求めています。

・角の各測線毎に、近似座標方向角と観測方向角の差から定数項を秒単位で求めます。
測角の定数項 LTIJ=TIJ0-(ZI0+LIJb)   LTIJ:測角の定数項
TIJ0:近似方向角
ZI0:零方向の近似方向角
LIJb:観測水平角
 AC列
 7距離方程式  〃
 ・測距の観測方程式を求めています。

・距離の各測線毎に、該当する係数abを係数abシートから呼び込んでいます。与点の箇所の係数は0にします。

・係数abを呼び込むため、測線の出発点I、到着点Jの区別が重要になります。

・距離の各測線毎に、該当する定数項を角定数項シートから呼び込んでいます。
測距の観測方程式  VSIJ=-b儿I-a兀I+b儿J+a兀J+LSIJ  VSIJ:測距の観測方程式
儿:未知量(X補正量)
兀:未知量(Y補正量)
LSIJ:測距の定数項 
H・J・L・N・P列 
 8角方程式  〃  
・測角の観測方程式を求めています。

・距離の各測線毎に、該当する係数abを係数abシートから呼び込んでいます。与点の箇所の係数は0にします。

・係数abを呼び込むため、測線の出発点I、到着点Jの区別が重要になります。

・角の各測線毎に、該当する定数項を距離定数項シートから呼び込んでいます。
測角の観測方程式  VTIJ=-ZI+a儿I-b兀I-a儿J+b兀J+LTIJ  VTIJ:測角の観測方程式
儿:未知量(X補正量)
兀:未知量(Y補正量)
LTIJ:測角の定数項 
S・U・W・Y・AA列 
 9全体方程式  〃  
・網全体の観測方程式を求めています。

・行列計算に備え、距離と角の観測方程式の係数を距離方程式と角方程式シートから呼び出し、未知量を対応させてくっつけ並べています。角標定誤差の係数だけ新たに作っています。(器械点に関わる箇所が-1になる)

・行列計算に備え、係数表の右側に定数項、重み、残差ベクトル名を距離と角定数項シート、重みシートから呼び出し、くっつけ並べています。
網全体の観測方程式  V=A儻+L  V:残差ベクトル
A:係数行列
儻:未知量ベクトル
L:定数項ベクトル

*ベクトルは1列 
AB〜AU・BC・BG・BL列 
 10重み  〃  ・距離観測の重量を求めています。

・測線毎に、角観測の重量を1とした距離観測の重量を、入力シートのmt・m0・k、測線の距離から求めます。
測距の重み PS=mt2/(m02+(kS)2)・S2/(ρ″)2・PT  PS:測距の重み
mt:測角の平均二乗誤差
m0:定誤差
k:比例定数
S:辺長
PT:測角の重み 
F〜I列 
 11行列  〃
 ・行列計算により最小二乗法で座標の補正量等を求めています。

・観測方程式の各要素(定数項ベクトル、係数行列、重み行列)から最小二乗法による行列計算で座標の補正量、観測値の残差を求めます。(ベクトルは1列)

・行列計算A’PVが0であれば正しく計算されたことになります。(点検)
行列計算  A’PA=N

A’PL=U

-N−1・U=W

AW+L=V 
N:正規行列
U:定数項ベクトル
W:補正量ベクトル
V:残差ベクトル
P:重み対角行列
N-1:Nの逆行列 
全体 
 12座標最確値  〃  ・座標の最確値を求めています。

・新点座標近似値に行列計算で求めた補正量を足して座標の最確値を求めます。
座標の最確値  XIA=XI0+儿I

YIA=YI0+兀I 
 XIA:X座標最確値
XI0:X座標近似値
儿I:Xの補正量
YIA:Y座標最確値
YI0:Y座標近似値
兀I:Yの補正量
 J・K列
 13距離最確値  〃
 ・距離の最確値を求めています。

・観測距離に行列計算で求めた残差(単位を秒からmに変換)を足して距離の最確値を求めます。
距離の最確値  SIJa=SIJb+VSIJ SIJa:距離の最確値
SIJb:距離の観測値
VSIJ:距離の残差 
 K列
 14角最確値  〃
 ・方向角の最確値を求めています。

・観測方向角に行列計算で求めた残差を足して方向角の最確値を求めます。
方向角の最確値  TIJa=LIJb+VTIJ+ZI0+兒I  TIJa:方向角の最確値
LIJb+ZI0:観測方向角
VTIJ:方向角の残差
兒I:標定誤差 
I〜AJ列 
 15最確値誤差  〃
 ・最確値の誤差を求めています。

・観測値の残差、重み、方程式数、未知数から単位重みの標準偏差を求めます。

・正規行列の逆行列N-1の対角要素と単位重みの標準偏差から、新点座標の標準偏差を求めます。(測量精度の一尺度)
最確値の誤差  r0=√(1/(n-m)ΣPVV)

rj=√(r02Njj-1) 
r0:観測値の標準偏差
rj:座標値の標準偏差

(標準偏差=√分散) 
 D・L列
 自分流エクセルの作り方
*同じ種類の計算毎にシート分けています(シート間で値を参照利用)。計算過程が複雑になるほどシートが増えます。
*左のシートから順番に計算しています(シート名の頭の番号順)
*基本的に、シート内の計算は左から行っています。
*グループ化して非表示している行と列(途中の結果)が沢山ありますが、+か2ボタンを押せば表示と非表示の切替ができます。
*全計算は、VBAでなく一般機能のセルの数式で行っています。(=から始まる計算式)
*基本的に、同じ列には同じ数式が入っていて、参照形式を駆使してフィルコピーできるようになっています。(縦に同じ色はフィルコピー済という意味)
(そのため、各シートについて基本的に1行分の数式が理解できれば、何の計算をしているかわかり、メンテナンスも楽になります)

*表作成でよく使う関数(頻度の多い順)
@IF(分岐) AVLOOKUP(検索して呼び出し) BOFFSET(一定の異なった配置の呼び出し) CSUM(合計) DSQAT(√)
測量計算に限らず@〜Cは、どんな種類の計算にも多用しています。BOFFSETは覚えておくと便利です。例えば、対角方向に規則的に入力されているデータを縦や横方向に表示させたり、2行おきに縦に入力されているデータを縦につめて表示できます。

目的の計算をさせたい時に、関数を組み合わせて使う場合があります。数式が複雑になるときは、列を分けて計算し、表示の必要ない列(作業列)はグループ化して非表示にし、表をすっきりさせています。
 測量計算で特徴的なこと
*角度の計算は、60進数で入力します。それをエクセルで、10進数に変換してから必要な計算をします(サイン、コサイン計算する場合は10進数をラジアンに変換)。次に10進数を60進数に変換します。60進数以外の列はグループ化して非表示にしています。角度単位を変換する数式を別シート等からコピーして使えるので時間はかかりませんが、変換に多数の列を使用します。

*網平均に使う行列計算は特殊な方法で入力します。結果を出したい行列範囲を選択してから数式(行列関数)を入力し、確定する時はシフト+コントロール+エンターを同時に押す必要があります。