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

## 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.

## 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.

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

$$\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.

### 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.

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.

## References

• Aktuğ B (2009) Inverse and compound datum/frame transformations. J Surv Eng 135(2):46–55

• Aktuğ B (2012) Weakly multicollinear datum transformations. J Surv Eng 138(4):184–192

• Akyilmaz O (2007) Total least squares solution of coordinate transformation. Surv Rev 39(303):68–80

• 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–1105

• 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–43

• 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–85

• 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–234

• Grafarend EW, Awange JL (2003) Nonlinear analysis of the three-dimensional datum transformation [conformal group C7(3)]. J Geod 77:66–76

• Han JY, Van Gelder HWB (2006) Step-wise parameter estimations in a time-variant similarity transformation. J Surv Eng 132(4):141–148

• Han JY (2010) Noniterative approach for solving the indirect problems of linear reference frame transformations. J Surv Eng 136(4):150–156

• Horn BKP (1986) Robot vision. MIT Press, Cambridge, Massachusetts and McGraw-Hill, New York

• Kashani I (2006) Application of generalized approach to datum transformation between local classical and satellite-based geodetic networks. Surv Rev 38(299):412–422

• Leick A (2004) GPS satellite surveying, 3d/Ed. Wiley, Hoboken

• 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, Ohio

• 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

• Paláncz B, Awange JL, Völgyesi L (2013) Pareto optimality solution of the Gauss-Helmert model. Acta Geod Geophys 48:293–304

• Shen YZ, Chen Y, Zheng DH (2006) A quaternion-based geodetic datum transformation algorithm. J Geod 80:233–239

• Soler T (1998) A compendium of transformation formulas useful in GPS work. J Geodyn 72(7–8):482–490

• 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–55

• 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–155

• Xu PL (2002) A hybrid global optimization method: the one-dimensional case. J Comput Appl Math 147:301–314

• Xu PL (2003a) A hybrid global optimization method: the multi-dimensional case. J Comput Appl Math 155:423–446

• Xu PL (2003b) Numerical solution for bounding feasible point sets. J Comput Appl Math 156:201–219

• Zeng HE (2014) Planar coordinate transformation and its parameter estimation in the complex number field. Acta Geod Geophys 49(1):79–94

• 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–1121

• Zeng HE, Yi QL (2010) A new analytical solution of nonlinear geodetic datum transformation. In: Proceedings of the 18th International Conference on Geoinformatics

• Zeng HE, Yi QL (2011) Quaternion-based iterative solution of three-dimensional coordinate transformation problem. J of Computers 6(7):1361–1368

• Zeng WX, Tao BZ (2003) Non-linear adjustment model of three-dimensional coordinate transformation. Geomat Info Sci Wuhan Uni 28(5):566–568

## 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.

## Author information

Authors

### Corresponding author

Correspondence to Huaien Zeng.

### Competing interests

The author declares that he has no competing interests.

## Appendix

### Appendix

Let

$$K={R}^{\mathrm{T}}R-{I}_3,$$
(45)
$${K}^{\mathrm{T}}={R}^{\mathrm{T}}R-{I}_3=K,$$
(46)

then Κ is a symmetric matrix. Since that Λ is a symmetric Lagrangian multiplier matrix, Λ and Κ can be described as follows.

$$\Lambda =\left[\begin{array}{ccc}\hfill {\lambda}_1\hfill & \hfill {\lambda}_2\hfill & \hfill {\lambda}_3\hfill \\ {}\hfill {\lambda}_2\hfill & \hfill {\lambda}_4\hfill & \hfill {\lambda}_5\hfill \\ {}\hfill {\lambda}_3\hfill & \hfill {\lambda}_5\hfill & \hfill {\lambda}_6\hfill \end{array}\right],$$
(47)
$$K=\left[\begin{array}{ccc}\hfill {\kappa}_1\hfill & \hfill {\kappa}_2\hfill & \hfill {\kappa}_3\hfill \\ {}\hfill {\kappa}_2\hfill & \hfill {\kappa}_4\hfill & \hfill {\kappa}_5\hfill \\ {}\hfill {\kappa}_3\hfill & \hfill {\kappa}_5\hfill & \hfill {\kappa}_6\hfill \end{array}\right].$$
(48)
$$\begin{array}{c}\mathrm{t}\mathrm{r}\left(\Lambda K\right)={\lambda}_1{\kappa}_1+{\lambda}_2{\kappa}_2+{\lambda}_3{\kappa}_3+{\lambda}_2{\kappa}_2+{\lambda}_4{\kappa}_4+{\lambda}_5{\kappa}_5+{\lambda}_3{\kappa}_3+{\lambda}_5{\kappa}_5+{\lambda}_6{\kappa}_6\\ {}={\lambda}_1{\kappa}_1+2{\lambda}_2{\kappa}_2+2{\lambda}_3{\kappa}_3+{\lambda}_4{\kappa}_4+2{\lambda}_5{\kappa}_5+{\lambda}_6{\kappa}_6,\end{array}$$
(49)
$$\begin{array}{c}\frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta \Lambda}=\left[\begin{array}{ccc}\hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_1}\hfill & \hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_2}\hfill & \hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_3}\hfill \\ {}\hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_2}\hfill & \hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_4}\hfill & \hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_5}\hfill \\ {}\hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_3}\hfill & \hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_5}\hfill & \hfill \frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta {\lambda}_6}\hfill \end{array}\right]\\ {}=\left[\begin{array}{ccc}\hfill {\kappa}_1\hfill & \hfill 2{\kappa}_2\hfill & \hfill 2{\kappa}_3\hfill \\ {}\hfill 2{\kappa}_2\hfill & \hfill {\kappa}_4\hfill & \hfill 2{\kappa}_5\hfill \\ {}\hfill 2{\kappa}_3\hfill & \hfill 2{\kappa}_5\hfill & \hfill {\kappa}_6\hfill \end{array}\right].\end{array}$$
(50)

By Eqs. (19) and (13), one gets

$$\frac{\delta L}{\delta \Lambda}=\frac{\delta \mathrm{t}\mathrm{r}\left(\Lambda K\right)}{\delta \Lambda}=0,$$
(51)

and then,

$$\left[\begin{array}{ccc}\hfill {\kappa}_1\hfill & \hfill 2{\kappa}_2\hfill & \hfill 2{\kappa}_3\hfill \\ {}\hfill 2{\kappa}_2\hfill & \hfill {\kappa}_4\hfill & \hfill 2{\kappa}_5\hfill \\ {}\hfill 2{\kappa}_3\hfill & \hfill 2{\kappa}_5\hfill & \hfill {\kappa}_6\hfill \end{array}\right]=0.$$
(52)

Further,

$${\kappa}_i=0\kern0.5em \left(i=1,2,\cdots, 6\right).$$
(53)

So,

$$K={R}^{\mathrm{T}}R-{I}_3=0.$$
(54)

## Rights and permissions 