![]() |
SuperNOVAS v1.3
The NOVAS C library, made better
|
Functions | |
double | d_light (const double *pos_src, const double *pos_body) |
void | novas_debug (enum novas_debug_mode mode) |
========================================================================== | |
double | novas_equ_sep (double ra1, double dec1, double ra2, double dec2) |
enum novas_debug_mode | novas_get_debug_mode () |
double | novas_norm_ang (double angle) |
double | novas_sep (double lon1, double lat1, double lon2, double lat2) |
double | novas_vlen (const double *restrict v) |
int | radec2vector (double ra, double dec, double dist, double *restrict pos) |
int | spin (double angle, const double *in, double *out) |
short | vector2radec (const double *restrict pos, double *restrict ra, double *restrict dec) |
Variables | |
int | novas_inv_max_iter = 100 |
Various commonly used routines used throughout the SuperNOVAS library.
double d_light | ( | const double * | pos_src, |
const double * | pos_body | ||
) |
Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter) (Usage A).
Alternatively (Usage B), this function returns the light-time from the observer (or the geocenter) to a point on a light ray that is closest to a specific solar system body. For this purpose, 'pos_src' is the position vector toward observed object, with respect to origin at observer (or the geocenter); 'pos_body' is the position vector of solar system body, with respect to origin at observer (or the geocenter), components in AU; and the returned value is the light time to point on line defined by 'pos' that is closest to solar system body (positive if light passes body before hitting observer, i.e., if 'pos_body' is within 90 degrees of 'pos_src').
NOTES:
pos_src | Position vector towards observed object, with respect to the SSB (Usage A), or relative to the observer / geocenter (Usage B). |
pos_body | [AU] Position of observer relative to SSB (Usage A), or position of intermediate solar-system body with respect to the observer / geocenter (Usage B). |
References novas_vlen().
void novas_debug | ( | enum novas_debug_mode | mode | ) |
==========================================================================
Enables or disables reporting errors and traces to the standard error stream.
mode | NOVAS_DEBUG_OFF (0; or <0), NOVAS_DEBUG_ON (1), or NOVAS_DEBUG_EXTRA (2; or >2). |
References NOVAS_DEBUG_EXTRA.
double novas_equ_sep | ( | double | ra1, |
double | dec1, | ||
double | ra2, | ||
double | dec2 | ||
) |
Returns the angular separation of two equatorial locations on a sphere.
ra1 | [h] right ascension of first location |
dec1 | [deg] declination of first location |
ra2 | [h] right ascension of second location |
dec2 | [deg] declination of second location |
References novas_sep().
enum novas_debug_mode novas_get_debug_mode | ( | ) |
Returns the current, thread-local, mode for reporting errors encountered (and traces).
double novas_norm_ang | ( | double | angle | ) |
Returns the normalized angle in the [0:2π) range.
angle | [rad] an angle in radians. |
References TWOPI.
double novas_sep | ( | double | lon1, |
double | lat1, | ||
double | lon2, | ||
double | lat2 | ||
) |
Returns the angular separation of two locations on a sphere.
lon1 | [deg] longitude of first location |
lat1 | [deg] latitude of first location |
lon2 | [deg] longitude of second location |
lat2 | [deg] latitude of second location |
double novas_vlen | ( | const double *restrict | v | ) |
(for internal use only) Calculates the length of a 3-vector
v | Pointer to a 3-component (x, y, z) vector. The argument cannot be NULL |
int radec2vector | ( | double | ra, |
double | dec, | ||
double | dist, | ||
double *restrict | pos | ||
) |
Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates).
ra | [h] Right ascension (hours). | |
dec | [deg] Declination (degrees). | |
dist | [AU] Distance (AU) | |
[out] | pos | [AU] Position 3-vector, equatorial rectangular coordinates (AU). |
int spin | ( | double | angle, |
const double * | in, | ||
double * | out | ||
) |
Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis.
REFERENCES:
angle | [deg] Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. | |
in | Input position vector. | |
[out] | out | Position vector expressed in new coordinate system rotated about z by 'angle'. It can be the same vector as the input. |
References TWOPI.
short vector2radec | ( | const double *restrict | pos, |
double *restrict | ra, | ||
double *restrict | dec | ||
) |
Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates.
REFERENCES:
pos | Position 3-vector, equatorial rectangular coordinates. | |
[out] | ra | [h] Right ascension in hours [0:24] or NAN if the position vector is NULL or a null-vector. It may be NULL if notrequired. |
[out] | dec | [deg] Declination in degrees [-90:90] or NAN if the position vector is NULL or a null-vector. It may be NULL if not required. |
int novas_inv_max_iter = 100 |
Maximum number of iterations for convergent inverse calculations. Most iterative inverse functions should normally converge in a handful of iterations. In some pathological cases more iterations may be required. This variable sets an absolute maximum for the number of iterations in order to avoid runaway (zombie) behaviour. If inverse functions faile to converge, they will return a value indicating an error, and errno should be set to ECANCELED.