What is the VSOP87 theory?
The VSOP87 theory was originally published in French by Pierre Bretagnon and Gerard Francou as Variations Séculaires des Orbites Planétaires. Solutions de VSOP87 (Secular Variations of the Planetary Orbits. VSOP87 Solutions). The number '87' refers to the year 1987, in which the paper was authored, improving upon an earlier version of the theory called VSOP82.
In the simplest terms, the VSOP87 theory can be described as a long-term mathematical model of the solar system, specifically, the orbits of the major planets from Mercury to Neptune.
It is a useful and advanced astronomy tool that allows us to compute, with reasonable accuracy, where the planets are now, have been and are going to be in their orbits at any given moment over spans of thousands of years.
For students of astronomy and programming who want to create their own custom software to compute planetary positions similar to those published in the astronomical almanacs, implementing the VSOP87 theory is one of the simplest ways to go about it.
A copy of the original VSOP87 theory paper, published in the journal Astronomy and Astrophysics, 1988, vol. 202, p309-p315, is available on this site for review. It explains the mathematical and technical foundations of the theory in its graphic, full frontal, mathematical horror.
The VSOP87 theory is very easy to program and there is a VSOP87 source code generator available on this web site that can generate the code for the main VSOP87 core functions in five programming languages, the hardest part of work, saving the programmer hours of labor over the old, error-prone transcription method.
The principle advantages of the theory are its accuracy with respect to the ease of programming the theory and the compactness of the applied data versus its lengthy validity span.
How Do We Use The VSOP87 Theory?
- We apply it by first creating the primary source code for the programmed functions we will need to compute the heliocentric coordinates (like X,Y,Z) and then building an ephemeris program around those functions.
To compute the apparent positions of the planets as viewed from Earth, we first need to know where the planets and the Earth are in their orbits at the same moment. This is the first and most laborious step in computing the apparent geocentric positions of the planets.
- The programming code to do the bulk of this labor can be created by the Multi-Language VSOP87 Source Code Generator Tool available here.
The Multi-Language VSOP87 Source Code Generator Tool
- The purpose of the Multi-Language VSOP87 Source Code Generator Tool is to write the source code, in any of several programming languages, required to compute the VSOP87 heliocentric coordinates of the planets.
- Once written, the source code can then be used as the foundation of a long-term planetary ephemeris. Computing these heliocentric coordinates is the most difficult part of the coding labor.
Some early versions of the theory as published in some popular books used a trimmed down version of the theory. This was necessary, since the programmer had to manually copy large data tables from the book into the program, a process very prone to transcription errors. The full-precision theory has far too many thousands of numerical terms to copy them all manually via keyboard. It seems a shame to have a modern 21st century computer limited to 1990s accuracy. To enable the use of the full-precision theory, these web pages were created to help build generic VSOP87-related program source code in multiple programming languages. This digital, hard-coded, plain-text format makes the data easy to manipulate by simple copy/paste operations.
Since the generated hard-coded functions consist of multiple thousands of computational terms, the code generator tool was designed to do all of the hard work of writing it. Otherwise, a single wrong digit out of millions could be fatal until found and corrected.
The source data used by the VSOP87 Source Code Generator are the original FORTRAN data files downloaded several years ago from an FTP server located at the Bureau des Longitudes, in France.
Output Programming Languages Currently Supported
- CPP / C++
Jay Tanner - PHP Science Labs - 2022