NOVAS is an integrated package of subroutines and functions for computing various commonly needed quantities in positional astronomy. The package can provide, in one or two subroutine or function calls, the instantaneous coordinates of any star or planet in a variety of coordinate systems. At a lower level, NOVAS also supplies astrometric utility transformations, such as those for precession, nutation, aberration, parallax, and the gravitational deflection of light. The computations are accurate to better than one milliarcsecond. The NOVAS package is an easy-to-use facility that can be incorporated into data reduction programs, telescope control systems, and simulations. The U.S. parts of The Astronomical Almanac are prepared using NOVAS. Three editions of NOVAS are available: Fortran, C, and Python.

The algorithms used by NOVAS 3.1 are based on a vector and matrix formulation
that is rigorous and does not use spherical trigonometry at any point. Objects inside
and outside the solar system are treated
similarly. The position vectors formed and operated on by NOVAS place each object at
its relevant distance (in AU) from the solar system barycenter. Objects at
unknown distance (parallax zero or undetermined) are placed on the "celestial sphere,"
herein defined to be at a radius of 1 gigaparsec (2 x 10^{14} AU).

Released in late 2009, NOVAS 3.0 provided greater accuracy of star and planet position calculations (apparent places) by including several small effects not implemented in the NOVAS 2.0 code of 1998. NOVAS 3.0 also fully implemented recent resolutions by the International Astronomical Union (IAU) on positional astronomy, including new reference system definitions and updated models for precession and nutation. The paper by Kaplan et al. (1989, Astron. J. 97, 1197) describes the overall computational strategy used by NOVAS, although many of the individual algorithms described there have been improved. USNO Circular 179 describes the IAU recommendations that underpin much of NOVAS 3.0 and is the basic reference for NOVAS algorithms relating to time, Earth orientation, and the transformations between various astronomical reference systems. The current version, NOVAS 3.1, provides some new capabilities and fixes some bugs.

NOVAS assumes that input data are provided in the International Celestial Reference System (ICRS), or at least are consistent with it to within the data's inherent accuracy. This requirement allows NOVAS to make proper use of reference data from modern sources such as Hipparcos, Tycho-2, UCAC, the VLBA Calibrator Survey, 2MASS, and the JPL planetary ephemerides.

NOVAS includes three levels of subroutines and functions: basic, utility, and supervisory. Basic-level subroutines and functions supply the values of fundamental variables, such as the nutation angles and the heliocentric positions of solar system bodies, for specific epochs. Utility-level subroutines and functions perform transformations corresponding to precession, nutation, aberration, etc. Supervisory-level subroutines and functions call the basic and utility subroutines and functions in the proper order to compute apparent, topocentric, or astrometric places of stars or solar system bodies for specific dates and times. If desired, the user can interact exclusively with the supervisory-level subroutines and functions without becoming concerned with the details of the geometry or physical models involved in the computation.

Some of the basic- and utility-level subroutines and functions are provided in several versions to accommodate users with a need for alternative algorithms for some of the computations. For example, different nutation formulations are available for applications where speed of computation, but not the highest accuracy, is a requirement. Similarly, several versions of the subroutines and functions that supply information on the positions of solar system bodies are included. For those subroutines and functions that exist in multiple versions, only the internal logic differs; the argument list and usage are identical.

If you use NOVAS, please send us an email that outlines your application. This information helps justify further improvements to NOVAS. Your comments and suggestions are also welcome.

For guidance on citing the current version of NOVAS, please see the NOVAS FAQ or appropriate user's guide.