1.. Introduction
================

The principle of three-line scanner imagery was first proposed by Hoffman *et al.* \[[@b1-sensors-14-08189]\]. The problem of the low vertical accuracy of adjustment, caused by the traditional small format images, was significantly improved by this method and has been successfully applied in the German MOMS02 project with very good results \[[@b2-sensors-14-08189]--[@b4-sensors-14-08189]\]. In recent years, all of the high resolution Earth observation satellites, such as SPOT5 \[[@b5-sensors-14-08189],[@b6-sensors-14-08189]\], QuickBird \[[@b7-sensors-14-08189],[@b8-sensors-14-08189]\], IKONOS \[[@b7-sensors-14-08189]--[@b9-sensors-14-08189]\], and more recently WorldView and GeoEye *etc.*, have utilized a linear push broom scanner to collect image data. Three-line scanners have been widely exploited not only in satellite photogrammetry, but also in aerial photogrammetry. In 2000, LH Systems successfully applied the three-line imagery technology in aerial photogrammetry and announced the airborne digital three-line scanner ADS40 \[[@b7-sensors-14-08189],[@b10-sensors-14-08189],[@b11-sensors-14-08189]\]; and several airborne digital three-line scanners were released thereafter, such as StarImager \[[@b12-sensors-14-08189]--[@b14-sensors-14-08189]\] and 3-DAS-1 \[[@b14-sensors-14-08189]\]. These airborne digital three-line scanners usually have a global positioning system (GPS) and inertial measurement unit (IMU) on board that can acquire the exterior orientation parameters (EOPs) with considerable precision and provide more observations for bundle adjustment. Under these conditions, the coordinates of ground objects can be precisely determined with only four control points distributed at the four corners, thereby providing a new solution for the automation of photogrammetry. The related processes such as image data preprocessing, triangulation \[[@b15-sensors-14-08189]--[@b17-sensors-14-08189]\] and fast generation of digital surface model (DSM) \[[@b6-sensors-14-08189],[@b18-sensors-14-08189],[@b19-sensors-14-08189]\] have been thoroughly investigated. GPS/IMU aided processing of airborne three-line imagery becomes one of the central issues in aerial photogrammetry.

Image data acquired by three-line scanners have a large base-height ratio, but the linear array push broom strategy makes the EOPs of scanning lines vary by time, and each scanning line thus has different EOPs. It is impossible to simultaneously solve the EOPs of all of the lines in bundle adjustment \[[@b1-sensors-14-08189]\]. In order to reduce the unknowns, a proper sensor model must be established to represent the position and attitude of the sensor. Several sensor models, for example, the direct geo-referencing model \[[@b20-sensors-14-08189]--[@b22-sensors-14-08189]\], the piecewise polynomial model \[[@b1-sensors-14-08189],[@b23-sensors-14-08189]\] and the orientation image model \[[@b1-sensors-14-08189],[@b13-sensors-14-08189],[@b24-sensors-14-08189]\], have been proposed by researchers. The introduction of IMU has provided a great number of useful observations. Many researches to date have focused on using the *φ-ω-κ* rotation angle system defined by sequential rotations about the Y, X, and Z axes or a quaternion \[[@b15-sensors-14-08189]--[@b17-sensors-14-08189],[@b24-sensors-14-08189]\] to represent the attitude parameters. However, the attitude data output from IMU are usually based on the *ω-φ-κ* rotation angle system (or namely the roll, pitch and yaw system) defined by sequential rotations about the X, Y, and Z axes \[[@b25-sensors-14-08189]\]. For better modeling the systematic error of IMU, this paper employs the *ω-φ-κ* rotation angle system and adopts both the systematic error compensation model and the orientation image model in the bundle adjustment. Four real datasets are used for our experiments, and the accuracies of both the systematic error compensation model and the orientation image model are discussed. The achieved results are also compared with the available results in the literature based on *ω-φ-κ* rotation angle system and quaternion.

2.. Mathematical Model of Bundle Block Adjustment
=================================================

2.1.. Basic Theory
------------------

As previously mentioned, it is impossible to set the EOPs of all of the scanning lines as unknowns during bundle adjustment. Proper sensor models are necessary to approximate these unknown parameters. Generally, the direct geo-referencing model, systematic error compensation model, piecewise polynomial model, and orientation image model are often adopted. The standard output of IMU is based on the *ω-φ-κ* rotation angle system (or roll, pitch and yaw system) \[[@b24-sensors-14-08189]\]. Therefore, only in the case where the recommended *ω-φ-κ* system is adopted in bundle adjustment can the identified systematic error in the IMU observations be eliminated via systematic error modeling. Detailed proof will be given in the next section.

Regardless of which sensor model is chosen, the object point, the corresponding image point, and the photographic center should lie on the same line. Given the EOPs (*X~Sj~*, *Y~Sj~*, *Z~Sj~*, *ω~j~*, *φ~j~*, *κ~j~*) of the *j* th scanning line, the instantaneous collinearity equation of the push broom imaging system can be expressed as follows: $$\begin{matrix}
{x - x_{0} = - f\frac{a_{1}\left( {X - Xs_{j}} \right) + b_{1}\left( {Y - Ys_{j}} \right) + c_{1}\left( {Z - Zs_{j}} \right)}{a_{3}\left( {X - Xs_{j}} \right) + b_{3}\left( {Y - Ys_{j}} \right) + c_{3}\left( {Z - Zs_{j}} \right)}} \\
{y - y_{0} = - f\frac{a_{2}\left( {X - Xs_{j}} \right) + b_{2}\left( {Y - Ys_{j}} \right) + c_{2}\left( {Z - Zs_{j}} \right)}{a_{3}\left( {X - Xs_{j}} \right) + b_{3}\left( {Y - Ys_{j}} \right) + c_{3}\left( {Z - Zs_{j}} \right)}} \\
\end{matrix}$$where (*x*, *y*) are the image plane coordinates of the image point; (*x*~0~, *y*~0~, *f*) are the interior elements; (*X*, *Y*, *Z*) are coordinates of the object point; (*X~Sj~*, *Y~Sj~*, *Z~Sj~*) are the translation parameters of the scanning line; and *a~i~*, *b~i~*, *c~i~* (*i* = 1, 2, 3) are the nine elements of the rotation matrix computed by the three angles (*ω~j~*, *φ~j~*, *κ~j~*) of the scanning line.

2.2.. Triangulation Based on the Systematic Error Compensation Model
--------------------------------------------------------------------

The positioning and orientation system (POS) integrated on the three-line digital scanner often has good precision and high stability. The post-processing modules will compensate for the offset related to the projection center and the misalignment related to the IMU main axes, but many experiments have shown that some residual systematic errors will remain in the corrected POS data \[[@b23-sensors-14-08189]\]. It can be assumed to mainly consist of GPS and IMU systematic drift errors that vary by time. Taking the GPS antenna offset errors and the IMU primary axes misalignment errors into consideration, strip related constant and linear terms are used in this paper to represent the offset and drift errors of the GPS/IMU observations. The mathematical model to calculate the photographic center (*X~S~*, *Y~S~*, *Z~S~*) with GPS observations (*X~GPS~*, *Y~GPS~*, *Z~GPS~*) is described as follows \[[@b26-sensors-14-08189]\]: $$\begin{pmatrix}
X_{S} \\
Y_{S} \\
Z_{S} \\
\end{pmatrix} = \begin{pmatrix}
X_{\textit{GPS}} \\
Y_{\textit{GPS}} \\
Z_{\textit{GPS}} \\
\end{pmatrix} - \textbf{R}\begin{pmatrix}
u \\
v \\
w \\
\end{pmatrix} - \begin{pmatrix}
a_{X} \\
a_{Y} \\
a_{Z} \\
\end{pmatrix} - {({t - t_{0}})}\begin{pmatrix}
b_{X} \\
b_{Y} \\
b_{Z} \\
\end{pmatrix}$$where (*u*, *v*, *w*) are the remaining errors of the GPS antenna offset components; **R** is the rotation matrix of the angular elements (*ω*, *φ*, *κ*); (*a~X~*, *a~Y~*, *a~Z~*) and (*b~X~*, *b~Y~*, *b~Z~*) are the systematic offset and drift errors of GPS observations of each strip; *t* is the imaging time of a certain scanning line; and *t*~0~ is the reference time that usually set to be the center time of a strip.

Calculation of the angular elements involves the rotation matrix **R***~IMU~* derived from IMU observations (*ω~I~*, *φ~I~*, *κ~I~*), the misalignment matrix **R***~MIS~* derived from the remaining misalignment errors (*ω~M~*, *φ~M~*, *κ~M~*) of IMU primary axes, and the rotation matrix **R** derived from angular elements (*ω*, *φ*, *κ*) of the EOPs. These three rotation matrices are all based on the *ω-φ-κ* rotation angle system and have the following relationship \[[@b24-sensors-14-08189]\]: $$\textbf{R} = \textbf{R}_{\textit{MIS}}^{\text{T}}\textbf{R}_{\textit{IMU}}$$

Considering the strip offset parameters (*a~ω~*, *a~φ~*, *a~κ~*), and first order drift parameters (*b~ω~*, *b~φ~*, *b~κ~*) of the IMU observations, the systematic error compensated IMU observations ( $\omega_{I}^{\prime}$, $\varphi_{I}^{\prime}$, $\kappa_{I}^{\prime}$,) used in this paper is modeled as follows \[[@b26-sensors-14-08189]\]: $$\begin{pmatrix}
\omega_{I}^{\prime} \\
\varphi_{I}^{\prime} \\
\kappa_{I}^{\prime} \\
\end{pmatrix} = \begin{pmatrix}
\omega_{I} \\
\varphi_{I} \\
\kappa_{I} \\
\end{pmatrix} + \begin{pmatrix}
a_{\omega} \\
a_{\varphi} \\
a_{\kappa} \\
\end{pmatrix} + {({t - t_{0}})}\begin{pmatrix}
b_{\omega} \\
b_{\varphi} \\
b_{\kappa} \\
\end{pmatrix}$$where *t* is the imaging time of a certain scanning line; and *t*~0~ is the reference time of a strip.

The unknowns of the bundle adjustment include the remaining errors of the GPS antenna offset, the remaining misalignment errors of IMU primary axes, the strip offset, and the drift errors of the GPS and IMU observations, and the space coordinates of the object points. Given an area with m strips and n object points, the amount of unknowns is 3 + 3 + 12 × m + 3 × n. After adjustment with the least squares principle, the exact values of the systematic errors can be obtained to refine the EOPs of all of the scanning lines.

The proof of using the *ω-φ-κ* rotation angle system to model the systematic errors of IMU observations will be given by a numerical example. Suppose the IMU observations (*ω~I~*, *φ~I~*, *κ~I~*), systematic errors (*a~ω~*, *a~φ~*, *a~κ~*), and (*b~ω~*, *b~φ~*, *b~κ~*) are *ω~I~* = 0.050000, *ω~I~* = 0.050000, *κ~I~* = 1.550000; *a~ω~* = 1.0*e*^−3^, *a~φ~* = 1.0*e*^−3^, *a~κ~* = 1.0*e*^−3^; and *b~ω~* = 5.0*e*^−6^, *b~φ~* = 5.0*e*^−6^, *b~κ~* = 5.0*e*^−6^. According to the characteristics of IMU, the flying time of each strip is usually no longer than 20 min, so the maximum time offset of a scanner line is *t* − *t*~0~ = 600.00 seconds since *t*~0~ is usually set to be the center line time of a strip.

According to the above supposed values, the systematic error compensated three angles ( $\omega_{I}^{\prime}$, $\varphi_{I}^{\prime}$, $\kappa_{I}^{\prime}$,) can be calculated as follows: $$\begin{pmatrix}
\omega_{I}^{\prime} \\
\varphi_{I}^{\prime} \\
\kappa_{I}^{\prime} \\
\end{pmatrix} = \begin{pmatrix}
0.050000 \\
0.050000 \\
1.550000 \\
\end{pmatrix} + \begin{pmatrix}
{1.0e^{- 3}} \\
{1.0e^{- 3}} \\
{1.0e^{- 3}} \\
\end{pmatrix} + 600.00\begin{pmatrix}
{5.0e^{- 6}} \\
{5.0e^{- 6}} \\
{5.0e^{- 6}} \\
\end{pmatrix} = \begin{pmatrix}
0.054000 \\
0.054000 \\
1.554000 \\
\end{pmatrix}$$

**R***~IMU~* can be derived from the IMU observations (*ω~I~*, *φ~I~*, *κ~I~*), and $\textbf{R}_{\textit{IMU}}^{\prime}$ can be computed by the systematic error compensated three angles ( $\omega_{I}^{\prime}$, $\varphi_{I}^{\prime}$, $\kappa_{I}^{\prime}$,). $$\begin{array}{l}
{\textbf{R}_{\textit{IMU}} = \left( \begin{array}{lll}
0.0207688 & {‐0.9985343} & {‐0.0499792} \\
0.9984824 & 0.0232662 & {‐0.0499167} \\
0.0510064 & {‐0.0488666} & 0.9975021 \\
\end{array} \right),} \\
{\textbf{R}_{\textit{IMU}}^{\prime} = \left( \begin{array}{lll}
0.0167710 & {‐0.9984015} & {‐0.0539738} \\
0.9983526 & 0.0196838 & {‐0.0538951} \\
0.0548713 & {‐0.0529810} & 0.9970868 \\
\end{array} \right)} \\
\end{array}$$

Two sets of three angles (*φ~T~*, *ω~T~*, *κ~T~*), and ( $\varphi_{T}^{\prime}$, $\omega_{T}^{\prime}$, $\kappa_{T}^{\prime}$) under the definition of the *φ-ω-κ* rotation angle system can be decomposed from the above computed rotation matrix **R***~IMU~* and $\textbf{R}_{\textit{IMU}}^{\prime}$, respectively: $$\begin{matrix}
{\varphi_{T} = 0.050062,} & {\omega_{T} = 0.049937,} & {\kappa_{T} = 1.547499} \\
{\varphi_{T}^{\prime} = 0.054079,} & {\omega_{T}^{\prime} = 0.053921,} & {\kappa_{T}^{\prime} = 1.551082} \\
\end{matrix}$$

If the computed systematic errors are directly used as those under the definition of the *φ-ω-κ* rotation angle system, we can easily deduce the following three angles ( $\varphi_{C}^{\prime}$ $\omega_{C}^{\prime}$, $\kappa_{C}^{\prime}$): $$\begin{pmatrix}
\varphi_{C}^{\prime} \\
\omega_{C}^{\prime} \\
\kappa_{C}^{\prime} \\
\end{pmatrix} = \begin{pmatrix}
\varphi_{T} \\
\omega_{T} \\
\kappa_{T} \\
\end{pmatrix} + \begin{pmatrix}
a_{\varphi} \\
a_{\omega} \\
a_{\kappa} \\
\end{pmatrix} + {({t - t_{0}})}\begin{pmatrix}
b_{\varphi} \\
b_{\omega} \\
b_{\kappa} \\
\end{pmatrix} = \begin{pmatrix}
0.054062 \\
0.053937 \\
1.551499 \\
\end{pmatrix}$$

Thus we can get the differences among the two sets of three angles: $\varphi_{T}^{\prime} - \varphi_{C}^{\prime} = 0.000017$, $\omega_{T}^{\prime} - \omega_{C}^{\prime} = 0.000016$, $\kappa_{T}^{\prime} - \kappa_{C}^{\prime} = 0.000417$. The focus to pixel size ratio of ADS40/80 sensors is always about 62.7/0.0065 = 9,630, so the maximum influence of pitch and roll errors caused by using different rotation angles is 0.000017 × 9,630 = 0.16 pixels, which usually can be neglected. However, the maximum influence of the yaw error at the image border is 6,000 × 0.000417 = 2.50 pixels considering the CCD length of ADS 40/80 sensor is 12,000 pixels, which is obviously unable to be neglected. This comparison shows that using the *φ-ω-κ* rotation angle system will cause errors of about 2.50 pixels at the image border, because the strip-related constant and drift errors in IMU observations cannot be correctly treated under this angular system. Up to now, it is clear that modeling the systematic errors of IMU observations based on the *ω-φ-κ* rotation angle system is advantageous since the standard output of IMU device is under this angular system.

2.3.. Triangulation Based on the Orientation Image Model
--------------------------------------------------------

The basic principle of the orientation image model is to solve the three translation and three rotation elements of the EOPs at each orientation image by bundle adjustment. The EOPs of any scanning line between the two EOPs of the orientation images can be interpolated. First or third order Lagrange interpolation \[[@b24-sensors-14-08189]\] is commonly used to interpolate the EOPs for airborne three-line imagery. The POS observations of an airborne three-line scanner have small random errors within a short time. Therefore, these observations can be used in the interpolation of EOPs.

Given a certain ground point Pi, the corresponding image point (*x~ij~*, *y~ij~*) and the EOPs (*X~Sj~*, *Y~Sj~*, *Z~Sj~*, *ω~j~*, *φ~j~*, *κ~j~*) of the corresponding scanning line *j*, the collinearity relationship among them can be described with the EOPs of two adjacent orientation images k and *k* + 1 as follows \[[@b24-sensors-14-08189]\]: $$\begin{matrix}
{x_{ij} = \textbf{F}_{ij}(X_{i},Y_{i},Z_{i},\textit{Xsk},\textit{Ysk},\textit{Zsk},\omega_{k},\varphi_{k},\kappa_{k},\textit{Xsk} + 1,\textit{Ysk} + 1,\textit{Zsk} + 1,\omega_{k + 1},\varphi_{k + 1},\kappa_{k + 1})} \\
{y_{ij} = \textbf{G}_{ij}(X_{i},Y_{i},Z_{i},\textit{Xsk},\textit{Ysk},\textit{Zsk},\omega_{k},\varphi_{k},\kappa_{k},\textit{Xsk} + 1,\textit{Ysk} + 1,\textit{Zsk} + 1,\omega_{k + 1},\varphi_{k + 1},\kappa_{k + 1})} \\
\end{matrix}$$where **F***~ij~* and **G***~ij~* represent the collinearity equation of image coordinates (*x~ij~*, *y~ij~*), (*X~i~*, *Y~i~*, *Z~i~*) are the spatial coordinates of point Pi, (*X~Sk~*, *Y~Sk~*, *Z~Sk~*, *ω~k~*, *φ~k~*, *κ~k~*) and (*X~Sk~*~+1~, *Y~Sk~*~+1~, *Z~Sk~*~+1~, *ω~k~*~+1~, *φ~k~*~+1~, *κ~k~*~+1~) are the EOPs of two adjacent orientation images *k* and *k* + 1.

During the adjustment process, (*X~Sj~*, *Y~Sj~*, *Z~Sj~*, *ω~j~*, *φ~j~*, *κ~j~*) can be calculated by the EOPs of two adjacent orientation images and the correction values which can be derived by GPS/IMU observations. A variable *C~j~* is introduced to represent the relationship among the EOPs at time *t~j~* and the EOPs of the adjacent orientation images at time *t~k~* and *t~k~*~+1~: $$C_{j} = \frac{t_{k + 1} - t_{j}}{t_{k + 1} - t_{k}}$$

Thus (*X~Sj~*, *Y~Sj~*, *Z~Sj~*, *ω~j~*, *φ~j~*, *κ~j~*) can be calculated by the following equations \[[@b24-sensors-14-08189]\]: $$\begin{matrix}
{X_{S_{j}} = C_{j}X_{S_{k}} + (1 - C_{j})X_{S_{k + 1}} - \Delta X_{S_{j}}} \\
{Y_{S_{j}} = C_{j}Y_{S_{k}} + (1 - C_{j})Y_{S_{k + 1}} - \Delta Y_{S_{j}}} \\
{Z_{S_{j}} = C_{j}Z_{S_{k}} + (1 - C_{j})Z_{S_{k + 1}} - \Delta Z_{S_{j}}} \\
{\omega_{j} = C_{j}\omega_{k} + (1 - C_{j})\omega_{k + 1} - \Delta\omega_{j}} \\
{\varphi_{j} = C_{j}\varphi_{k} + (1 - C_{j})\varphi_{k + 1} - \Delta\varphi_{j}} \\
{\kappa_{j} = C_{j}\kappa_{k} + (1 - C_{j})\kappa_{k + 1} - \Delta\kappa_{j}} \\
\end{matrix}$$where the correction vector Δ*X~j~*, Δ*Y~j~*, Δ*Z~j~*, Δ*ω~j~*, Δ*φ~j~*, Δ*κ~j~*, of the EOPs can be calculated by the EOPs at time *j*, *k*, *k* + 1 directly obtained from the GPS/IMU observations, as shown in [Figure 1](#f1-sensors-14-08189){ref-type="fig"} \[[@b24-sensors-14-08189]\]: $$\begin{matrix}
{\Delta X_{j} = C_{j}X_{k}^{\textit{GPS}} + (1 - C_{j})X_{k + 1}^{\textit{GPS}} - X_{j}^{\textit{GPS}}} \\
{\Delta Y_{j} = C_{j}Y_{k}^{\textit{GPS}} + (1 - C_{j})Y_{k + 1}^{\textit{GPS}} - Y_{j}^{\textit{GPS}}} \\
{\Delta Z_{j} = C_{j}Z_{k}^{\textit{GPS}} + (1 - C_{j})Z_{k + 1}^{\textit{GPS}} - Z_{j}^{\textit{GPS}}} \\
{\Delta\omega_{j} = C_{j}\omega_{k}^{\textit{IMU}} + (1 - C_{j})\omega_{k + 1}^{\textit{IMU}} - \omega_{j}^{\textit{IMU}}} \\
{\Delta\varphi_{j} = C_{j}\varphi_{k}^{\textit{IMU}} + (1 - C_{j})\varphi_{k + 1}^{\textit{IMU}} - \varphi_{j}^{\textit{IMU}}} \\
{\Delta\kappa_{j} = C_{j}\kappa_{k}^{\textit{IMU}} + (1 - C_{j})\kappa_{k + 1}^{\textit{IMU}} - \kappa_{j}^{\textit{IMU}}} \\
\end{matrix}$$

The POS observations can be easily integrated into bundle adjustment with the orientation image model. The mathematical model is quite similar to the model described in the above section except that only the offset and drift parameters of the GPS/IMU observations should be taken into consideration. The unknowns of bundle adjustment now include the EOPs of the orientation images, the remaining GPS antenna bias components, the remaining IMU misalignment components, the offset and drift parameters of the GPS and IMU observations, and the coordinates of the ground objects.

The existing strategies for bundle adjustment of three-line imagery typically adopt a quaternion \[[@b15-sensors-14-08189],[@b24-sensors-14-08189]\] or Lagrange interpolation \[[@b13-sensors-14-08189],[@b18-sensors-14-08189]\] to represent the attitude parameters. There is a constraint condition among the four elements of a quaternion. Usually, there are two solutions to deal with the constraint. The first solution is keeping the four unknowns and one additional constraint during bundle adjustment, and the second solution is computing the fourth element with the other three elements calculated by bundle adjustment.

In this paper, bundle adjustment is realized based on the *ω-φ-κ* rotation angle system. The derivation of unknown coefficients related to translation elements is the same as that of the conventional method, whereas the derivation of unknown coefficients of IMU misalignment components (*ω~M~*, *φ~M~*, *κ~M~*) and attitude parameters (*ω~k~*, *φ~k~*, *κ~k~*), (*ω~k~*~+1~, *φ~k~*~+1~, *κ~k~*~+1~) should be obtained by linearizing the collinearity equations according to the *ω-φ-κ* rotation angle system.

Given an block area with m strips, n unknown ground points and 1 orientation images, the amount of unknowns of bundle adjustment is 3 + 3 + 12 × m + 3 × n + 6 × 1. The number of unknowns is extremely large during bundle adjustment, and thus the compression of normal equation and a fast matrix inversion algorithm are needed. EOPs of each scanning line can be interpolated by the corrected EOPs of orientation images.

2.4.. Resolving the Interpolation Problem of Rotation Angles
------------------------------------------------------------

The range of angles in the three-line sensor data is usually between (−*π*, *π*), therefore, the periodic issues of angle interpolation must be solved when rotation angle is used to represent the attitude of the sensor. The values of roll *ω* and pitch *φ* are definitely between (−*π*/4, *π*/4) in all cases since the optical axis of the image sensor is always pointing to the ground, but the yaw angle *k* is closely related to the flight direction of the plane. For instance, when the plane flies in the direction of south to north or north to south, *k* is usually around ±*π*. The unconformity of the sign of yaw angles usually leads to wrong interpolated values. Actually, it is impossible for the plane to make a sharp turn that causes a big variation of *k* up to 180 degrees during a small period of time (the time interval between two orientation images). Hence, a simple but effective strategy by making the two angles have the same sign is proposed to resolve the interpolation problem. Given $k_{k}^{\textit{IMU}}$, $k_{k + 1}^{\textit{IMU}}$ as the yaw angles of two orientation images at time *k*, and *k* + 1, the yaw angle $k_{t_{j}}^{\textit{IMU}}$ at time *t~j~* can be correctly interpolated by preprocessing of $k_{k + 1}^{\textit{IMU}}$ according to the following criteria: $$\left\{ \begin{matrix}
{k_{k + 1}^{\textit{IMU}} = k_{k + 1}^{\textit{IMU}} - 2\pi,} & {if} & {k_{k}^{\textit{IMU}} \leq - \pi/2} & \textit{and} & {k_{k + 1}^{\textit{IMU}} \geq \pi/2} \\
{k_{k + 1}^{\textit{IMU}} = k_{k + 1}^{\textit{IMU}} + 2\pi,} & f & {k_{k}^{\textit{IMU}} \geq \pi/2} & \textit{and} & {k_{k + 1}^{\textit{IMU}} \leq - \pi/2} \\
\end{matrix} \right.$$

The proposed mathematical model is simpler than that uses quaternion since the constraint condition among the four elements of a quaternion can be removed, which makes dealing with large dataset possible, although the computational complexity is increased. Moreover, this strategy is advantageous for the improvement of current bundle adjustment software that adopts rotation angles.

3.. Experiments and Analysis
============================

A bundle adjustment software program of airborne three-line scanner imagery named iBundle-AeroTLS^®^ based on the proposed models was developed. In order to verify the correctness and effectiveness of the two models, ADS40 images collected from the Taigu and Pingyao test areas in China and the Waldkirch test area in Switzerland were used for experiments. The focal length and physical pixel size of ADS40 camera are 62.7 mm and 0.0065 mm, respectively. The adjustment results of the three test areas have been reported in papers \[[@b16-sensors-14-08189],[@b17-sensors-14-08189]\] and are used for comparison in this paper. According to the characteristics of the ADS40 sensor \[[@b24-sensors-14-08189]\], the time interval of the orientation image model was set at eight seconds during bundle adjustment. Additionally, the literature indicates that only four control points at four corners of the block are needed to obtain satisfactory results. Thus, the four control point strategy was adopted for all three experiments.

The ADS40 images of the Taigu test area were captured in May 2007. The entire test area consists of 13 strips and covers an area of about 30 km^2^. The ground sampling distance (GSD) is about 0.06 m while the flying height is about 600 m. A total of 105 ground control points (GCPs) were measured by differential GPS. Four control points on the four corners were used in the bundle adjustment and the other 101 points were used as check points. A total of 96,330 pass points were automatically matched by the photogrammetric software DPGrid developed by Wuhan University \[[@b27-sensors-14-08189]\]. The bundle adjustment statistics for the two models are shown in [Table 1](#t1-sensors-14-08189){ref-type="table"}, where RMSE is the root mean squared error of control and check point residuals, Mean and Max are the average and maximum of the residuals. The standard errors of unit weight in image space are 0.0042 mm and 0.0035 mm, respectively.

The ADS40 images of the Pingyao test area were captured in October 2006. The entire test area consists of nine strips and covers an area of about 240 km^2^. The GSD is about 0.2 m while the flying height is about 2000 m. A total of 84 GCPs were measured by differential GPS. Four control points were also used in the bundle adjustment, and the other 80 points are used as check points. A total of 54,792 pass points were automatically matched by DPGrid. The bundle adjustment statistics for the two models are shown in [Table 2](#t2-sensors-14-08189){ref-type="table"}. The standard errors of unit weight in image space are 0.0035 mm and 0.0030 mm, respectively.

The ADS40 images of the Waldkirch test area with four east-west strips and two north-south strips were captured in May 2002. The ground coverage of this test area is about 80 km^2^. The GSD of the imagery is 0.2 m while the flying height is about 2000 m and the number of measured GCPs is 30, respectively. All of the automatically matched 25,140 conjugate points among the six strips were used in the adjustment. Four control points at the four corners were used to perform the bundle adjustment, and the other 26 points were used as check points. The bundle adjustment statistics for the two models are shown in [Table 3](#t3-sensors-14-08189){ref-type="table"}. The standard errors of unit weight in image space are 0.0038 mm and 0.0035 mm, respectively.

In the above three experiments, the differences of the estimated misalignments of GPS and IMU obtained by the two approaches are well below 0.02 m. However, the position and attitude elements of EOPs of the orientation image model have changed a few centimeters and several arc seconds respectively when compared with those of the systematic error compensation model. As shown in [Tables 1](#t1-sensors-14-08189){ref-type="table"}, [2](#t2-sensors-14-08189){ref-type="table"} and [3](#t3-sensors-14-08189){ref-type="table"}, the RMSE values of the check points in planimetry were smaller than 0.7 GSD, and the maximum residuals ranged from 0.7 GSD to 2.0 GSD after bundle adjustment with the systematic error compensation model in the three test areas. The RMSE values in the height direction were slightly better than 1.0 GSD, and the maximum residuals were about 1.3∼2.5 GSD. However, some residual systematic errors remained in both the planimetry and height. After bundle adjustment with the orientation image model, the systematic components of the check point residuals were significantly reduced, for example the absolute mean value of height residuals of check points in [Table 3](#t3-sensors-14-08189){ref-type="table"} decreases from 0.070 m to 0.021 m. The RMSEs in the height direction substantially decreased to smaller than 0.75 GSD in the three test areas. Moreover, the maximum residuals in both the horizontal and vertical directions were smaller than 2.0 GSD, and the remained residuals show random distribution.

The results of combining both the systematic error compensation model and orientation image model were also listed in the three tables. It was shown that about 5 to 10 percent improvements were achieved when compared with using the orientation image model only.

The available results of bundle adjustment for the three test areas in the literature \[[@b16-sensors-14-08189],[@b17-sensors-14-08189]\] were listed in [Table 4](#t4-sensors-14-08189){ref-type="table"}. By comparison among the results listed in the four tables, we can see that the accuracies of bundle adjustment with the systematic error compensation model for the three test areas were equivalent to those with the commercial software ORIMA. However, the accuracies of bundle adjustment with the orientation image model were better than those calculated by ORIMA. For example, the RMSEs of height residuals were 0.046 m and 0.148 m in [Tables 1](#t1-sensors-14-08189){ref-type="table"}--[2](#t2-sensors-14-08189){ref-type="table"} respectively, while they were 0.06 m and 0.19 m in [Table 4](#t4-sensors-14-08189){ref-type="table"}, which means that the results of our approach with the orientation image model are up to 20 percent higher than those of the literature. These satisfying results verify the correctness and feasibility of the proposed two adjustment models based on *ω-φ-κ* rotation angle system.

To fully demonstrate the advantages of using the *ω-φ-κ* system against the quaternions, a large project with 41 ADS40 strips that covered more than 7,000 km^2^ was used for experiments. The project was located in Henan Province (China). The 41 strips\' images with 0.45 m GSD were acquired by three flight missions. The amount of automatically matched conjugate points by DPGrid was more than 300,000 for this test dataset. There were 41 field measured ground points, in which 13 points were used as GCPs and the other 28 points as check points in the bundle adjustment as shown in [Figure 2](#f2-sensors-14-08189){ref-type="fig"}. The size of absolute orientation files (\*.odf), which contained the exterior orientation elements of each scanner line, was about 874 MB. There were totally 4,312 orientation images by using the orientation image model with 8 s intervals. The band width of unknowns was 2,196 after optimization. Consequently, the needed memory to store the coefficient matrix of the normal equation was about 434 MB (4,312×6×2,196×8/1,024/1,024 = 434 MB). Our proposed approach and developed software was capable to deal with the large dataset as a whole project with both systematic error compensation model and orientation image model and both gave stable and similar bundle adjustment results. The result of bundle adjustment with orientation image model was listed in [Table 5](#t5-sensors-14-08189){ref-type="table"}. The RMSE of height residuals was about 1.0 GSD, and the maximum residual in height was about 2.0 GSD. There was no stereo view hardware available while performing this experiment, so it was not possible to precisely measure the image points under stereo view environment. Although the height accuracy was comparatively lower than those of the other three test fields because the image coordinates of GCPs and check points were not precisely measured, it still qualified for the requirements of topographic mapping at scale 1:5,000 in China.

4.. Conclusions
===============

For airborne three-line scanner imagery, aerial triangulation is a prerequisite of photogrammetric product generation. Rotation angles were adopted in this paper to express the attitudes of the sensor, and mathematical models of systematic error compensation and orientation image were proposed for aerial triangulation. Using the rotation angles against quaternions has the advantages of eliminating the systematic errors effectively and dealing with large datasets.

The results of three test blocks demonstrate that the RMSE values of the check points are smaller than 1.0 GSD in both the planimetry and the height after bundle adjustment with the systematic error compensation model. However, there are still some systematic residuals for the check points since the systematic errors of the GPS/IMU observations could not be fully compensated. The accuracies of the check points in both the planimetry and the height were substantially improved by bundle adjustment with the orientation image model; the RMSE values in the height direction were refined in particular, from 1.0 GSD to 0.75 GSD. The systematic error of the check point residuals was also compensated, which demonstrates the reasonability and superiority of the orientation image model. Generally, 5 to 10 percent improvements were achieved by the combination of the two models when compared with using the orientation image model only. Moreover, dense conjugate points with very good quality automatically matched by DPGrid software also contribute to improve the accuracy of bundle adjustment.

This work was supported in part by the National Natural Science Foundation of China under Grant 41322010 and 41171292, the China Scholarship Council, and the Key Laboratory for Aerial Remote Sensing Technology of National Administration of Surverying, Mapping and Geoinformation under grant 2014b01. Heartfelt thanks are also given for the comments and contributions of anonymous reviewers and members of the editorial team.

The authors declare no conflict of interest.

![Example of one orientation parameter over time \[[@b24-sensors-14-08189]\].](sensors-14-08189f1){#f1-sensors-14-08189}

![Distribution of flight lines, GCPs and check points of an ADS40 project with 41 strips. ▪ means control point, ○ means check point.](sensors-14-08189f2){#f2-sensors-14-08189}

###### 

Error statistics of bundle adjustment of the Taigu test field (Unit: m).

  **Point number**   **Coordinates**   **Systematic error compensation model**   **Orientation image model**   **Systematic error compensation and orientation image model**                                               
  ------------------ ----------------- ----------------------------------------- ----------------------------- --------------------------------------------------------------- -------- -------- -------- ------- -------- --------
  GCPs 4             X                 0.057                                     0.019                         −0.073                                                          0.045    0.013    −0.061   0.042   0.013    −0.058
  Y                  0.032             0.002                                     0.054                         0.031                                                           0.005    0.055    0.031    0.005   0.056    
  Z                  0.050             0.010                                     −0.104                        0.044                                                           −0.012   −0.095   0.045    0.011   −0.091   
                                                                                                                                                                                                                           
  Check points 101   X                 0.045                                     0.021                         0.103                                                           0.043    0.015    0.085    0.041   0.013    0.085
  Y                  0.039             0.008                                     −0.115                        0.035                                                           0.006    −0.077   0.035    0.006   −0.072   
  Z                  0.058             −0.015                                    −0.158                        0.046                                                           0.012    0.115    0.043    0.012   0.104    

###### 

Error statistics of bundle adjustment of Pingyao test field (Unit: m).

  **Point number**   **Coordinates**   **Systematic error compensation model**   **Orientation image model**   **Systematic error compensation and orientation image model**                                              
  ------------------ ----------------- ----------------------------------------- ----------------------------- --------------------------------------------------------------- ------- -------- -------- ------- -------- --------
  GCPs 4             X                 0.105                                     0.018                         0.206                                                           0.093   0.012    0.233    0.091   0.011    0.206
  Y                  0.135             −0.010                                    0.286                         0.114                                                           0.020   0.227    0.110    0.016   0.201    
  Z                  0.164             0.040                                     −0.323                        0.135                                                           0.025   0.272    0.123    0.021   0.237    
                                                                                                                                                                                                                          
  Check points 80    X                 0.129                                     0.036                         0.328                                                           0.105   −0.015   −0.275   0.100   −0.015   −0.275
  Y                  0.148             −0.025                                    −0.332                        0.108                                                           0.018   0.282    0.098    0.018   0.252    
  Z                  0.185             0.048                                     0.487                         0.148                                                           0.022   0.276    0.143    0.021   0.271    

###### 

Error statistics of bundle adjustment of Waldkirch test field (Unit: m).

  **Point number**   **Coordinates**   **Systematic error compensation model**   **Orientation image model**   **Systematic error compensation and orientation image model**                                               
  ------------------ ----------------- ----------------------------------------- ----------------------------- --------------------------------------------------------------- -------- -------- ------- -------- -------- -------
  GCPs 4             X                 0.124                                     0.036                         0.241                                                           0.101    −0.012   0.215   0.096    −0.012   0.203
  Y                  0.113             0.051                                     −0.213                        0.107                                                           −0.031   −0.204   0.112   −0.022   −0.182   
  Z                  0.142             0.044                                     0.223                         0.125                                                           0.021    0.215    0.121   0.014    0.202    
                                                                                                                                                                                                                           
  Check points 26    X                 0.087                                     0.048                         0.184                                                           0.087    0.037    0.185   0.085    0.032    0.159
  Y                  0.088             0.045                                     0.216                         0.078                                                           0.018    0.217    0.076   0.015    0.210    
  Z                  0.162             −0.070                                    −0.279                        0.149                                                           −0.021   −0.275   0.145   −0.015   −0.253   

###### 

Adjustment results from published reference papers \[[@b16-sensors-14-08189],[@b17-sensors-14-08189]\] (Unit: m).

  **Test field**   **Point number**          **RMSE**   **Maximum residual**                         
  ---------------- ------------------------- ---------- ---------------------- ------- ------ ------ ------
  taigu            4 GCPs 101 Check points   0.07       0.05                   0.06    0.12   0.10   0.13
  pingyao          4 GCPs 84 Check points    0.15       0.19                   0.19    0.45   0.43   0.45
  waldkirch        4 GCPs 26 Check points    0.174      0.174                  0.304   N/A    N/A    N/A

###### 

Error statistics of bundle adjustment of Henan province test field (Unit: m).

  **Number of points**   **RMSE**   **Mean residual**   **Maximum residual**                                            
  ---------------------- ---------- ------------------- ---------------------- ------- ------- ------- -------- ------- --------
  13 GCPs                0.450      0.520               0.464                  0.043   0.034   0.065   −1.126   1.052   −0.857
  28 Check points        0.296      0.476               0.408                  0.012   0.024   0.106   0.734    1.006   0.924

[^1]: **Author Contributions** Yongjun Zhang developed the methodologies and programs, and conducted the main computations. Maoteng Zheng was responsible for data preprocessing, design and implementation of experiments, and part of editing and revision works. Xu Huang and Jinxin Xiong were responsible for the data acquisition and part of experiments and editing works.
