VSOP87 Theory Equations Summary Part 1

Rectangular Coordinates (X,Y,Z)

All the VSOP87 series do essentially the same thing.  They compute the coordinates of the planets for a given moment.  The main difference is the type of coordinates in which the planetary positions are expressed.  Depending on the application, one type of coordinate 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-coordinates or series D is used to compute the corresponding equivalent heliocentric spherical LBR-coordinates (see   Part 2  ).   They are different types of coordinates for expressing the same position in space.

In the following VSOP87 equations, we will encounter the following variables:

JD = Julian Day number corresponding to a given date and time (TT)
t = Julian millennia, corresponding to JD 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 JD value and then compute the corresponding (t) value from it.  This is the actual numerical value used as the time variable in the equations.

 Julian millennia from J2000.0
Eq. 1


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 set of A,B,C values.  These values are used by the code generator tool to generate the numerical terms in the output source code.

A = Amplitude
B = Phase (not to be confused with the spherical B-coordinate)
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 coordinates - rectangular and spherical coordinates.  These are the coordinates computed by the VSOP87 sub-series function modules generated by the Multi-Language VSOP87 Source Code Generator Tool.

XYZ = Heliocentric Rectangular Ecliptical Coordinates in AU
R = Heliocentric radius vector (distance) in AU


1 AU (Astronomical Unit) = 149597870691 km 30 (NASA/JPL) = 92955807.267 mi 0.019

Speed of Light = 299792458 m/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 coordinates used.

In the following summations, the A,B,C values we apply depends on the series we are using and are found in 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 coordinates for any given moment over spans of thousands of years can be generated by the VSOP87 Source Code Generator tool.

The six separate partial summations returned by the modules for the respective sub-series are in turn summed to obtain the final, complete rectangular XYZ-coordinates of the planet at the given time.

 Full X series summation
Eq. 2

 Full Y series summation
Eq. 3

 Full Z series summation
Eq. 4

For each order (n), the VSOP87 (Xn  Yn  Zn) sub-series summations may be expressed as

 Xn sub-series summation
Eq. 5

 Yn sub-series summation
Eq. 6

 Zn sub-series summation
Eq. 7

Mathematically, the complete VSOP87 solutions in terms of rectangular variables can be expressed by the following double summations.

 Full X double summations
Eq. 8 = Eq. 2

 Full Y double summations
Eq. 9 = Eq. 3

 Full Z double summations
Eq. 10 = Eq. 4

The equations 1, 2, 3 and 4 can be written in terms of the following pseudocode with each of the functions representing code generated by the VSOP87 Source Code Generator.

Using the VSOP87 Source Code Generator Tool to automatically write all the ordered sub-functions, the programmer then only needs to write the simple code to sum the six sub-series functions to obtain each respective coordinate.

Algorithm For Complete VSOP87 Rectangular (X,Y,Z) Coordinates of a Planet






Example For The Planet Venus

The following block of pseudocode equates to the double summations defined above.  It can easily be translated into the programming code of several languages.

Algorithm For Complete VSOP87 Rectangular (X,Y,Z) Coordinates of Venus






© Jay Tanner - PHP Science Labs - 2011
FORTRAN is for dinos