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.c—iau2000a, 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.