Skip to main content
U.S. flag

An official website of the United States government

Dot gov

The .gov means it’s official.
Federal government websites often end in .gov or .mil. Before sharing sensitive information, make sure you’re on a federal government site.

Https

The site is secure.
The https:// ensures that you are connecting to the official website and that any information you provide is encrypted and transmitted securely.

NOVAS 3.1 - C

Naval Observatory Vector Astrometry Software

C Edition C3.1 (31 March 2011)

NOVAS C is currently available at the Astrophysics Source Code Library .

NOVAS is an integrated package of functions for computing various commonly needed quantities in positional astronomy. The package can supply, in one or two function calls, the instantaneous coordinates of any star or planet in a variety of coordinate systems. At a lower level, NOVAS also provides astrometric utility transformations, such as those for precession, nutation, aberration, parallax, and gravitational deflection of light. The computations are accurate to better than one milliarcsecond. The NOVAS library 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. Fortran and Python editions of NOVAS are also available. See the NOVAS overview for more general information.

The NOVAS source code contains sufficient comment statements in the prolog of each function to make the usage clear. Expanded explanations of the most frequently called functions are provided in the User's Guide, which contains hypertext cross-references. Additional information about the computation of nutation in NOVAS is available in USNO Circular 181.

For most high-level calculations, NOVAS requires access to the position and velocity vectors of solar system objects as a function of time. NOVAS function ephemeris provides these data. For major solar system bodies, ephemeris calls a user-selected version of the function solarsystem. Users can choose from the three versions of solarsystem that are supplied in the standard NOVAS distribution, or supply their own version. At the very least (for the computation of the apparent positions of stars), the function ephemeris must access ephemeris data for the Earth and Sun. For the highest-accuracy requirements and most flexibility in usage, ephemeris can call solarsystem versions 1 or 2, which provide a direct interface to the planetary and lunar ephemerides produced by the Jet Propulsion Laboratory (JPL). The JPL ephemerides and the software to access them can be downloaded from the JPL web site . More information on the use of ephemeris, the available versions of solarsystem, the specifications of the calls to ephemeris and solarsystem, and how to obtain and install the JPL ephemerides is provided in the User's Guide.

Key Changes Between Versions C3.0 and C3.1

NOVAS C3.1 fixes several minor problems in C3.0 and includes a few new features. Appendix B of the User's Guide provides a complete list of changes since version C2.0.1. The main differences between NOVAS C3.0 and C3.1 are as follows:

  • New function cel2ter transforms a vector from the celestial system (GCRS) to the terrestrial system (ITRS). It complements function ter2cel.
  • Function wobble has a new direction input parameter.
  • The ephemeris manager (eph_manager.c and eph_manager.h) now supports JPL's DE421 lunar and planetary ephemerides. Function ephem_open also has an additional output argument, de_number, which provides the DE number (e.g., 405, 421) of the opened ephemeris file. The function names Ephem_Open, Ephem_Close, Planet_Ephemeris, State, Interpolate, and Split were all changed to lower case (i.e., ephem_open, ephem_close, planet_ephemeris, state, interpolate, and split) to conform to internal coding standards.
  • To prevent possible string overflows, two new preprocessor constants, SIZE_OF_OBJ_NAME and SIZE_OF_CAT_NAME have been defined in novas.h. SIZE_OF_OBJ_NAME defines the length of the starname character array in the cat_entry structure and the length of the name character array in the object structure. SIZE_OF_CAT_NAME defines the length of the catalog character array in the cat_entry structure. Although the actual lengths of the arrays are unchanged, the make_cat_entry and make_object function prototypes and definitions now use these new preprocessor constants in their argument lists. Other NOVAS functions also make use of the new preprocessor constants.
  • Updated function precession fixes a bug that occurs when the input and output Julian dates are both 2451545.0 on the first call to the function.
  • The nutation models in nutation.ciau2000a, iau2000b, and nu2000k—now use static storage class for the large const arrays.

For known issues with the code, see NOVAS User Updates and FAQ.

 

Direct questions, comments, and problem reports to our help desk.