Don Cross 2bfef280fd Starting work on using a gravitational simulator to calculate Pluto's movement.
Added PlutoStateTable to C code generator.
This is a table of known correct [tt, pos, vel] tuples for Pluto,
calculated using TOP2013. These serve as seed points from which
to integrate Pluto's motion.

Added PlutoCheck() function to ctest, just to get going.
I have a lot more peformance work to do in order to make
the full blown unit test to finish in a reasonable amount of
time.

Changes in astronomy.c:

Added some generic "terse vector" support.
A terse vector contains 3 components and nothing else.
This is handy for implementing compact formulas for various
vector expressions.

Created enhanced VSOP87 calculations that provide
velocity vectors as well as position vectors for
the Sun, Jupiter, Saturn, Uranus, and Neptune.
These are the "major" bodies that have significant
effects on the motion of Pluto. Also used to convert
heliocentric coordinates to barycentric coordinates.

Implemented first version of the integrator logic.
It is not accurate enough yet, and it is far too slow.
I need to debug the accuracy first, then I will work on
making it faster.
2020-08-17 17:33:03 -04:00
2020-08-10 11:37:34 -04:00

Astronomy Engine Build Status npm package

Supported Programming Languages

C
C
C#
C#
Browser
JavaScript
Node.js
Node.js
Python
Python
Examples Examples Examples Examples Examples
Documentation Documentation Documentation Documentation Documentation

Overview

Astronomy Engine is a suite of open source libraries for calculating positions of the Sun, Moon, and planets, and for predicting interesting events like oppositions, conjunctions, rise and set times, lunar phases, eclipses, transits, and more.

It supports several popular programming langauges with a consistent API. Function and type names are uniform across all the supported languages.

Astronomy Engine is designed to be small, fast, and accurate to within ±1 arcminute. It is based on the authoritative and well-tested models VSOP87 and NOVAS C 3.1.

These libraries are rigorously unit-tested against NOVAS, JPL Horizons, and other reliable sources of ephemeris data. Calculations are also verified to be identical among all the supported programming languages.

Features

  • Provides calculations for the Sun, Moon, Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune, and Pluto.

  • Calculates all supported objects for any calendar date and time for millennia before or after the present.

  • Provides heliocentric and geocentric Cartesian vectors of all the above bodies.

  • Determines apparent horizon-based positions for an observer anywhere on the Earth, given that observer's latitude, longitude, and elevation in meters. Optionally corrects for atmospheric refraction.

  • Calculates rise, set, and culmination times of Sun, Moon, and planets.

  • Finds date and time of Moon phases: new, first quarter, full, third quarter (or anywhere in between as expressed in degrees of ecliptic longitude).

  • Predicts lunar and solar eclipses.

  • Predicts transits of Mercury and Venus.

  • Predicts lunar apogee and perigee dates, times, and distances.

  • Predicts date and time of equinoxes and solstices for a given calendar year.

  • Determines apparent visual magnitudes of all the supported celestial bodies.

  • Predicts dates of planetary conjunctions, oppositions, and apsides.

  • Predicts dates of Venus' peak visual magnitude.

  • Predicts dates of maximum elongation for Mercury and Venus.

  • Converts angular and vector coordinates among the following orientations:

    • Equatorial J2000
    • Equatorial equator-of-date
    • Ecliptic J2000
    • Topocentric Horizontal
  • Determines which constellation contains a given point in the sky.

Description
No description provided
Readme MIT 55 MiB
Languages
C 23%
JavaScript 15.9%
C# 14.2%
Python 11.1%
HTML 10.2%
Other 25.6%