Satellite Attitude

To obtain the highest accuracy from precise point positioning (PPP) solutions, consistency between network and user algorithms must be ensured. An error source prone to mismodelling is satellite attitude, especially during eclipse periods. This blog post explains how to use data from an attitude exchange format being tested within the IGS.


Satellite attitude is defined by a satellite-fixed coordinate system. The IGS defines this body-fixed frame as (Montenbruck et al 2015):

  • The +z-axis is the principal body axis closest to the antenna boresight direction (i.e., the direction of the maximum beam intensity)
  • The y-axis is parallel to the rotation axis of the solar panels.
  • The +x-direction is chosen such that the +x-panel is permanently sunlit during nominal yaw-steering, while the -x-panel remains dark at all times

To maximize sun exposure, satellites rotate to properly align their solar panels. However, during eclipse periods, when the satellite is in the Earth’s shadow and can't "see" the sun, different types of satellites will adopt different “coping” behaviors. This is when mismodelling is most likely to occur. For PPP users, knowing the correct satellite attitude is especially important for two reasons:

  1. It allows computation of the satellite phase center position which will affect the computed range. This impact is more pronounced for satellites with large horizontal eccentricities between their phase center and center of mass (e.g., GLONASS)
  2. A mismodelled satellite rotation causes carrier-phase wind-up errors.

Figure 1, from Loyer et al (2017), shows an example of PPP position errors caused by inconsistent satellite attitude modelling. The solution for station ALGO was computed using NRCan's PPP software while the orbit and clock products were generated by CLS (GRG). The bottom panel shows position errors using consistent attitude modelling. The top panel shows position differences with respect to the consistent solution when using an internal attitude modelling, while the middle panel shows position differences when ignoring eclipsing satellites. This example demonstrates that cm-level errors can be caused by inconsistent attitude modelling.

Figure 1: PPP position differences using internal attitude modelling (top), and no attitude modelling (middle). Differences are with respect to the solution in the bottom panel with consistent attitude modelling. From Loyer et al (2017).


One means of reducing positioning errors is to ensure consistency between the network and user solutions. For this reason, the IGS is currently testing the exchange of satellite attitude information in the ORBEX format. Satellite attitude is provided in the form of quaternions, such as:

Figure 2: Excerpt from an attitude file produced by Denis Laurichesse and Alexis Blot (CNES). See this blog post on “Snapshot PPP” for more details


The format is pretty straightforward, with the attitude (ATT) tag in the first column, the satellite PRN in the second column, and the four quaternion elements (q0, q1, q2, q3).


From these values, the unit vectors defining the satellite-fixed system can be defined as:

For anyone interested in more details on this derivation, please refer to this document.


The standard approach to modelling satellite attitude in PPP consists of computing the nominal attitude and implementing known satellite maneuvers during eclipse periods to rotate the body-fixed system along the z-axis. This complex implementation should not be required soon since users will only need to apply the quaternions given by the analysis center to obtain the same attitude as the network solution.


While this is yet another input file required for PPP processing, it is a step forward to obtaining highly accurate positions. Let’s just hope that IGS analysis centers will be onboard this initiative in a timely fashion!



Loyer S, Banville S, Perosanz F, Mercier F (2017) Disseminating GNSS satellite attitude for improved clock correction consistency. Poster presented at the 2017 IGS Workshop, Paris (link)


Montenbruck O, Schmid R, Mercier F, Steigenberger P, Noll C, Fatkulin R, Kogure S, Ganeshan A (2015) GNSS satellite geometry and attitude models. Advances in Space Research 56(6):1015-1029, DOI 10.1016/j.asr.2015.06.019

Write a comment

Comments: 4
  • #1

    Bauer (Saturday, 16 November 2019 17:37)

    Hi Banville,
    thanks for your sharing. Does this mean that only the “consistency between service and user” of satellite attitude is important? How about "its correctness"?

  • #2

    Simon Banville (Saturday, 16 November 2019 18:46)

    @Bauer You are absolutely right that correctness is also important. The first step we took was to define a format to exchange satellite attitude information. With this format, we can now ensure consistency between network and user implementations.

    The next step will be to perform reverse precise point positioning, or a similar technique, to actually determine what the correct attitude of the satellite was. The attitude exchange format will then allow storing and sharing this information.

  • #3

    Bauer (Monday, 18 November 2019 10:49)

    @Simon Banville Thanks for your reply. Then I am wondering which model you are using in service end processing. Is it also the public program from Dr. Jan Kouba?

  • #4

    Simon Banville (Monday, 18 November 2019 18:33)

    @Bauer The NRCan PPP still uses the Kouba subroutines made available through the IGS. However, when a satellite is in eclipse, it is excluded from the solution since it is not known how the attitude was modelled on the network side.