![]() |
SuperNOVAS v1.3
The NOVAS C library, made better
|
Functions | |
double | accum_prec (double t) |
double | ee_ct (double jd_tt_high, double jd_tt_low, enum novas_accuracy accuracy) |
int | fund_args (double t, novas_delaunay_args *restrict a) |
double | ira_equinox (double jd_tdb, enum novas_equinox_type equinox, enum novas_accuracy accuracy) |
double | mean_obliq (double jd_tdb) |
int | nutation (double jd_tdb, enum novas_nutation_direction direction, enum novas_accuracy accuracy, const double *in, double *out) |
int | nutation_angles (double t, enum novas_accuracy accuracy, double *restrict dpsi, double *restrict deps) |
double | planet_lon (double t, enum novas_planet planet) |
short | precession (double jd_tdb_in, const double *in, double jd_tdb_out, double *out) |
Various function for calculating the equator and equinox of date, and related quatities.
double accum_prec | ( | double | t | ) |
Returns the general precession in longitude (Simon et al. 1994), equivalent to 5028.8200 arcsec/cy at J2000.
t | [cy] Julian centuries since J2000 |
References TWOPI.
double ee_ct | ( | double | jd_tt_high, |
double | jd_tt_low, | ||
enum novas_accuracy | accuracy | ||
) |
Computes the "complementary terms" of the equation of the equinoxes. The input Julian date can be split into high and low order parts for improved accuracy. Typically, the split is into integer and fractiona parts. If the precision of a single part is sufficient, you may set the low order part to 0.
The series used in this function was derived from the first reference. This same series was also adopted for use in the IAU's Standards of Fundamental Astronomy (SOFA) software (i.e., subroutine eect00.for
and function eect00.c
).
The low-accuracy series used in this function is a simple implementation derived from the first reference, in which terms smaller than 2 microarcseconds have been omitted.
NOTES:
REFERENCES:
jd_tt_high | [day] High-order part of TT based Julian date. |
jd_tt_low | [day] Low-order part of TT based Julian date. |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) |
e_tilt()
internally. References accum_prec(), novas_delaunay_args::D, novas_delaunay_args::F, fund_args(), NOVAS_FULL_ACCURACY, NOVAS_MERCURY, NOVAS_NEPTUNE, NOVAS_REDUCED_ACCURACY, novas_delaunay_args::Omega, and planet_lon().
int fund_args | ( | double | t, |
novas_delaunay_args *restrict | a | ||
) |
Compute the fundamental arguments (mean elements) of the Sun and Moon.
REFERENCES:
t | [cy] TDB time in Julian centuries since J2000.0 | |
[out] | a | [rad] Fundamental arguments data to populate (5 doubles) [0:2π] |
References novas_norm_ang().
double ira_equinox | ( | double | jd_tdb, |
enum novas_equinox_type | equinox, | ||
enum novas_accuracy | accuracy | ||
) |
Compute the intermediate right ascension of the equinox at the input Julian date, using an analytical expression for the accumulated precession in right ascension. For the true equinox, the result is the equation of the origins.
NOTES:
REFERENCES:
jd_tdb | [day] Barycentric Dynamic Time (TDB) based Julian date |
equinox | NOVAS_MEAN_EQUINOX (0) or NOVAS_TRUE_EQUINOX (1, or non-zero) |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1, or non-zero) |
cio_location()
internally. References e_tilt(), NOVAS_FULL_ACCURACY, NOVAS_REDUCED_ACCURACY, and NOVAS_TRUE_EQUINOX.
double mean_obliq | ( | double | jd_tdb | ) |
Computes the mean obliquity of the ecliptic.
REFERENCES:
jd_tdb | [day] Barycentric Dynamic Time (TDB) based Julian date |
int nutation | ( | double | jd_tdb, |
enum novas_nutation_direction | direction, | ||
enum novas_accuracy | accuracy, | ||
const double * | in, | ||
double * | out | ||
) |
Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. Inverse transformation may be applied by setting flag 'direction'.
This is the old (pre IAU 2006) method of nutation calculation. If you follow the now standard IAU 2000/2006 methodology you will want to use nutation_angles() instead.
REFERENCES:
jd_tdb | [day] Barycentric Dynamic Time (TDB) based Julian date | |
direction | NUTATE_MEAN_TO_TRUE (0) or NUTATE_TRUE_TO_MEAN (-1; or non-zero) | |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) | |
in | Position 3-vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. | |
[out] | out | Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. It can be the same as the input position. |
References e_tilt(), and NUTATE_MEAN_TO_TRUE.
int nutation_angles | ( | double | t, |
enum novas_accuracy | accuracy, | ||
double *restrict | dpsi, | ||
double *restrict | deps | ||
) |
Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. The nutation model selected depends upon the input value of 'accuracy'. See notes below for important details.
This function selects the nutation model depending first upon the input value of 'accuracy'. If 'accuracy' is NOVAS_FULL_ACCURACY (0), the IAU 2000A nutation model is used. Otherwise the model set by set_nutation_lp_provider() is used, or else the default nu2000k().
See the prologs of the nutation functions in file 'nutation.c' for details concerning the models.
REFERENCES:
t | [cy] TDB time in Julian centuries since J2000.0 | |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) | |
[out] | dpsi | [arcsec] Nutation in longitude in arcseconds. |
[out] | deps | [arcsec] Nutation in obliquity in arcseconds. |
References get_nutation_lp_provider(), iau2000a(), and NOVAS_FULL_ACCURACY.
double planet_lon | ( | double | t, |
enum novas_planet | planet | ||
) |
Returns the planetary longitude, for Mercury through Neptune, w.r.t. mean dynamical ecliptic and equinox of J2000, with high order terms omitted (Simon et al. 1994, 5.8.1-5.8.8).
t | [cy] Julian centuries since J2000 |
planet | Novas planet id, e.g. NOVAS_MARS. |
planet
id is out of range.References NOVAS_EARTH, NOVAS_JUPITER, NOVAS_MARS, NOVAS_MERCURY, NOVAS_NEPTUNE, NOVAS_SATURN, NOVAS_URANUS, NOVAS_VENUS, and TWOPI.
short precession | ( | double | jd_tdb_in, |
const double * | in, | ||
double | jd_tdb_out, | ||
double * | out | ||
) |
Precesses equatorial rectangular coordinates from one epoch to another. Unlike the original NOVAS routine, this routine works for any pairing of the time arguments.
This function calculates precession for the old (pre IAU 2000) methodology. Its main use for NOVAS users is to allow converting older catalog coordinates e.g. to J2000 coordinates, which then can be converted to the now standard ICRS system via frame_tie().
NOTE:
Unlike the original NOVAS C 3.1 version, this one does not require that one of the time arguments must be J2000. You can precess from any date to any other date, and the intermediate epoch of J2000 will be handled internally as needed.
REFERENCES:
jd_tdb_in | [day] Barycentric Dynamic Time (TDB) based Julian date of the input epoch | |
in | Position 3-vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of the initial epoch. | |
jd_tdb_out | [day] Barycentric Dynamic Time (TDB) based Julian date of the output epoch | |
[out] | out | Position 3-vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of the final epoch. It can be the same vector as the input. |
References precession().