![]() |
SuperNOVAS v1.5
The NOVAS C library, made better
|
Functions to calculate or access the Celestial Intermediate Origin (CIO) location. More...
Functions | |
short | cio_array (double jd_tdb, long n_pts, ra_of_cio *restrict cio) |
short | cio_basis (double jd_tdb, double ra_cio, enum novas_cio_location_type loc_type, enum novas_accuracy accuracy, double *restrict x, double *restrict y, double *restrict z) |
short | cio_location (double jd_tdb, enum novas_accuracy accuracy, double *restrict ra_cio, short *restrict loc_type) |
short | cio_ra (double jd_tt, enum novas_accuracy accuracy, double *restrict ra_cio) |
Computes the true right ascension of the celestial intermediate origin (CIO) vs the equinox of date on the true equator of date for a given TT Julian date. | |
int | set_cio_locator_file (const char *restrict filename) |
Functions to calculate or access the Celestial Intermediate Origin (CIO) location.
The CIO is the origin of the Celestial Intermediate Reference System (CIRS), which is the IAU 2000 dynamic equatorial system of date. CIRS and the old equivalent True of Date (TOD) systems share the same dynamical equator, but differ in where the origin lies on the equator: CIO vs the true equinox of date.
The IAU2000 standard for position calculations typically involves converting between GCRS and CIRS systems, and the IERS Conventions 2010, Chapter 5 describes two equivalent methods to do so.
The two methods are equivalent both in terms of accuracy, down to the μas level, and in terms of computational cost. Neither is 'superior' to the other in any measurable way. In SuperNOVAS we choose to follow Method 2, since its implementation is more readily given with the existing framework of related functions.
REFERENCES:
short cio_array | ( | double | jd_tdb, |
long | n_pts, | ||
ra_of_cio *restrict | cio ) |
Given an input TDB Julian date and the number of data points desired, this function returns a set of Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). The range of dates is centered on the requested date.
NOTES:
The CIO locator file that is bundled was prepared with the original IAU2000A nutation model, not with the newer R06 (a.k.a. IAU2006) nutation model, resulting in an error up to the few tens of micro-arcseconds level for dates between 1900 and 2100, and larger errors further away from the current epoch.
CIO_RA.TXT
or cio_ra.bin
). The current version no longer does, and instead generates the requested data on the fly. jd_tdb | [day] Barycentric Dynamic Time (TDB) based Julian date | |
n_pts | Number of Julian dates and right ascension values requested (not less than 2 or more than NOVAS_CIO_CACHE_SIZE). | |
[out] | cio | A time series (array) of the right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS. |
References ra_of_cio::jd_tdb, NOVAS_ARCSEC, NOVAS_HOURANGLE, and ra_of_cio::ra_cio.
short cio_basis | ( | double | jd_tdb, |
double | ra_cio, | ||
enum novas_cio_location_type | loc_type, | ||
enum novas_accuracy | accuracy, | ||
double *restrict | x, | ||
double *restrict | y, | ||
double *restrict | z ) |
Computes the CIRS basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and the celestial intermediate origin (CIO) (in the x direction).
This function effectively constructs the CIRS to GCRS transformation matrix C in eq. (3) of the reference.
NOTES:
REFERENCES:
jd_tdb | [day] Barycentric Dynamic Time (TDB) based Julian date | |
ra_cio | [h] Right ascension of the CIO at epoch (hours). | |
loc_type | CIO_VS_GCRS (1) if the cio location is relative to the GCRS or else CIO_VS_EQUINOX (2) if relative to the true equinox of date. | |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) | |
[out] | x | Unit 3-vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. |
[out] | y | Unit 3-vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. |
[out] | z | Unit 3-vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS. |
References CIO_VS_EQUINOX, CIO_VS_GCRS, NOVAS_FULL_ACCURACY, NOVAS_REDUCED_ACCURACY, novas_vlen(), and tod_to_gcrs().
short cio_location | ( | double | jd_tdb, |
enum novas_accuracy | accuracy, | ||
double *restrict | ra_cio, | ||
short *restrict | loc_type ) |
cio_ra()
to get the CIO location w.r.t. the equinox of date (on the same dynamical equator), or equivalently ira_equinox()
to return the negated value of the same.Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date.
NOTES:
jd_tdb | [day] Barycentric Dynamic Time (TDB) based Julian date | |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) | |
[out] | ra_cio | [h] Right ascension of the CIO, in hours, or NAN if returning with an error. |
[out] | loc_type | Pointer in which to return the reference system in which right ascension is given, which is either CIO_VS_GCRS (1) if the location was obtained via interpolation of the available data file, or else CIO_VS_EQUINOX (2) if it was calculated locally. It is set to -1 if returning with an error. |
References CIO_VS_EQUINOX, ira_equinox(), NOVAS_FULL_ACCURACY, NOVAS_REDUCED_ACCURACY, and NOVAS_TRUE_EQUINOX.
short cio_ra | ( | double | jd_tt, |
enum novas_accuracy | accuracy, | ||
double *restrict | ra_cio ) |
Computes the true right ascension of the celestial intermediate origin (CIO) vs the equinox of date on the true equator of date for a given TT Julian date.
This is simply the negated return value ofira_equinox() for the true equator of date.
REFERENCES:
jd_tt | [day] Terrestrial Time (TT) based Julian date | |
accuracy | NOVAS_FULL_ACCURACY (0) or NOVAS_REDUCED_ACCURACY (1) | |
[out] | ra_cio | [h] Right ascension of the CIO, with respect to the true equinox of date (+ or -), or NAN when returning with an error code. |
References ira_equinox(), NOVAS_FULL_ACCURACY, NOVAS_REDUCED_ACCURACY, and NOVAS_TRUE_EQUINOX.
int set_cio_locator_file | ( | const char *restrict | filename | ) |
It used to set the CIO interpolaton data file to use to interpolate CIO locations vs the GCRS. As of version 1.5, this call does exactly nothing. It simply returns 0.
filename | (unused) Used to be the path (preferably absolute path) CIO_RA.TXT or else to the binary cio_ra.bin data, or NULL to disable using a CIO locator file altogether. |