Skip to content

Advertisement

  • Full paper
  • Open Access

Analytical algorithm of weighted 3D datum transformation using the constraint of orthonormal matrix

Earth, Planets and Space201567:105

https://doi.org/10.1186/s40623-015-0263-6

  • Received: 3 March 2015
  • Accepted: 4 June 2015
  • Published:

Abstract

Based on the Lagrangian extremum law with the constraint that rotation matrix is an orthonormal matrix, the paper presents a new analytical algorithm of weighted 3D datum transformation. It is a stepwise algorithm. Firstly, the rotation matrix is computed using eigenvalue-eigenvector decomposition. Then, the scale parameter is computed with computed rotation matrix. Lastly, the translation parameters are computed with computed rotation matrix and scale parameter. The paper investigates the stability of the presented algorithm in the cases that the common points are distributed in 3D, 2D, and 1D spaces including the approximate 2D and 1D spaces, and gives the corresponding modified formula of rotation matrix. The comparison of the presented algorithm and classic Procrustes algorithm is investigated, and an improved Procrustes algorithm is presented since that the classic Procrustes algorithm may yield a reflection rather than a rotation in the cases that the common points are distributed in 2D space. A simulative numerical case and a practical case are illustrated.

Keywords

  • Weighted 3D datum transformation
  • Analytical algorithm
  • Lagrangian extremum
  • Constraint of orthonormal matrix
  • Procrustes algorithm

Background

Three-dimensional datum transformation is a frequently used work in geodesy, engineering surveying, photogrammetry, mapping, geographical information science (GIS), machine vision, etc., e.g., Aktuğ (2009), Akyilmaz (2007), El-Mowafy et al (2009), Ge et al (2013), Han and Van Gelder (2006), Horn (1986), Kashani (2006), Neitzel (2010), Paláncz et al (2013), Soler (1998), Soler and Snay (2004), Soycan and Soycan (2008), Zeng (2014). Usually, in order to compute the transformed coordinate, the transformation parameters in the transformation model (e.g., seven-parameter similarity transformation, see Aktuğ 2012, Leick 2004, Leick and van Gelder 1975,) need to be solved with several control points in advance. So far, a large number of algorithms for recovering the parameters have been presented, which can be divided into two classes. One is the numerical iterative algorithm, and the other one is analytical algorithm. The former needs the initial parameter values, linearization, and iterative computation, e.g., Zeng and Tao (2003), Chen et al. (2004), Zeng and Huang (2008), El-Habiby et al. (2009), Zeng and Yi (2011), etc. In the case that the rotation angle is large, the initial values are difficult even never to be obtained in advance, and consequently, it leads to the failure of solution (see Zeng and Yi 2011). We should note that if global optimization algorithms are used, then no initial values are required (see, e.g., Xu 2003a, Xu 2003b, Xu 2002). In contrast, the latter does not involve the initial parameter values, linearization, and iterative computation, and can give the exact solution quickly. However, because of the complexity of mathematical derivation, only several analytical algorithms have been put forward. Grafarend and Awange (2003) presented the Procrustes algorithm which utilized the singular value decomposition technique. Shen et al. (2006) presented a quaternion-based algorithm which utilized the quaternion property and eigenvalue-eigenvector decomposition. Han (2010) presented a stepwise approach to individually calculate the transformation parameters by the physical interpretation of similarity transformation. Zeng and Yi (2010) presented a new analytical algorithm based on the good properties of Rodrigues matrix and Gibbs vector.

The present study is organized as follows. In the Methods section, a new analytical algorithm to weighted 3D datum transformation is derived in detail, based on the Lagrangian extremum law with the constraint that the rotation matrix is an orthonormal matrix. In the meanwhile, its stability is discussed when the distribution of 3D control points degenerates into 2D (planar) or even 1D (collinear). The presented algorithm and classic Procrustes algorithm are compared, and an improved Procrustes algorithm is presented since that the classic Procrustes algorithm may yield a reflection rather than a rotation in the cases that the common points are distributed in 2D space. In the Results and discussion section, a simulative numerical case and a practical case are given to demonstrate the presented algorithm, classic Procrustes algorithm, and improved Procrustes algorithm. Lastly, conclusions are made in the Conclusions section.

Methods

Presentation of the basic algorithm

The seven-parameter similarity transformation model can be expressed as
$$ {a}_i=\lambda R{b}_i+t, $$
(1)
subject to
$$ {R}^{\mathrm{T}}R={I}_3,\kern0.5em \det (R)=+1, $$
(2)
where \( {a}_i={\left[\begin{array}{ccc}\hfill {X}_i\hfill & \hfill {Y}_i\hfill & \hfill {Z}_i\hfill \end{array}\right]}^{\mathrm{T}} \) and \( {b}_i={\left[\begin{array}{ccc}\hfill {x}_i\hfill & \hfill {y}_i\hfill & \hfill {z}_i\hfill \end{array}\right]}^{\mathrm{T}} \) i = 1, 2, , n are the 3D coordinates of a common point in target and source coordinate systems of transformation, tagged as system A and system B, respectively. Superscript T stands for transpose, I 3 denotes a 3 × 3 identity matrix, and det means computing the determinant of matrix. λ denotes the scale parameter, \( t={\left[\begin{array}{ccc}\hfill \Delta X\hfill & \hfill \Delta Y\hfill & \hfill \Delta Z\hfill \end{array}\right]}^{\mathrm{T}} \) denotes the three translation parameters, and R denotes the 3 × 3 rotation matrix, which contains the three rotation angles. Supposing R is formed by rotating angles α, β, and γ counterclockwise around the Cartesian X, Y, and Z axes, respectively, then R can be expressed by rotation angles as
$$ R=\left[\begin{array}{ccc}\hfill \cos \gamma \cos \beta \hfill & \hfill \sin \gamma \cos \alpha + \cos \gamma \sin \beta \sin \alpha \hfill & \hfill \sin \gamma \sin \alpha - \cos \gamma \sin \beta \cos \alpha \hfill \\ {}\hfill - \sin \gamma \cos \beta \hfill & \hfill \cos \gamma \cos \alpha - \sin \gamma \sin \beta \sin \alpha \hfill & \hfill \cos \gamma \sin \alpha + \sin \gamma \sin \beta \cos \alpha \hfill \\ {}\hfill \sin \beta \hfill & \hfill - \cos \beta \sin \alpha \hfill & \hfill \cos \beta \cos \alpha \hfill \end{array}\right]. $$
(3)
Using (3), the rotation angles α, β, and γ can be computed if R is recovered as
$$ \alpha =-{ \tan}^{-1}\frac{R_{32}}{R_{33}},\kern0.5em \beta ={ \sin}^{-1}\left({R}_{31}\right),\kern0.5em \gamma =-{ \tan}^{-1}\frac{R_{21}}{R_{11}}, $$
(4)
where R ij is the element of R in the ith row and jth column.
Introducing the following matrix form of the coordinates as
$$ A=\left[\begin{array}{cccc}\hfill {a}_1\hfill & \hfill {a}_2\hfill & \hfill \cdots \hfill & \hfill {a}_n\hfill \end{array}\right],\ B=\left[\begin{array}{cccc}\hfill {b}_1\hfill & \hfill {b}_2\hfill & \hfill \cdots \hfill & \hfill {b}_n\hfill \end{array}\right], $$
(5)
then Eq. (1) is rewritten as
$$ A=\lambda RB+t{\mathbf{1}}_n, $$
(6)
where \( {\mathbf{1}}_n=\underset{n}{\underbrace{\left[\begin{array}{ccc}\hfill 1\hfill & \hfill \cdots \hfill & \hfill 1\hfill \end{array}\right]}} \), i.e., a row vector with n elements and all elements are 1. It is obvious that in order to determine the seven parameters, the number n of common points must be greater than or equal to 3.
Considering the coordinates include errors, Eq. (7) is transformed as
$$ A=\lambda RB+t{\mathbf{1}}_n+E, $$
(7)
where E is the transformation error matrix. The criterion of the least squares can be constructed by the Lagrangian extremum law with the constraint of Eq. (2), i.e., orthonormal matrix as follows. It is worthy of note that the constraint det(R) = + 1 is not imposed, since it can be separately treated at some extra computation as in the Stability of the basic algorithm and its modification section.
$$ L\left(\lambda, t,\mathrm{R},\Lambda \right)=\mathrm{t}\mathrm{r}\left(EP{E}^{\mathrm{T}}\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)= \min, $$
(8)
where tr denotes trace operation of matrix, Λ is a symmetric Lagrangian multiplier matrix, and P represents the weight matrix that every point has an isotropic weight and is independent of each other. Substituting the expression of E easily obtained from Eq. (7) into Eq. (8), one can obtain
$$ \begin{array}{c}L\left(\lambda, t,\mathrm{R},\Lambda \right)=\mathrm{t}\mathrm{r}\left(EP{E}^{\mathrm{T}}\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)\\ {}=\mathrm{t}\mathrm{r}\left(\left(A-\lambda RB-t{\mathbf{1}}_n\right)P{\left(A-\lambda RB-t{\mathbf{1}}_n\right)}^{\mathrm{T}}\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)\\ {}= \min .\end{array} $$
(9)
If and only if the following conditions are satisfied, the Lagrangian extremum exists.
$$ \frac{\partial L}{\partial t}=0, $$
(10)
$$ \frac{\partial L}{\partial \lambda }=0, $$
(11)
$$ \frac{\partial L}{\partial R}=0, $$
(12)
$$ \frac{\partial L}{\partial \Lambda}=0. $$
(13)
By Eqs. (9) and (10), one gets
$$ \begin{array}{l}L\left(\lambda, t,\mathrm{R},\Lambda \right)=\mathrm{t}\mathrm{r}\left(\left(A-\lambda RB-t{\mathbf{1}}_n\right)P\left({A}^{\mathrm{T}}-\lambda {B}^{\mathrm{T}}{R}^{\mathrm{T}}-{{\mathbf{1}}_n}^{\mathrm{T}}{t}^{\mathrm{T}}\right)\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)\\ {}=\mathrm{t}\mathrm{r}\left(\left(A-\lambda RB\right)P\left({A}^{\mathrm{T}}-\lambda {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)-\left(A-\lambda RB\right)P{{\mathbf{1}}_n}^{\mathrm{T}}{t}^{\mathrm{T}}-t{\mathbf{1}}_nP\left({A}^{\mathrm{T}}-\lambda {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)+t{\mathbf{1}}_nP{{\mathbf{1}}_n}^{\mathrm{T}}{t}^{\mathrm{T}}\right)\\ {}+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right),\end{array} $$
(14)
$$ \begin{array}{c}\frac{\partial L}{\partial t}=-\left(A-\lambda RB\right)P{{\mathbf{1}}_n}^{\mathrm{T}}-\left(A-\lambda RB\right)P{{\mathbf{1}}_n}^{\mathrm{T}}+2\cdot {\mathbf{1}}_nP{{\mathbf{1}}_n}^{\mathrm{T}}t\\ {}=-2\left(A-\lambda RB\right)P{{\mathbf{1}}_n}^{\mathrm{T}}+2\cdot {\mathbf{1}}_nP{{\mathbf{1}}_n}^{\mathrm{T}}t=0,\end{array} $$
(15)
and thus,
$$ t={\left({\mathbf{1}}_nP{{\mathbf{1}}_n}^{\mathrm{T}}\right)}^{-1}\left(A-\lambda RB\right)P{{\mathbf{1}}_n}^{\mathrm{T}}. $$
(16)

Obviously, t is the function form of λ and R.

Substituting Eq. (16) into Eq. (7), one gets
$$ \begin{array}{l}E=A-\lambda RB-{\left({\mathbf{1}}_nP{{\mathbf{1}}_n}^{\mathrm{T}}\right)}^{-1}\left(A-\lambda RB\right)P{{\mathbf{1}}_n}^{\mathrm{T}}{\mathbf{1}}_n\\ {}=\left(A-\lambda RB\right)\left({I}_n-{\left({\mathbf{1}}_nP{{\mathbf{1}}_n}^{\mathrm{T}}\right)}^{-1}P{{\mathbf{1}}_n}^{\mathrm{T}}{\mathbf{1}}_n\right),\end{array} $$
(17)
where I n  − (1 n P 1 n T)− 1 P 1 n T 1 n is the centering matrix. Let ΔA = A(I n  − (1 n P 1 n T)− 1 P 1 n T 1 n ), ΔB = B(I n  − (1 n P 1 n T)− 1 P 1 n T 1 n ), and thus, they are the centralized coordinate matrix, and then, Eq. (17) is written as
$$ E=\Delta A-\lambda R\Delta \mathrm{B}. $$
(18)
Substituting Eq. (18) into Eq. (8), one gets
$$ \begin{array}{l}L\left(\lambda, \mathrm{R},\Lambda \right)=\mathrm{t}\mathrm{r}\left(\left(\Delta A-\lambda R\Delta B\right)P{\left(\Delta A-\lambda R\Delta B\right)}^{\mathrm{T}}\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)\\ {}=\mathrm{t}\mathrm{r}\left(\left(\Delta A-\lambda R\Delta B\right)P\left(\Delta {A}^{\mathrm{T}}-\lambda \Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)\\ {}=\mathrm{t}\mathrm{r}\left(\Delta AP\Delta {A}^{\mathrm{T}}-\lambda \Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}-\lambda R\Delta BP\Delta {A}^{\mathrm{T}}+{\lambda}^2R\Delta BP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right)\\ {}=\mathrm{t}\mathrm{r}\left(\Delta {A}^{\mathrm{T}}P\Delta A-2\lambda \Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}+{\lambda}^2R\Delta BP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)+\mathrm{t}\mathrm{r}\left(\Lambda \left({R}^{\mathrm{T}}R-{I}_3\right)\right).\end{array} $$
(19)
Derivation of Eq. (19) makes use of the properties of trace operation, i.e.,
$$ \mathrm{t}\mathrm{r}\left(\Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)=\mathrm{t}\mathrm{r}\left({\left(\Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)}^{\mathrm{T}}\right)=\mathrm{t}\mathrm{r}\left(R\Delta BP\Delta {A}^{\mathrm{T}}\right). $$
(20)
Substituting Eq. (19) into Eq. (11), one gets
$$ \begin{array}{l}\frac{\partial L}{\partial \lambda }=-2\mathrm{t}\mathrm{r}\left(\Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)+2\lambda \mathrm{t}\mathrm{r}\left(R\Delta BP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)\\ {}=-2\mathrm{t}\mathrm{r}\left(\Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)+2\lambda \mathrm{t}\mathrm{r}\left(\Delta BP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}R\right)\\ {}=-2\mathrm{t}\mathrm{r}\left(\Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)+2\lambda \mathrm{t}\mathrm{r}\left(\Delta BP\Delta {B}^{\mathrm{T}}\right)\\ {}=0,\end{array} $$
(21)
$$ \lambda =\frac{\mathrm{tr}\left(\Delta AP\Delta {B}^{\mathrm{T}}{R}^{\mathrm{T}}\right)}{\mathrm{tr}\left(\Delta BP\Delta {B}^{\mathrm{T}}\right)}. $$
(22)

Obviously, λ is the function form of R.

Substituting Eq. (19) into Eq. (12), one gets
$$ \begin{array}{c}\frac{\partial L}{\partial R}=2\left(\Delta A-\lambda R\Delta B\right)P\left(-\lambda \Delta {B}^{\mathrm{T}}\right)+R\left(\Lambda +{\Lambda}^{\mathrm{T}}\right)\\ {}=-2\lambda \Delta AP\Delta {B}^{\mathrm{T}}+2{\lambda}^2R\Delta BP\Delta {B}^{\mathrm{T}}+2R\varLambda =0,\end{array} $$
(23)
and thus,
$$ R=\lambda \Delta AP\Delta {B}^{\mathrm{T}}{\left({\lambda}^2\Delta BP\Delta {B}^{\mathrm{T}}+\Lambda \right)}^{-1}. $$
(24)
Substituting Eq. (19) into Eq. (13), one gets the following equation and the derivation process is given in the Appendix.
$$ {R}^{\mathrm{T}}R-{I}_3=0, $$
(25)
further substituting Eq. (24) into Eq. (25), one gets
$$ {\lambda}^2{\left({\lambda}^2\Delta BP\Delta {B}^{\mathrm{T}}+\Lambda \right)}^{-1}\Delta BP\Delta {A}^{\mathrm{T}}\Delta AP\Delta {B}^{\mathrm{T}}{\left({\lambda}^2\Delta BP\Delta {B}^{\mathrm{T}}+\Lambda \right)}^{-1}={I}_3, $$
(26)
so
$$ {\lambda}^2\Delta BP\Delta {B}^{\mathrm{T}}+\Lambda =\lambda {\left(\Delta BP\Delta {A}^{\mathrm{T}}\Delta AP\Delta {B}^{\mathrm{T}}\right)}^{\frac{1}{2}}, $$
(27)
and substituting Eq. (27) into Eq. (24), one gets
$$ R=\Delta AP\Delta {B}^{\mathrm{T}}{\left(\Delta BP\Delta {A}^{\mathrm{T}}\Delta AP\Delta {B}^{\mathrm{T}}\right)}^{-\frac{1}{2}}. $$
(28)
Let
$$ D=\Delta AP\Delta {B}^{\mathrm{T}}, $$
(29)
then Eq. (28) can be rewritten as
$$ R=D{\left({D}^{\mathrm{T}}D\right)}^{-\frac{1}{2}}. $$
(30)
Note that D T D is symmetric, non-negative definitive and so has non-negative real eigenvalues. The inverse of the square root of D T D can thus be computed using eigenvalue-eigenvector decomposition.
$$ {\left({D}^{\mathrm{T}}D\right)}^{-\frac{1}{2}}=\frac{v_1{v_1}^{\mathrm{T}}}{\sqrt{d_1}}+\frac{v_2{v_2}^{\mathrm{T}}}{\sqrt{d_2}}+\frac{v_3{v_3}^{\mathrm{T}}}{\sqrt{d_3}}, $$
(31)
where d i and v i for i = 1, 2, 3 are the eigenvalues and corresponding eigenvectors of the matrix D T D. So, Eq. (30) can be written as
$$ R=D\left(\frac{v_1{v_1}^{\mathrm{T}}}{\sqrt{d_1}}+\frac{v_2{v_2}^{\mathrm{T}}}{\sqrt{d_2}}+\frac{v_3{v_3}^{\mathrm{T}}}{\sqrt{d_3}}\right) $$
(32)

Stability of the basic algorithm and its modification

Obviously, the construction of the inverse of the square root of D T D , i.e., Eq. (31), fails if one or two of d i for i = 1, 2, 3 equals to 0. Assume that the eigenvalues of the matrix D T D satisfies the following condition.
$$ {d}_1\le {d}_2\le {d}_3. $$
(33)
When the common points are distributed in a plane, i.e., 2D space, the matrix D T D is singular and of rank 2, and thus,
$$ {d}_1=\mathbf{0},\kern0.5em {d}_3\ge {d}_2>\mathbf{0}. $$
(34)
One can compute the rotation matrix as follows.
$$ {D}_1=\left(\frac{v_2{v_2}^{\mathrm{T}}}{\sqrt{d_2}}+\frac{v_3{v_3}^{\mathrm{T}}}{\sqrt{d_3}}\right), $$
(35)
$$ {D}_2=\left(D{D}_1{\left(D{D}_1\right)}^{\mathrm{T}}-{I}_3\right){v}_1{v_1}^{\mathrm{T}}, $$
(36)
$$ R=D{D}_1\pm \frac{D_2}{\sqrt{\left|\mathrm{t}\mathrm{r}\left({D}_2\right)\right|}}, $$
(37)
where the sign ± is chosen so that det(R) = + 1 is satisfied.
The above case is the ideal one, but in the case that the common points are distributed in an approximate plane, although
$$ {d}_3\ge {d}_2>{d}_1>\mathbf{0}, $$
(38)
and the order of magnitude of d i for i = 1, 2, 3 differs greatly from each other. In other words, the matrix D T D is approximately singular, and the condition number of matrix D T D is very big (usually the threshold is set to 100). The Eq. (31) is ill-conditioned and leads to a biased solution. At this time, one can also obtain the exact solution by Eqs. (35)–(37).
When the common points are distributed in a line, i.e., 1D space, the matrix D T D is singular and of rank 1, and thus,
$$ {d}_2={d}_1=\mathbf{0},\kern0.5em {d}_3>\mathbf{0}. $$
(39)
The rotation matrix is impossible to recover in a whole; however, one can recover at most two rotation angles by the following formula.
$$ R=\frac{v_3{v_3}^{\mathrm{T}}}{\sqrt{d_3}}, $$
(40)
and the utilization of Eq. (40) make it feasible to compute the translation parameter and scale parameter.
The above case is the ideal one, but in the case that the common points are distributed in an approximate line, although
$$ {d}_3>{d}_2>{d}_1=\mathbf{0}, $$
(41)
and the order of magnitude of d i for i = 2, 3 differs greatly from each other (e.g., d 3 > 100d 2). The computation by Eqs. (35)–(37) is biased, and no exact solution can be found like the case that the common points are distributed in a line space. At this time, one can carry out the computation by Eq. (40).

Comparison to classic Procrustes algorithm and improvement of the classic Procrustes algorithm

The classic Procrustes algorithm presented by Grafarend and Awange (2003) is a well-known analytical algorithm of 3D datum transformation. It is also based on the Lagrangian extremum law, similarly to the presented algorithm in this paper. But differently, it does not constrain the orthonormal matrix condition. For the Procrustes algorithm, due to utilization of the singular value decomposition technique, the computed rotation matrix always satisfies the constraint condition R T R = I 3; however, in the cases that the common points are distributed in a rigid or approximate plane, this situation that det(R) = − 1 rather than det(R) = + 1 usually happens. This means the computed R is a reflection instead of a rotation. For the presented algorithm in this paper, the constraint condition R T R = I 3 is imposed in the computation, and thus, it is always satisfied. And in the cases that the common points are distributed in a rigid or approximate plane, the sign ± in Eq. (36) is properly chosen so that det(R) = + 1 is satisfied.

To recover the exact rotation matrix by Procrustes algorithm when det(R) = − 1, the computation formula of R, i.e., Eq. (22) in Grafarend and Awange (2003) should be improved as
$$ {X}_{3l}=U{\tilde{V}}^{\mathrm{T}}, $$
(42)
where \( \tilde{V}=\left[\begin{array}{ccc}\hfill {V}_1\hfill & \hfill {V}_2\hfill & \hfill -{V}_3\hfill \end{array}\right] \), V 1, V 2, and V 3 are the column matrix of V, and V 3 is the column matrix that corresponds to the singular value that is 0.
Therefore, the general improved computation formula of R, i.e., Eq. (22) in Grafarend and Awange (2003) is
$$ {X}_{3l}=U\left[\begin{array}{ccc}\hfill 1\hfill & \hfill 0\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 1\hfill & \hfill 0\hfill \\ {}\hfill 0\hfill & \hfill 0\hfill & \hfill \det \left(U{V}^{\mathrm{T}}\right)\hfill \end{array}\right]{V}^{\mathrm{T}}, $$
(43)
which is stable for the cases that the common points are distributed in 3D and 2D spaces including approximate 2D space. In the case that the common points are distributed in 1D space, Eq. (43) can recover at most two rotation angles and be used to compute the translation parameter and scale parameter.

Results and discussion

Simulative case

The case data is simulated as follows. In order to investigate the stability performance of the presented algorithm (PA) in this paper, the classic Procrustes algorithm (CPA) and improved Procrustes algorithm (IPA) in the cases that the control points are distributed in 3D, 2D, and 1D spaces, six sets of control point in system B is first given in Table 1, of which set 1 is distributed in 3D space, sets 2, 3, and 4 are distributed in 2D space, and sets 5 and 6 are distributed in 1D space. The distribution of six sets of control point is depicted intuitively in Fig. 1. Set 2 has only three control points, and it is necessary for the least point number to solve the seven parameters. Secondly, the theoretical seven parameters are given in Table 2. For the sake of an efficient test of the algorithms, the rotation angles are designed to be big angles. Thirdly, the coordinates of control points in system A are computed by Eq. (1), and the result is listed in Table 3. In this case, the stability of the three algorithms is focused, so the weight matrix is designated to identity matrix for easy demonstration.
Table 1

Simulative true coordinates of control points in system B

Point number

Set 1 (m)

Set 2 (m)

Set 3 (m)

x

y

z

x

y

z

x

y

z

1

10.000

30.000

5.000

10.000

30.000

5.000

10.000

30.000

57.000

2

20.000

30.000

12.500

20.000

30.000

12.500

20.000

30.000

67.000

3

30.000

30.000

15.000

30.000

30.000

15.000

30.000

30.000

77.000

4

10.000

20.000

9.500

   

10.000

20.000

42.000

5

20.000

20.000

11.000

   

20.000

20.000

52.000

6

30.000

20.000

10.000

   

30.000

20.000

62.000

7

10.000

10.000

14.500

   

10.000

10.000

27.000

8

20.000

10.000

4.500

   

20.000

10.000

37.000

9

30.000

10.000

4.000

   

30.000

10.000

47.000

Point number

Set 4(m)

Set 5 (m)

Set 6 (m)

x

y

z

x

y

z

x

y

z

1

10.000

30.000

15.000

10.000

10.000

10.000

10.000

0.000

0.000

2

20.000

30.000

15.000

20.000

20.000

20.000

20.000

0.000

0.000

3

30.000

30.000

15.000

30.000

30.000

30.000

30.000

0.000

0.000

4

10.000

20.000

15.000

40.000

40.000

40.000

   

5

20.000

20.000

15.000

50.000

50.000

50.000

   

6

30.000

20.000

15.000

60.000

60.000

60.000

   

7

10.000

10.000

15.000

70.000

70.000

70.000

   

8

20.000

10.000

15.000

80.000

80.000

80.000

   

9

30.000

10.000

15.000

90.000

90.000

90.000

   
Fig. 1
Fig. 1

The distribution of control point in system B. a Set 1. b Set 2. c Set 3. d Set 4. e Set 5. f Set 6

Table 2

Simulative theoretical values of transformation parameters

ΔX (m)

ΔY (m)

ΔZ (m)

α

β

γ

λ

30

30

10

71°

78°

73°

1.000016

Table 3

Simulative true coordinates of control points in system A

Point number

Set 1 (m)

Set 2 (m)

Set 3 (m)

X

Y

Z

X

Y

Z

X

Y

Z

1

52.116

7.239

14.222

52.116

7.239

14.222

94.294

37.450

17.742

2

58.807

9.608

24.512

58.807

9.608

24.512

103.013

41.272

28.201

3

61.443

9.072

34.463

61.443

9.072

34.463

111.732

45.093

38.659

4

49.949

17.746

16.493

   

76.310

36.628

18.693

5

51.773

16.629

26.376

   

85.029

40.450

29.151

6

51.570

14.060

36.090

   

93.748

44.271

39.610

7

48.187

28.543

18.797

   

58.325

35.806

19.643

8

40.683

20.745

27.902

   

67.044

39.627

30.102

9

40.886

18.466

37.650

   

75.763

43.449

40.560

Point number

Set 4(m)

Set 5 (m)

Set 6 (m)

X

Y

Z

X

Y

Z

X

Y

Z

1

60.227

13.048

14.899

44.537

25.929

18.493

30.608

28.012

19.782

2

60.835

11.060

24.681

59.073

21.858

26.985

31.216

26.023

29.563

3

61.443

9.072

34.463

73.610

17.787

35.478

31.824

24.035

39.345

4

54.410

20.941

16.865

88.146

13.716

43.971

   

5

55.017

18.953

26.647

102.683

9.645

52.463

   

6

55.625

16.965

36.429

117.219

5.573

60.956

   

7

48.592

28.834

18.831

131.756

1.502

69.449

   

8

49.200

26.846

28.613

146.292

−2.569

77.941

   

9

49.808

24.857

38.394

160.829

−6.640

86.434

   
Next, the transformation seven parameters are recovered by the three algorithms, and the result is listed in Table 4. ME in Table 4 is the mean error and computed by
Table 4

Calculated transformation parameters and mean error

Parameters

Set 1

Set 2

Set 3

PA

CPA

IPA

PA

CPA

IPA

PA

CPA

IPA

ΔX (m)

30.000215

30.000215

30.000215

29.997125

64.907810

29.997125

29.999564

29.884451

29.999564

ΔY (m)

30.000014

30.000014

30.000014

29.999418

−17.354508

29.999418

30.000156

31.848392

30.000156

ΔZ (m)

9.999992

9.999992

9.999992

10.000804

−1.797635

10.000804

9.999562

9.420190

9.999562

α (°)

70.998025

70.998025

70.998025

70.994443

−70.994443

70.994443

70.999494

60.478813

70.999494

β (°)

77.999873

77.999873

77.999873

77.996704

77.996704

77.996704

77.999588

43.508921

77.999588

γ (°)

73.001648

73.001648

73.001648

73.000253

73.000253

73.000253

73.000571

−89.744632

73.000571

λ

1.000012

1.000012

1.000012

1.000049

1.000049

1.000049

1.000025

1.000025

1.000025

ME (m)

0.000315

0.000315

0.000315

0.000197

0.000197

0.000197

0.000313

0.000313

0.000313

Parameters

Set 4

Set 5

Set 6

PA

CPA

IPA

PA

CPA

IPA

PA

CPA

IPA

ΔX (m)

29.999778

29.999778

29.999778

30.000278

30.000278

30.000278

30.000000

30.000000

30.000000

ΔY (m)

30.000191

30.000191

30.000191

30.000389

30.000389

30.000389

30.000333

30.000333

30.000333

ΔZ (m)

9.999647

9.999647

9.999647

10.000083

10.000083

10.000083

10.000333

10.000333

10.000333

α (°)

71.000802

71.000802

71.000802

−45.000000

−35.145218

−54.854782

unsolved

−61.858215

−61.858215

β (°)

78.000742

78.000742

78.000742

16.444350

−24.651859

−24.651859

77.998588

77.998588

77.998588

γ (°)

72.999769

72.999769

72.999769

15.645706

6.418995

6.418995

72.998563

72.998563

72.998563

λ

1.000028

1.000028

1.000028

1.000016

1.000016

1.000016

1.000008

1.000008

1.000008

ME (m)

0.000294

0.000294

0.000294

0.000296

0.000296

0.000296

0.000407

0.000407

0.000407

$$ \mathrm{ME}=\sqrt{\frac{\mathrm{tr}\left({E}^{\mathrm{T}}PE\right)}{3n-7}}. $$
(44)
It is seen from Table 4 that the results of seven parameters are identical and accurate for the three algorithms in the case of set 1, i.e., the case that the control points are distributed in 3D space. For the cases that the control points are distributed in 2D space, PA and IPA have the identical and accurate results of seven parameters, but CPA has one correct result of seven parameters for set 4 and two wrong results of rotation angles for sets 2 and 3, because reflections rather than rotations are found, and all translation and scale parameters are correct. For the cases that the control points are distributed in 1D space, i.e., sets 5 and 6, the three algorithms all recover the correct translation and scale parameters and at most recover two rotation angles. The number of solvable transformation parameters for the three algorithms is counted and listed in Table 5.
Table 5

Number of solvable transformation parameters

Space

PA

CPA

IPA

Translation

Angle

Scale

Total

Translation

Angle

Scale

Total

Translation

Angle

Scale

Total

3D

3

3

1

7

3

3

1

7

3

3

1

7

2D

3

3

1

7

0–3

0–3

1

1–7

3

3

1

7

1D

3

0–2

1

4–6

3

0–2

1

4–6

3

0–2

1

4–6

Actual case

The case data is from Grafarend and Awange (2003). The coordinates of control points in system B (local system) and A (WGS-84 system) is listed in Table 6. The distribution of seven control points in local system is depicted in Fig. 2. From this figure, it is seen that the distribution of control points are in an approximate plane. In the process of PA computation, condition number of matrix D T D is 2.5 × 1011, so Eq. (32) is seriously ill-conditioned and yields a biased solution if not processed. When the weight matrix is an identity matrix, the computed results of seven parameters with PA and CPA are listed in Table 7. For the situation that the weight matrix is a point-wise matrix, i.e., every point has isotropic weight and is independent of each other, the point-wise matrix is generated by the way introduced in Grafarend and Awange (2003) and is listed in Table 8. The computed results of seven parameters with PA and CPA are listed in Table 9.
Table 6

Coordinates of control points in systems B and A

Station name

System B (local system) (m)

System A (WGS-84) (m)

 

x

y

z

X

Y

Z

Solitude

4,157,222.543

664,789.307

4,774,952.099

4,157,870.237

664,818.678

4,775,416.524

Buoch Zeil

4,149,043.336

688,836.443

4,778,632.188

4,149,691.049

688,865.785

4,779,096.588

Hohenneuffen

4,172,803.511

690,340.078

4,758,129.701

4,173,451.354

690,369.375

4,758,594.075

Kuehlenberg

4,177,148.376

642,997.635

4,760,764.800

4,177,796.064

643,026.700

4,761,228.899

Ex Mergelaec

4,137,012.190

671,808.029

4,791,128.215

4,137,659.549

671,837.337

4,791,592.531

Ex Hof Asperg

4,146,292.729

666,952.887

4,783,859.856

4,146,940.228

666,982.151

4,784,324.099

Ex Kaisersbach

4,138,759.902

702,670.738

4,785,552.196

4,139,407.506

702,700.227

4,786,016.645

Fig. 2
Fig. 2

The distribution of seven control points in local system

Table 7

Calculated transformation parameters (identity weight matrix)

 

PA

CPA

Rotation matrix

      

R

1.0000000000

0.0000048146

−0.0000043328

1.0000000000

0.0000048146

−0.0000043328

 

−0.0000048146

1.0000000000

−0.0000048408

−0.0000048146

1.0000000000

−0.0000048408

 

0.0000043327

0.0000048408

1.0000000000

0.0000043327

0.0000048408

1.0000000000

Rotation angles (″)

      

α

 

−0.998496121

  

−0.998496121

 

β

 

0.893693325

  

0.893693325

 

γ

 

0.993086229

  

0.993086229

 

Translation (m)

      

ΔX

 

641.8805

  

641.8805

 

ΔY

 

68.6551

  

68.6551

 

ΔZ

 

416.3982

  

416.3982

 

Scale

      

λ

 

1.000005583

  

1.000005583

 

ME (m)

 

0.0773

  

0.0773

 
Table 8

Point-wise weight matrix

Values

      

2.170137

0

0

0

0

0

0

0

2.097755

0

0

0

0

0

0

0

2.208968

0

0

0

0

0

0

0

2.201671

0

0

0

0

0

0

0

2.182928

0

0

0

0

0

0

0

2.268808

0

0

0

0

0

0

0

2.643404

Table 9

Calculated transformation parameters (point-wise weight matrix)

 

PA

CPA

Rotation matrix

      

R

1.0000000000

0.0000047797

−0.0000043444

1.0000000000

0.0000047797

−0.0000043444

 

−0.0000047797

1.0000000000

−0.0000048370

−0.0000047797

1.0000000000

−0.0000048370

 

0.0000043443

0.0000048371

1.0000000000

0.0000043443

0.0000048371

1.0000000000

Rotation angles (″)

      

α

 

−0.997716185

  

−0.997716186

 

β

 

0.896085615

  

0.896085615

 

γ

 

0.985885069

  

0.985885070

 

Translation (m)

      

ΔX

 

641.8395

  

641.8395

 

ΔY

 

68.4729

  

68.4729

 

ΔZ

 

416.2156

  

416.2156

 

Scale

      

λ

 

1.000005611

  

1.000005611

 

Mean error (m)

 

0.1140

  

0.1140

 

It is seen from Tables 7 and 9 that the results of PA and CPA are identical if the bias caused by decimal rounding is ignored. Hence, the PA is comparable with CPA.

Conclusions

The numerical case study shows that the presented new algorithm and improved Procrustes algorithm are both stable and reliable for the cases that the control points are distributed in 3D, and 2D including approximate 2D space, and can recover at most two angles as well as all translation and scale parameters for the cases that the control points are distributed in 1D space. The classic Procrustes algorithm also can compute all translation and scale parameters for all the cases that the control points are distributed in 3D, 2D, and 1D spaces; however, it may yield a reflection rather than a rotation in the cases that the common points are distributed in 2D space. The numerical case study also shows the presented algorithm in this paper, and improved Procrustes algorithm is both stable and reliable when the rotation angles are big. And the presented algorithm in this paper is comparable with the classic Procrustes algorithm when the point-wise weight matrix is involved.

Declarations

Acknowledgments

The study is supported by the Open Foundation of Hubei Key Laboratory of Construction and Management in Hydropower Engineering, China Three Gorges University (Grant No. 2014KSD13), the National Natural Science Foundation of China (Grant No. 41104009), the Open Research Fund Program of the Key Laboratory of Geospace Environment and Geodesy, Ministry of Education, China (Grant No. 11-01-04), and the 2015 Open Foundation of the Key Laboratory of Precise Engineering and Industry Surveying, National Administration of Surveying, Mapping, and Geoinformation of China. The author is grateful for the support and good working atmosphere provided by his research team in China Three Gorges University. Last but not the least, the author’s special thanks are given to Dr. Koji Matsumoto and two anonymous reviewers for their valuable comments and suggestions, which enhance the quality of this manuscript.

Authors’ Affiliations

(1)
Key Laboratory of Geological Hazards on Three Gorges Reservoir Area (China Three Gorges University), Ministry of Education, Yichang, 443002, China
(2)
Hubei Key Laboratory of Construction and Management in Hydropower Engineering, China Three Gorges University, Yichang, 443002, China

References

  1. Aktuğ B (2009) Inverse and compound datum/frame transformations. J Surv Eng 135(2):46–55View ArticleGoogle Scholar
  2. Aktuğ B (2012) Weakly multicollinear datum transformations. J Surv Eng 138(4):184–192View ArticleGoogle Scholar
  3. Akyilmaz O (2007) Total least squares solution of coordinate transformation. Surv Rev 39(303):68–80View ArticleGoogle Scholar
  4. Chen Y, Shen YZ, Liu DJ (2004) A simplified model of three dimensional-datum transformation adapted to big rotation angle. Geomat Info Sci Wuhan Uni 29(12):1101–1105Google Scholar
  5. El-Habiby MM, Gao Y, Sideris MG (2009) Comparison and analysis of non-linear least squares methods for 3-D coordinates transformation. Surv Rev 41(311):26–43View ArticleGoogle Scholar
  6. El-Mowafy A, Fashir H, Al-Marzooqi Y (2009) Improved coordinate transformation in Dubai using a new interpolation approach of coordinate differences. Surv Rev 41(311):71–85View ArticleGoogle Scholar
  7. Ge Y, Yuan Y, Jia N (2013) More efficient methods among commonly used robust estimation methods for GPS coordinate transformation. Surv Rev 45(330):229–234View ArticleGoogle Scholar
  8. Grafarend EW, Awange JL (2003) Nonlinear analysis of the three-dimensional datum transformation [conformal group C7(3)]. J Geod 77:66–76View ArticleGoogle Scholar
  9. Han JY, Van Gelder HWB (2006) Step-wise parameter estimations in a time-variant similarity transformation. J Surv Eng 132(4):141–148View ArticleGoogle Scholar
  10. Han JY (2010) Noniterative approach for solving the indirect problems of linear reference frame transformations. J Surv Eng 136(4):150–156View ArticleGoogle Scholar
  11. Horn BKP (1986) Robot vision. MIT Press, Cambridge, Massachusetts and McGraw-Hill, New YorkGoogle Scholar
  12. Kashani I (2006) Application of generalized approach to datum transformation between local classical and satellite-based geodetic networks. Surv Rev 38(299):412–422View ArticleGoogle Scholar
  13. Leick A (2004) GPS satellite surveying, 3d/Ed. Wiley, HobokenGoogle Scholar
  14. Leick A, van Gelder BHW (1975) On similarity transformations and geodetic network distortions based on Doppler satellite observations. Rep. No. 235. Dept. of Geodetic Science, Ohio State Univ, Columbus, OhioGoogle Scholar
  15. Neitzel F (2010) Generalization of total least-squares on example of weighted 2D similarity transformation. J Geod 84(12):751–762. doi:10.1007/s00190-010-0408-0 View ArticleGoogle Scholar
  16. Paláncz B, Awange JL, Völgyesi L (2013) Pareto optimality solution of the Gauss-Helmert model. Acta Geod Geophys 48:293–304View ArticleGoogle Scholar
  17. Shen YZ, Chen Y, Zheng DH (2006) A quaternion-based geodetic datum transformation algorithm. J Geod 80:233–239View ArticleGoogle Scholar
  18. Soler T (1998) A compendium of transformation formulas useful in GPS work. J Geodyn 72(7–8):482–490View ArticleGoogle Scholar
  19. Soler T, Snay RA (2004) Transforming positions and velocities between the International Terrestrial Reference Frame of 2000 and North American Datum of 1983. J Surv Eng 130(2):49–55View ArticleGoogle Scholar
  20. Soycan M, Soycan A (2008) Transformation of 3D GPS Cartesian coordinates to ED50 using polynomial fitting by robust re-weighting technique. Surv Rev 40(308):142–155View ArticleGoogle Scholar
  21. Xu PL (2002) A hybrid global optimization method: the one-dimensional case. J Comput Appl Math 147:301–314View ArticleGoogle Scholar
  22. Xu PL (2003a) A hybrid global optimization method: the multi-dimensional case. J Comput Appl Math 155:423–446View ArticleGoogle Scholar
  23. Xu PL (2003b) Numerical solution for bounding feasible point sets. J Comput Appl Math 156:201–219View ArticleGoogle Scholar
  24. Zeng HE (2014) Planar coordinate transformation and its parameter estimation in the complex number field. Acta Geod Geophys 49(1):79–94View ArticleGoogle Scholar
  25. Zeng HE, Huang SX (2008) A kind of direct search method adopted to solve 3D coordinate transformation parameters. Geomat Info Sci Wuhan Uni 33(11):1118–1121Google Scholar
  26. Zeng HE, Yi QL (2010) A new analytical solution of nonlinear geodetic datum transformation. In: Proceedings of the 18th International Conference on GeoinformaticsGoogle Scholar
  27. Zeng HE, Yi QL (2011) Quaternion-based iterative solution of three-dimensional coordinate transformation problem. J of Computers 6(7):1361–1368View ArticleGoogle Scholar
  28. Zeng WX, Tao BZ (2003) Non-linear adjustment model of three-dimensional coordinate transformation. Geomat Info Sci Wuhan Uni 28(5):566–568Google Scholar

Copyright

Advertisement