VSOP87 Theory Equations Summary Part 1
Rectangular Coordinates (X,Y,Z)

All the VSOP87 series do essentially the same thing.  They compute the co-ordinates of the planets for a given moment.  The main difference is the type of co-ordinates in which the planetary positions are expressed.  Depending on the application, one type of co-ordinate system may be more or less suitable or convenient than another for a particular purpose, so several VSOP87 series have been developed for this reason.

For computing the apparent geocentric planetary positions, like those we generally see tabulated in the standard astronomical almanacs for the ecliptic and equinox of the date, series C or D is generally the most convenient starting point for this purpose.  VSOP87 series C is used to compute the heliocentric rectangular XYZ-co-ordinates or series D is used to compute the corresponding equivalent heliocentric spherical LBR-co-ordinates (see Part 2).   They are different types of co-ordinates for expressing the same position in space.

#### In The Following VSOP87 Equations, We Will Apply The Following Variables

${JDTT}$ = Julian Day number corresponding to a given date and time (TT)
${t}$ = Julian millennia, corresponding to JDTT and reckoned from J2000.0

When we want to compute the position of a planet for a given date and time, we first compute the JDTT value corresponding to the TT and then compute the corresponding (${t}$) value from it.  This will be the actual value used as the time variable in the equations below.

$$t = \frac{JDTT - 2451545}{365250}$$
The ${A,B,C}$ values in each series term in the equations are taken from the original FORTRAN program data tables.  There may be thousands of terms in a sub-series, each with its own table of unique ${A,B,C}$ values.  These values are used by the code generator tool to formulate the hard-coded numerical terms in the output source code.

${A}$ = Amplitude
${B}$ = Phase (not to be confused with the spherical B-co-ordinate)
${C}$ = Frequency

Indices used in the summation equations:
${n}$ = Sub-series order from 0   to   5
${j}$ = Index of term within sub-series (from 1  to  ${k}$)
${k}$ = Total number of terms in sub-series (can be from 1 to multiple thousands)

There are two different types of VSOP87 co-ordinates - rectangular and spherical co-ordinates.  These are the co-ordinates computed by the VSOP87 sub-series function modules generated by the Multi-Language VSOP87 Source Code Generator Tool.

${X}$${Y}$${Z}$ = Heliocentric Rectangular Coordinates in AU

${R}$ = Heliocentric radius vector (distance) in AU

1 AU (Astronomical Unit) = 149597870.691 km ±0.030 (NASA/JPL) = 92955807.267 mi

Speed of Light = 299792.458 km/s (NIST) = 186282.397 mi/s

Computing the Planetary Rectangular XYZ-Coordinates in AUs

VSOP87 Series A = Heliocentric ecliptical rectangular XYZ-coordinates - Equinox J2000.0
VSOP87 Series C = Heliocentric ecliptical rectangular XYZ-coordinates - Equinox of Date
VSOP87 Series E = Barycentric rectangular XYZ-coordinates - Equinox J2000.0

The VSOP87 A and C series correspond to the B and D series.  The only difference is the type of co-ordinates used.

In the following summations, the ${A}$,${B}$,${C}$ values we apply depends on the series we are using and were taken from the original FORTRAN data files for the corresponding sub-series.

There are six orders of XYZ sub-series summations (${n}$=0  to  ${n}$=5).  The above sub-series summations are computed separately for each order (${n}$=0  to  ${n}$=5) for each of the ${k}$ terms of the given sub-series.  The essential source code to compute the numerical values of these co-ordinates for any given moment over spans of thousands of years can be generated by the VSOP87 Source Code Generator tool.

The six separate sub-series summations returned by the functions for the respective sub-series are then summed to obtain the final, complete rectangular XYZ-co-ordinates of the planet at the given time.
$$X = \sum_{i=0}^5 x_{i} = {x_{0}+x_{1}+x_{2}+x_{3}+x_{4}+x_{5}}$$ $$Y = \sum_{i=0}^5 y_{i} = {y_{0}+y_{1}+y_{2}+y_{3}+y_{4}+y_{5}}$$ $$Z = \sum_{i=0}^5 z_{i} = {z_{0}+z_{1}+z_{2}+z_{3}+z_{4}+z_{5}}$$

For each term of order (${n}$), from 0 to 5, the VSOP87 ($x_{n} y_{n} z_{n}$) sub-series summations
may be expressed as:
$$x_{n} = \left(\sum_{j=1}^k ~~A_{X,n,j} \cdot {cos(B_{X,n,j} ~~+ t \cdot C_{X,n,j})}\right) \cdot t^n$$ $$y_{n} = \left(\sum_{j=1}^k ~~A_{Y,n,j} \cdot {cos(B_{Y,n,j} ~~+ t \cdot C_{Y,n,j})}\right) \cdot t^n$$ $$z_{n} = \left(\sum_{j=1}^k ~~A_{Z,n,j} \cdot {cos(B_{Z,n,j} ~~+ t \cdot C_{Z,n,j})}\right) \cdot t^n$$

Based on the above definitions, the complete VSOP87 solutions in terms of rectangular XYZ-coordinates may be expressed by the following set of general equations.

$$t = \frac{JDTT - 2451545}{365250}$$ $$X = \sum_{n=0}^5\left(\left(\sum_{j=1}^k ~~A_{X,n,j} \cdot {cos(B_{X,n,j} ~~+ t \cdot C_{X,n,j})}\right) \cdot t^n\right)$$ $$Y = \sum_{n=0}^5\left(\left(\sum_{j=1}^k ~~A_{Y,n,j} \cdot {cos(B_{Y,n,j} ~~+ t \cdot C_{Y,n,j})}\right) \cdot t^n\right)$$ $$Z = \sum_{n=0}^5\left(\left(\sum_{j=1}^k ~~A_{Z,n,j} \cdot {cos(B_{Z,n,j} ~~+ t \cdot C_{Z,n,j})}\right) \cdot t^n\right)$$ $$R ~=~ \sqrt{X^2 + Y^2 + Z^2}$$

As an example, for the planet Venus, the complete set of general equations above could be written in the following PHP code with each of the functions representing code generated by the VSOP87 Source Code Generator tool, designed to evaluate the ordered individual sub-series summations.

These are the raw, instantaneous, geometric, heliocentric co-ordinates from which the apparent geocentric ecliptical and equatorial co-ordinates and distance are subsequently derived.  By geometric co-ordinates we mean that no corrections for the location of the observer have yet been applied, such as for parallax, light-time, aberration, etc.  This is the actual location of the planet in space, not its apparent location to the eye.

In practice, the true distance $(R)$ at the given time needs no corrections because we are referring to its true distance, not its apparent distance at the time.  Only the derived longitude and latitude co-ordinates will later need small corrections to obtain the true or local apparent positions.

Computing the heliocentric co-ordinates for both the earth and the planet at the same moment is the first and most laborious step in computing the apparent position of a planet.  The rectangular $XYZ$ co-ordinates and $R$ are in AUs.