Ephemeris trail
Build VSOP87
Truncating VSOP87
Testing VSOP87
Class organization
Reference frames
Handling frames
Handling precision
Handling time
Putting all together
Swiss Ephemeris
Truncating VSOP87
Step 1     Step 2     Selecting the terms     Questions
The purpose of this page is to find a way to remove terms of VSOP87 in order to have a given geocentric maximal error.
For this, we'll first consider that the position of Earth is considered as exactly known ; the incertitude on the Earth position will then be taken into account.

So we want to compute the position of the planets, and have a certain accuracy. We call α Max the maximal angular error we tolerate on the position of a planet seen from Earth. The purpose is to find the number of terms to keep to get a precision of αMax.

We introduce an intermediary variable : errMax, defined as the error on heliocentric cartesian coordinates (given by VSOP87A). The angular geocentric error αMax will be generated by heliocentric error errMax.
Our purpose will be to find a relation between errMax, and αMax, and use it to filter the terms of VSOP87.

Step 1

In this first step, we will suppose that the position of the Earth is exactly known, and try to find a relation between errMax and αMax.

Let's see the extreme cases we can meet :
S : position of the Sun
E : position of the Earth
P : real position of the planet
P' : position of the planet affected of errMax
Here, d1 and d2 represent the value of errMax in two extreme configurations.
In case 1, the distance Earth - planet is minimal ; in case 2, it is maximal.
In both cases we have : tg(αMax) = d / EP(formula 1)
then : d = EP * tg(αMax)
And EP in case 2 > EP in case 1 ; this implies that : d2 > d1.

The same αMax will be generated by a smaller errMax on the position in case 1.
We will then consider case 1, where the distance between the Earth and the planet is minimal, because this is the worst case.

If we take into account the fact that the orbits are elliptic, let's see this situation for an outer planet :
(I didn't check if it was necessary to consider eccentricities here).

If we note :
  • aE and aP the semi major axis of the Earth and the planet ;
  • eE and eP the eccentricities of the Earth and the planet :

  • We have :
  • EP = SP - SE
  • SP = aP(1 - eP)
  • SE = aE(1 + eE)
  • Then : EP = aP(1 - eP) - aE(1 +eE)(formula 2.1)
    A similar drawing for an inner planet would lead to : EP = aE(1 - eE) - aP(1 +eP)(formula 2.2)
    For the Earth, the formula is : ES = aE(1 - eE)(formula 2.3)

    Formula 1 and formulae 2 permit to calculate d from αMax.

    But d = PP', distance between the real position of the planet and the position affected by the error.
    If we note : , we have : .
    If we tolerate the same error on X, Y or Z, we have : ΔX = ΔY = ΔZ = errMax.
    Then :

    As we have : d = EP * tg(αMax), this leads to :
    (formula 3)

    errMax can then be calculated using formulae 2 and 3 :
    (formula 4.1), for an outer planet.

    (formula 4.2), for an inner planet.

    (formula 4.3), for the Earth.

  • In formulae 4, errMax is expressed in the same unit as aE and aP.
  • αMax is in radians.
  • Step 2

    We will now take into account the incertitude on the position of the Earth, which poses a supplementary problem. Let's see the situation for an outer planet :

    Here we introduce a new angle : α1, wich indicates the incertitude on the Earth's position. α1 is also the maximal angular error on the position of the Sun seen from Earth.
  • We call : α0 the maximal angular error on the position of the planet seen from Earth.
  • α2 is defined by the drawing.

  • With the notations of step 1, we have :
  • α0 = αMax(Planet)
  • α1 = αMax(Sun)

  • On figure 3, we see that, in the worst case, the incertitude of α1 on the position of the Earth leads to an incertitude of α0 + α2 on the position of the planet as seen from Earth.

    We call : α = α0 + α2. α is the total incertitude on the position of the planet.

    We now calculate α2 :

    Then : (formula 5)

    A similar drawing for an inner planet leads to the same result.

    The worst case (α maximal) happens when ES is maximal and EP is minimal.
    So in formula 5, we should take ES = aE(1 - eE) and EP from formula 2.1 or 2.2.
    (Notice that we'll never have at the same time ES maximal and EP minimal).

    Selection of terms

    So we are able to find the maximal geocentric angular error (α) from αO and α1.

    We now have to choose α1 (for the Earth) and α0 for each planet such as :
  • α < αMax for each planet, and
  • α1 < αMax (for the Earth).

  • Taking αMax = 1 arc second, we choosed α1 and the α0s by successive attempts.
    The method BuildVSOP87.calcAlphaMax() was written for this purpose.

    This leads to the following result :
    (Table 1)

    Once we have these values, we can select the terms. We have :

    As , the contribution of each term to the sum is lower than .

    The condition to retain a term is then

    In this formula, errMax is expressed with formulae 4, in which αMax are the value of α in table 1.

    Choice of TMax : as T varies, we must know the maximal values it can take. In VSOP87.doc in BDL FTP, we can read that the "intervals for which 1 arcsecond of precision is guaranteed". Anyway, I took these intervals as intervals of validity, and found TMax :
    JUP SAT2
    URA NEP6


    As you'll see in the page Testing VSOP, this method does not give the expected results.
    I listed here the points that could lead to this situation. Maybe you'll have better ideas.
  • The eccentricity varies with time. So in figure 2 and after, should we take this into account?
  • Is it right to admit the same error for X, Y, and Z? As planets vary much more in X and Y than in Z, maybe we should consider that norm(vector(PP')) = DeltaX2 + DeltaY2.
  • in figure 3, P and P' represent the planet seen from Earth. I supposed I could say that P and P' represent the planet as seen from E0 and E1. In fact, they are slightly different. There should be 4 points representing the planet. But à priori, the difference is very small, so I neglected that.
  • The choice of TMax at the end is not really coherent.