三维四参数空间直角坐标系转换模型变换关系理解
[
X
G
Y
G
Z
G
]
=
[
X
C
Y
C
Z
C
]
+
[
T
x
T
y
T
z
]
+
[
Z
C
cos
B
0
sin
L
0
−
Y
C
sin
B
0
−
Z
C
cos
B
0
cos
L
0
+
X
C
sin
B
0
Y
C
cos
B
0
cos
L
0
−
X
C
cos
B
0
sin
L
0
]
α
(1)
\tag{1} \begin{bmatrix} X_G \\ Y_G \\ Z_G \end{bmatrix} = \begin{bmatrix} X_C \\ Y_C \\ Z_C \end{bmatrix} + \begin{bmatrix} T_x \\ T_y \\ T_z \end{bmatrix} + \begin{bmatrix} Z_C\cos{B_0}\sin{L_0} - Y_C\sin{B_0} \\ -Z_C\cos{B_0}\cos{L_0} + X_C\sin{B_0} \\ Y_C\cos{B_0}\cos{L_0} - X_C\cos{B_0}\sin{L_0} \\ \end{bmatrix}\alpha
⎣
⎡XGYGZG⎦
⎤=⎣
⎡XCYCZC⎦
⎤+⎣
⎡TxTyTz⎦
⎤+⎣
⎡ZCcosB0sinL0−YCsinB0−ZCcosB0cosL0+XCsinB0YCcosB0cosL0−XCcosB0sinL0⎦
⎤α(1)
式中:
式中:
式中:
X
G
,
Y
G
,
Z
G
:
2000
国家大地坐标系下的坐标,单位为米
(
m
)
;
X_G,Y_G,Z_G:2000国家大地坐标系下的坐标,单位为米(m);
XG,YG,ZG:2000国家大地坐标系下的坐标,单位为米(m);
B
0
,
L
0
:
2000
国家大地坐标系下,区域中心
P
0
点的大地经纬度,单位为弧度
(
r
a
d
)
;
B_0,L_0:2000国家大地坐标系下,区域中心P_0点的大地经纬度,单位为弧度(rad);
B0,L0:2000国家大地坐标系下,区域中心P0点的大地经纬度,单位为弧度(rad);
X
C
,
Y
C
,
Z
C
:大地坐标系(
1954
北京坐标系或者
1980
西安坐标系)下的坐标,单位为米
(
m
)
;
X_C,Y_C,Z_C:大地坐标系(1954北京坐标系或者1980西安坐标系)下的坐标,单位为米(m);
XC,YC,ZC:大地坐标系(1954北京坐标系或者1980西安坐标系)下的坐标,单位为米(m);
T
X
,
T
Y
,
T
Z
:坐标平移量,单位为米
(
m
)
;
T_X,T_Y,T_Z:坐标平移量,单位为米(m);
TX,TY,TZ:坐标平移量,单位为米(m);
α
:旋转参数,即区域中心
P
0
点法线为旋转轴的控制网水平定向旋转量,
顾及
1954
北京坐标系或者
1980
西安坐标系平面坐标由于起始定向与
2000
国家大地坐标系
的差异引起的坐标变化,单位为弧度
(
r
a
d
)
。
\alpha:旋转参数,即区域中心P_0点法线为旋转轴的控制网水平定向旋转量,\\ 顾及1954北京坐标系或者1980西安坐标系平面坐标由于起始定向与2000国家大地坐标系\\ 的差异引起的坐标变化,单位为弧度(rad)。
α:旋转参数,即区域中心P0点法线为旋转轴的控制网水平定向旋转量,顾及1954北京坐标系或者1980西安坐标系平面坐标由于起始定向与2000国家大地坐标系的差异引起的坐标变化,单位为弧度(rad)。
令
令
令
a
0
=
Z
C
cos
B
0
sin
L
0
−
Y
C
sin
B
0
,
a_0= Z_C\cos{B_0}\sin{L_0} - Y_C\sin{B_0},
a0=ZCcosB0sinL0−YCsinB0,
a
1
=
−
Z
C
cos
B
0
cos
L
0
+
X
C
sin
B
0
,
a_1= -Z_C\cos{B_0}\cos{L_0} + X_C\sin{B_0},
a1=−ZCcosB0cosL0+XCsinB0,
a
2
=
Y
C
cos
B
0
cos
L
0
−
X
C
cos
B
0
sin
L
0
a_2= Y_C\cos{B_0}\cos{L_0} - X_C\cos{B_0}\sin{L_0}
a2=YCcosB0cosL0−XCcosB0sinL0
则
(
1
)
式变换为:
则(1)式变换为:
则(1)式变换为:
[
X
G
Y
G
Z
G
]
=
[
X
C
Y
C
Z
C
]
+
[
T
x
T
y
T
z
]
+
[
a
0
a
1
a
2
]
α
=
[
X
C
Y
C
Z
C
]
+
[
T
x
+
a
0
α
T
y
+
a
1
α
T
z
+
a
2
α
]
(2)
\tag{2} \begin{bmatrix} X_G \\ Y_G \\ Z_G \end{bmatrix} = \begin{bmatrix} X_C \\ Y_C \\ Z_C \end{bmatrix} + \begin{bmatrix} T_x \\ T_y \\ T_z \end{bmatrix} + \begin{bmatrix} a_0 \\ a_1 \\ a_2 \end{bmatrix}\alpha = \begin{bmatrix} X_C \\ Y_C \\ Z_C \end{bmatrix} + \begin{bmatrix} T_x + a_0\alpha \\ T_y + a_1\alpha \\ T_z + a_2\alpha \end{bmatrix}
⎣
⎡XGYGZG⎦
⎤=⎣
⎡XCYCZC⎦
⎤+⎣
⎡TxTyTz⎦
⎤+⎣
⎡a0a1a2⎦
⎤α=⎣
⎡XCYCZC⎦
⎤+⎣
⎡Tx+a0αTy+a1αTz+a2α⎦
⎤(2)
又
∵
又\because
又∵
[
T
x
+
a
0
α
T
y
+
a
1
α
T
z
+
a
2
α
]
=
[
P
1
P
2
P
3
P
4
P
5
P
6
P
7
P
8
P
9
P
10
P
11
P
12
]
[
T
x
T
y
T
z
α
]
\begin{bmatrix} T_x + a_0\alpha \\ T_y + a_1\alpha \\ T_z + a_2\alpha \end{bmatrix} = \begin{bmatrix} P_1 & P_2 & P_3 & P_4 \\ P_5 & P_6 & P_7 & P_8 \\ P_9 & P_{10} & P_{11} & P_{12} \end{bmatrix} \begin{bmatrix} T_x \\ T_y \\ T_z \\ \alpha \end{bmatrix}
⎣
⎡Tx+a0αTy+a1αTz+a2α⎦
⎤=⎣
⎡P1P5P9P2P6P10P3P7P11P4P8P12⎦
⎤⎣
⎡TxTyTzα⎦
⎤
⇒
\Rarr
⇒
P
1
=
1
,
P
2
=
0
,
P
3
=
0
,
P
4
=
a
0
,
P
5
=
0
,
P
6
=
1
,
P
7
=
0
,
P
8
=
a
1
,
P
9
=
0
,
P
10
=
0
,
P
11
=
1
,
P
12
=
a
2
P_1=1,P_2=0,P_3=0,P_4=a_0,\\ P_5=0,P_6=1,P_7=0,P_8=a_1,\\ P_9=0,P_{10}=0,P_{11}=1,P_{12}=a_2
P1=1,P2=0,P3=0,P4=a0,P5=0,P6=1,P7=0,P8=a1,P9=0,P10=0,P11=1,P12=a2
∴
(
2
)
式变换为:
\therefore (2)式变换为:
∴(2)式变换为:
[
X
G
Y
G
Z
G
]
=
[
X
C
Y
C
Z
C
]
+
[
1
0
0
a
0
0
1
0
a
1
0
0
1
a
2
]
[
T
x
T
y
T
z
α
]
(3)
\tag{3} \begin{bmatrix} X_G \\ Y_G \\ Z_G \end{bmatrix} = \begin{bmatrix} X_C \\ Y_C \\ Z_C \end{bmatrix} + \begin{bmatrix} 1 & 0 & 0 & a_0 \\ 0 & 1 & 0 & a_1 \\ 0 & 0 & 1 & a_2 \end{bmatrix} \begin{bmatrix} T_x \\ T_y \\ T_z \\ \alpha \end{bmatrix}
⎣
⎡XGYGZG⎦
⎤=⎣
⎡XCYCZC⎦
⎤+⎣
⎡100010001a0a1a2⎦
⎤⎣
⎡TxTyTzα⎦
⎤(3)
基于最小二乘与多对同名点对计算参数
设存在
n
对同名点对:
(
X
a
,
Y
a
,
Z
a
)
1
→
(
X
b
,
X
b
,
Z
b
)
1
,
⋯
,
(
X
a
,
Y
a
,
Z
a
)
n
→
(
X
b
,
X
b
,
Z
b
)
n
.
设存在n对同名点对:(X_a,Y_a,Z_a)_1 \rarr (X_b,X_b,Z_b)_1,\cdots,(X_a,Y_a,Z_a)_n \rarr (X_b,X_b,Z_b)_n.
设存在n对同名点对:(Xa,Ya,Za)1→(Xb,Xb,Zb)1,⋯,(Xa,Ya,Za)n→(Xb,Xb,Zb)n.
令
令
令
θ
=
[
T
x
T
y
T
z
α
]
\theta =\begin{bmatrix} T_x \\ T_y \\ T_z \\ \alpha \end{bmatrix}
θ=⎣
⎡TxTyTzα⎦
⎤
v
i
=
(
X
G
−
X
C
,
Y
G
−
Y
C
,
Z
G
−
Z
C
)
i
T
,
v_i=(X_G-X_C,Y_G-Y_C,Z_G-Z_C)^T_i,
vi=(XG−XC,YG−YC,ZG−ZC)iT,
P
i
=
[
1
0
0
a
0
0
1
0
a
1
0
0
1
a
2
]
i
,
P_i= \begin{bmatrix} 1 & 0 & 0 & a_0 \\ 0 & 1 & 0 & a_1 \\ 0 & 0 & 1 & a_2 \end{bmatrix}_i,
Pi=⎣
⎡100010001a0a1a2⎦
⎤i,
i
=
1
,
⋯
,
n
i=1,\cdots,n
i=1,⋯,n
根据式
(
3
)
,代入样本值得到方程组如下:
根据式(3),代入样本值得到方程组如下:
根据式(3),代入样本值得到方程组如下:
{
P
1
θ
=
v
1
P
2
θ
=
v
2
⋮
P
n
θ
=
v
n
\begin{dcases} P_1\theta = v_1 \\ P_2\theta = v_2 \\ \vdots \\ P_n\theta = v_n \end{dcases}
⎩
⎨
⎧P1θ=v1P2θ=v2⋮Pnθ=vn
则变换为矩阵方程为:
则变换为矩阵方程为:
则变换为矩阵方程为:
v
=
P
θ
v = P\theta
v=Pθ
P
=
[
P
1
P
2
⋮
P
n
]
,
v
=
[
v
1
v
2
⋮
v
n
]
P= \begin{bmatrix} P_1 \\ P_2 \\ \vdots \\ P_n \end{bmatrix}, v= \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}
P=⎣
⎡P1P2⋮Pn⎦
⎤,v=⎣
⎡v1v2⋮vn⎦
⎤
考虑
v
=
P
θ
无解,需要从
P
的列空间中找出最接近
v
的向量
u
(
u
可以理解为
v
在
P
的列空间中的投影,理解如下图所示:)
考虑v = P\theta无解,需要从P的列空间中找出最接近v的向量u(u可以理解为v在P的列空间中的投影,理解如下图所示:)
考虑v=Pθ无解,需要从P的列空间中找出最接近v的向量u(u可以理解为v在P的列空间中的投影,理解如下图所示:)
如上图所示,
p
是
b
在
[
a
1
a
2
]
列空间中的投影。
如上图所示,p是b在\begin{bmatrix} a_1 & a_2 \end{bmatrix} 列空间中的投影。
如上图所示,p是b在[a1a2]列空间中的投影。
令
e
=
v
−
u
,最小二乘就是找到
∥
e
∥
2
最小的点,最小二乘就是指向量长度的最小平方。
令e=v-u,最小二乘就是找到\parallel e \parallel^2最小的点,最小二乘就是指向量长度的最小平方。
令e=v−u,最小二乘就是找到∥e∥2最小的点,最小二乘就是指向量长度的最小平方。
由上可知,
u
位于
P
的列空间中,即
u
是
P
的各列的线性组合:
由上可知,u位于P的列空间中,即u是P的各列的线性组合:
由上可知,u位于P的列空间中,即u是P的各列的线性组合:
令
P
的列空间为
P
=
[
C
1
C
2
⋯
C
m
]
令P的列空间为 P= \begin{bmatrix} C_1 & C_2 & \cdots & C_m \end{bmatrix}
令P的列空间为P=[C1C2⋯Cm]
故存在
u
=
C
1
θ
1
~
+
C
2
θ
2
~
+
⋯
+
C
m
θ
m
~
故存在 u=C_1\tilde{\theta_1} + C_2\tilde{\theta_2} + \cdots + C_m\tilde{\theta_m}
故存在u=C1θ1~+C2θ2~+⋯+Cmθm~
即
P
θ
~
=
u
有解。
即P\tilde{\theta}=u有解。
即Pθ~=u有解。
e
=
v
−
u
=
v
−
P
θ
~
e=v-u=v-P\tilde{\theta}
e=v−u=v−Pθ~
e
正交于
P
的列空间,存在:
e正交于P的列空间,存在:
e正交于P的列空间,存在:
e
⊥
C
1
,
e
⊥
C
2
,
⋯
,
e
⊥
C
m
e \perp C_1,e \perp C_2,\cdots,e \perp C_m
e⊥C1,e⊥C2,⋯,e⊥Cm
由向量点积关系式可得: 由向量点积关系式可得: 由向量点积关系式可得:
⇒ { C 1 T ( v − P θ ~ ) = 0 C 2 T ( v − P θ ~ ) = 0 ⋮ C m T ( v − P θ ~ ) = 0 \Rarr \begin{dcases} C_1^T(v-P\tilde{\theta})=0 \\ C_2^T(v-P\tilde{\theta})=0 \\ \vdots \\ C_m^T(v-P\tilde{\theta})=0 \end{dcases} ⇒⎩ ⎨ ⎧C1T(v−Pθ~)=0C2T(v−Pθ~)=0⋮CmT(v−Pθ~)=0
⇒ [ C 1 T C 2 T C 3 T ⋮ C m T ] ( v − P θ ~ ) = [ 0 0 0 ⋮ 0 ] \Rarr \begin{bmatrix} C_1^T \\ C_2^T \\ C_3^T \\ \vdots \\ C_m^T \end{bmatrix} (v-P\tilde{\theta})= \begin{bmatrix} 0 \\ 0 \\ 0 \\ \vdots \\ 0 \end{bmatrix} ⇒⎣ ⎡C1TC2TC3T⋮CmT⎦ ⎤(v−Pθ~)=⎣ ⎡000⋮0⎦ ⎤
∵
P
=
[
C
1
C
2
⋯
C
m
]
\because P= \begin{bmatrix} C_1 & C_2 & \cdots & C_m \end{bmatrix}
∵P=[C1C2⋯Cm]
∴
P
T
=
[
C
1
T
C
2
T
⋮
C
m
T
]
\therefore P^T = \begin{bmatrix} C_1^T \\ C_2^T \\ \vdots \\ C_m^T \end{bmatrix}
∴PT=⎣
⎡C1TC2T⋮CmT⎦
⎤
⇒
P
T
(
v
−
P
θ
~
)
=
0
\Rarr P^T(v-P\tilde{\theta})=0
⇒PT(v−Pθ~)=0
⇒
P
T
P
θ
~
=
P
T
v
\Rarr P^TP\tilde{\theta}=P^Tv
⇒PTPθ~=PTv
⇒
θ
~
=
(
P
T
P
)
−
1
P
T
v
\Rarr \tilde{\theta}=(P^TP)^{-1}P^Tv
⇒θ~=(PTP)−1PTv
即 θ ~ = ( P T P ) − 1 P T v 为基于最小二乘计算出来的最接近实际参数的转换值 即\tilde{\theta}=(P^TP)^{-1}P^Tv为基于最小二乘计算出来的最接近实际参数的转换值 即θ~=(PTP)−1PTv为基于最小二乘计算出来的最接近实际参数的转换值