The SPOT Orbital Model

Table of contents:
Example Ephemeris and units
Defining Equations
Coordinate System
Back to PSC home page

Note the equations are GIF images displayed at ~1/4 resolution, so they should print better than they look on a web browser. Do this, or view the images at full scale, for accuracy.


The "SPOT model" is an analytic (General Perturbation) model of the motion of a satellite, intended for use over short periods of time (day or two) with near circular low-Earth orbits. It was originally developed for use with the SPOT satellite (Satellite Pour l'Observation de la Terre) as a fast approximation for on-board use, etc.

Unlike the 'classic' GP models, where the ephemeris consist of the epoch and the Keplarian set (plus drag terms sometimes), the SPOT model has the epoch and 13 fitted parameters (6 essentially classical and 7 perturbation terms) that allow higher short-term accuracy.

It was adopted for the METOP series of satellites as offering higher accuracy than some more general analytic models (e.g. SGP4, Brower-Lyddane) but without the huge CPU load of a numerical integrator (Special Perturbation) model. The study concluded the error for a 12 hours period was of the order of 0.172km RMS, and METOP carries sets of elements for 0-12h, 12-24h and 24-36h periods.
[top of page]

Example Ephemeris

When using the data from METOP, the main problem is the unannounced change of units, for example, the Eumetsat document EPS/GGS/TN/980021 Issue 2, Rev. 0, 03 October 2003 "Metop Administration Message Technical Note" is wrong, it gives the equations in Annex 3 and in this case it is clearly stated that times is in seconds. Also the format of the equations imply radian units (e.g. use of P11 parameter in conjunction with a per-day periodicity). Furthermore, the cited document RD-1 EPS/Metop - Technical Note on Orbit Prediction, GMV-EPSFDS-TN-002 clearly states the units to be radians and seconds (Table 4-8, page 40).

We now know that the units of the message are degrees and days!
The 13 fitted parameters for METOP-A at Tue Feb 06 01:00:00.000 2007 are:


Example Value


Approximate physical interpretation




Semi-major axis




Eccentricity and cos(argument of perigee) at epoch.




Eccentricity and sin(argument of perigee) at epoch.








Right Ascension of Ascending Node at epoch.




Mean argument of latitude at epoch.




Rate of change of RAAN, should average around 360/365.25 =  0.9856 deg/day for a sun-synchronous orbit.




Rate of change of argument of latitude (i.e. mean motion)




Fudge factor based on zonal gravitational potential term (see below).




'Amplitude' of J2,2 tesseral gravity perturbation.




'Phase' of J2,2 tesseral gravity perturbation.




Drag term (quadratic in mean motion).




Similar to the rate of change of argument of perigee (in radian/day), but also of eccentricity and really just a solved-for fudge factor.

1) METOP is intended to maintain a 'frozen' orbit when operational, with the argument of perigee staying around the 90° value.

2) The osculating value of argument of perigee changes significantly due to perturbations on low eccentricity orbits, this is different to the mean perigee.

3) The P9 fudge factor is approximately given by:
 Equation for P9 factor
Where a is the semi-major axis, aE is the Earth radius, and J2 the zonal gravity constant of 1.08263e-003 (in the above example, this equation yields 0.0008506078 rather than the solved-for value of 0.000849)

4) Unlike the NOAA satellites, it is expected that METOP will perform occasional orbit correction manoeuvres, thus rendering prior ephemeris invalid.

[top of page]

The SPOT Model's Equations

The model itself is defined by the following equations, working with t (time since epoch), first compute the 'mean' mean argument latitude (without the short term gravitational perturbations) from:

Polynomial in time for mean argument of latitude
Then compute the following osculating parameters:

Defining equations for model

The constant Td is one day in the chosen units of time for a sun-synchronous orbit, so in this case it is 1.0   Basically this is chosen to match the Earth's twice per day J2,2 rotation with respect to the orbital plane of the satellite.

The resulting osculating terms are ak = semi major axis, ek = eccentricity, ik = inclination, Ωk = right ascension of ascending node, ωk = argument of perigee, αk = mean argument of latitude (αk = ωk + Mk where Mk is the mean anomaly).

In general, all of the 'degrees' terms (4-8, 10-12) in the elements are converted to radian units before the calculations are preformed, and the resulting osculating elements are then also in radians.

Next the traditional elements are extracted by:
Equations for eccentricity, argument of perigee and mean
Typically the atan2() function is used to resolve the quadrant of ωk and some error checking for absurd values of ek is a sensible thing to do. By this point the 'classical' set of osculating elements are available and the normal methods of transforming this to XYZ vectors can be used (e.g. as used by the Brower-Lyddane code).

In the Dundee case, we specifically wanted to make a set of osculating elements that resemble the intermediate stage of the SGP4 model, prior to conversion to XYZ format. To do this we solve the equation of Kepler to obtain the eccentric anomaly E, from the implicit relationship:
Kepler's Equation

We do this by Newton-Raphson iteration. Given the typically small values for eccentricity, this will converge rapidly and without problems. Alternatively, it may be sufficient to use some of the approximations to the solution as they are often good enough for small eccentricities.

Then the true anomaly f, true argument of latitude uk (in SGP4 code, or θ in Dundee code), and instantaneous radius rk are calculated from:
Equation for true anomaly, argument of latitude and

Finally leading to the terms for velocity computation (the radial velocity and along-track velocity components):
Equations for velocity terms

Where GM is the Earth's gravitational constant of 398600.4418 km3s-2 (or another value depending on the chosen units for position and velocity). The above equations for velocity do not include any short-term perturbations from J2 (which SGP4 has).
[top of page]

Coordinate System

This osculating set is transformed in to XYZ Cartesian position and velocity vectors in the same way as SGP4. However, the inertial coordinate frame used for the SPOT model/elements is the J2000 one, and not the TEME one of the SGP4/TLE set. Thus for comparison and use of the SPOT model's vectors, it is necessary to perform the coordinate rotation for precession (from J2000 to 'Mean of Day', effect is around 9/12.5km RMS/peak in the above example) and nutation (from 'Mean of Day' to 'True of Day', effect is around 0.3/0.4km), finally converting to either TEME (for direct comparison with SGP4/TLE, around 0.11/0.16km) or to Pseudo-Earth Fixed for ground based use by using the Sidereal Time GAST rotation (rather than the GMST rotation used for TEME).
The full conversion with Polar Motion to the International Terrestrial Reference Frame may not be necessary, but for maximum accuracy (~0.02km RMS) it should be done. However, remember the SPOT model is only around 0.172km RMS accuracy!
In matrix terms:


Each of these matrices is covered in most text books, for example, see pages 219-228 of "Fundamentals of Astrodynamics and Applications", 2nd Edition, David A. Vallado, ISBN 1-881883-12-4
[top of page]

(c) Paul Crawford, 20 Feb 2007. All rights reserved. No warranty, etc.