SOFA
20200721
|
Functions | |
void | iauAb (double pnat[3], double v[3], double s, double bm1, double ppr[3]) |
Apply aberration to transform natural direction into proper direction. More... | |
void | iauAe2hd (double az, double el, double phi, double *ha, double *dec) |
Horizon to equatorial coordinates: transform azimuth and altitude to hour angle and declination. More... | |
int | iauAf2a (char s, int ideg, int iamin, double asec, double *rad) |
Convert degrees, arcminutes, arcseconds to radians. More... | |
void | iauApcg (double date1, double date2, double ebpv[2][3], double ehp[3], iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
void | iauApcg13 (double date1, double date2, iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
void | iauApci (double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
void | iauApci13 (double date1, double date2, iauASTROM *astrom, double *eo) |
prepare star-independent astrometry parameters More... | |
void | iauApco (double date1, double date2, double ebpv[2][3], double ehp[3], double x, double y, double s, double theta, double elong, double phi, double hm, double xp, double yp, double sp, double refa, double refb, iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
int | iauApco13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom, double *eo) |
prepare star-independent astrometry parameters More... | |
void | iauApcs (double date1, double date2, double pv[2][3], double ebpv[2][3], double ehp[3], iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
void | iauApcs13 (double date1, double date2, double pv[2][3], iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
void | iauAper (double theta, iauASTROM *astrom) |
update the Earth rotation angle More... | |
void | iauAper13 (double ut11, double ut12, iauASTROM *astrom) |
update the Earth rotation angle More... | |
void | iauApio (double sp, double theta, double elong, double phi, double hm, double xp, double yp, double refa, double refb, iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
int | iauApio13 (double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, iauASTROM *astrom) |
prepare star-independent astrometry parameters More... | |
void | iauAtci13 (double rc, double dc, double pr, double pd, double px, double rv, double date1, double date2, double *ri, double *di, double *eo) |
Transform ICRS star data, epoch J2000.0, to CIRS. More... | |
void | iauAtciq (double rc, double dc, double pr, double pd, double px, double rv, iauASTROM *astrom, double *ri, double *di) |
Quick ICRS, epoch J2000.0, to CIRS transformation. More... | |
void | iauAtciqn (double rc, double dc, double pr, double pd, double px, double rv, iauASTROM *astrom, int n, iauLDBODY b[], double *ri, double *di) |
Quick ICRS, epoch J2000.0, to CIRS transformation. More... | |
void | iauAtciqz (double rc, double dc, iauASTROM *astrom, double *ri, double *di) |
Quick ICRS to CIRS transformation. More... | |
int | iauAtco13 (double rc, double dc, double pr, double pd, double px, double rv, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob, double *eo) |
ICRS RA,Dec to observed place. More... | |
void | iauAtic13 (double ri, double di, double date1, double date2, double *rc, double *dc, double *eo) |
Transform star RA,Dec from geocentric CIRS to ICRS astrometric. More... | |
void | iauAticq (double ri, double di, iauASTROM *astrom, double *rc, double *dc) |
Quick CIRS RA,Dec to ICRS astrometric place. More... | |
void | iauAticqn (double ri, double di, iauASTROM *astrom, int n, iauLDBODY b[], double *rc, double *dc) |
Quick CIRS to ICRS astrometric place transformation. More... | |
int | iauAtio13 (double ri, double di, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *aob, double *zob, double *hob, double *dob, double *rob) |
CIRS RA,Dec to observed place. More... | |
void | iauAtioq (double ri, double di, iauASTROM *astrom, double *aob, double *zob, double *hob, double *dob, double *rob) |
Quick CIRS to observed place transformation. More... | |
int | iauAtoc13 (const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *rc, double *dc) |
Observed place at a groundbased site to to ICRS astrometric RA,Dec. More... | |
int | iauAtoi13 (const char *type, double ob1, double ob2, double utc1, double utc2, double dut1, double elong, double phi, double hm, double xp, double yp, double phpa, double tc, double rh, double wl, double *ri, double *di) |
Observed place to CIRS. More... | |
void | iauAtoiq (const char *type, double ob1, double ob2, iauASTROM *astrom, double *ri, double *di) |
Quick observed place to CIRS. More... | |
void | iauBp06 (double date1, double date2, double rb[3][3], double rp[3][3], double rbp[3][3]) |
Frame bias and precession, IAU 2006. More... | |
void | iauBpn2xy (double rbpn[3][3], double *x, double *y) |
Extract the X,Y coordinates of the Celestial Intermediate Pole. More... | |
void | iauC2i00a (double date1, double date2, double rc2i[3][3]) |
Form the celestial-to-intermediate matrix for a given date. More... | |
void | iauC2i00b (double date1, double date2, double rc2i[3][3]) |
Form the celestial-to-intermediate matrix for a given date . More... | |
void | iauC2i06a (double date1, double date2, double rc2i[3][3]) |
Form the celestial-to-intermediate matrix for a given date. More... | |
void | iauC2ibpn (double date1, double date2, double rbpn[3][3], double rc2i[3][3]) |
Form the celestial-to-intermediate matrix for a given date. More... | |
void | iauC2ixy (double date1, double date2, double x, double y, double rc2i[3][3]) |
Form the celestial to intermediate-frame-of-date matrix. More... | |
void | iauC2ixys (double x, double y, double s, double rc2i[3][3]) |
Form the celestial to intermediate-frame-of-date matrix. More... | |
void | iauC2t00a (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3]) |
Form the celestial to terrestrial matrix. More... | |
void | iauC2t00b (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3]) |
Form the celestial to terrestrial matrix. More... | |
void | iauC2t06a (double tta, double ttb, double uta, double utb, double xp, double yp, double rc2t[3][3]) |
Form the celestial to terrestrial matrix. More... | |
void | iauC2tcio (double rc2i[3][3], double era, double rpom[3][3], double rc2t[3][3]) |
Assemble the celestial to terrestrial matrix. More... | |
void | iauC2teqx (double rbpn[3][3], double gst, double rpom[3][3], double rc2t[3][3]) |
Assemble the celestial to terrestrial matrix. More... | |
void | iauC2tpe (double tta, double ttb, double uta, double utb, double dpsi, double deps, double xp, double yp, double rc2t[3][3]) |
Form the celestial to terrestrial matrix. More... | |
void | iauC2txy (double tta, double ttb, double uta, double utb, double x, double y, double xp, double yp, double rc2t[3][3]) |
Form the celestial to terrestrial matrix. More... | |
int | iauCal2jd (int iy, int im, int id, double *djm0, double *djm) |
Gregorian Calendar to Julian Date. More... | |
int | iauD2dtf (const char *scale, int ndp, double d1, double d2, int *iy, int *im, int *id, int ihmsf[4]) |
Format for output a 2-part Julian Date. More... | |
int | iauDat (int iy, int im, int id, double fd, double *deltat) |
For a given UTC date, calculate delta(AT) = TAI-UTC. More... | |
int | iauDtf2d (const char *scale, int iy, int im, int id, int ihr, int imn, double sec, double *d1, double *d2) |
Encode date and time fields into 2-part Julian Date. More... | |
void | iauEceq06 (double date1, double date2, double dl, double db, double *dr, double *dd) |
Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using the IAU 2006 precession model. More... | |
void | iauEcm06 (double date1, double date2, double rm[3][3]) |
ICRS equatorial to ecliptic rotation matrix, IAU 2006. More... | |
double | iauEe00a (double date1, double date2) |
Equation of the equinoxes. More... | |
double | iauEe00b (double date1, double date2) |
Equation of the equinoxes. More... | |
double | iauEe06a (double date1, double date2) |
Equation of the equinoxes. More... | |
double | iauEo06a (double date1, double date2) |
Equation of the origins. More... | |
double | iauEors (double rnpb[3][3], double s) |
Equation of the origins. More... | |
double | iauEpb (double dj1, double dj2) |
Julian Date to Besselian Epoch. More... | |
void | iauEpb2jd (double epb, double *djm0, double *djm) |
Besselian Epoch to Julian Date. More... | |
double | iauEpj (double dj1, double dj2) |
Julian Date to Julian Epoch. More... | |
void | iauEpj2jd (double epj, double *djm0, double *djm) |
Julian Epoch to Julian Date. More... | |
int | iauEpv00 (double date1, double date2, double pvh[2][3], double pvb[2][3]) |
Earth position and velocity. More... | |
void | iauEqec06 (double date1, double date2, double dr, double dd, double *dl, double *db) |
Transformation from ICRS equatorial coordinates to ecliptic coordinates. More... | |
void | iauFk425 (double r1950, double d1950, double dr1950, double dd1950, double p1950, double v1950, double *r2000, double *d2000, double *dr2000, double *dd2000, double *p2000, double *v2000) |
Convert B1950.0 FK4 star catalog data to J2000.0 FK5.Notes: More... | |
void | iauFk45z (double r1950, double d1950, double bepoch, double *r2000, double *d2000) |
Convert a B1950.0 FK4 star position to J2000.0 FK5.Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero proper motion in the FK5 system. This function converts a star's catalog data from the old FK4 (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, in such a way that the FK5 proper motion is zero. Because such a star has, in general, a non-zero proper motion in the FK4 system, the routine requires the epoch at which the position in the FK4 system was determined. More... | |
void | iauFk524 (double r2000, double d2000, double dr2000, double dd2000, double p2000, double v2000, double *r1950, double *d1950, double *dr1950, double *dd1950, double *p1950, double *v1950) |
Convert J2000.0 FK5 star catalog data to B1950.0 FK4.Notes: More... | |
void | iauFk52h (double r5, double d5, double dr5, double dd5, double px5, double rv5, double *rh, double *dh, double *drh, double *ddh, double *pxh, double *rvh) |
Transform FK5 star data into the Hipparcos system. More... | |
void | iauFk54z (double r2000, double d2000, double bepoch, double *r1950, double *d1950, double *dr1950, double *dd1950) |
Convert a J2000.0 FK5 star position to B1950.0 FK4Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero proper motion in FK5 and parallax. Notes: More... | |
void | iauFk5hip (double r5h[3][3], double s5h[3]) |
FK5 to Hipparcos rotation and spin. More... | |
void | iauFk5hz (double r5, double d5, double date1, double date2, double *rh, double *dh) |
Transform an FK5 star position into the Hipparcos system. More... | |
void | iauFw2m (double gamb, double phib, double psi, double eps, double r[3][3]) |
Form rotation matrix given the Fukushima-Williams angles. More... | |
void | iauFw2xy (double gamb, double phib, double psi, double eps, double *x, double *y) |
CIP X,Y given Fukushima-Williams bias-precession-nutation angles. More... | |
int | iauGc2gde (double a, double f, double xyz[3], double *elong, double *phi, double *height) |
Transform geocentric coordinates to geodetic. More... | |
int | iauGd2gce (double a, double f, double elong, double phi, double height, double xyz[3]) |
Transform geodetic coordinates to geocentric. More... | |
double | iauGst00b (double uta, double utb) |
Greenwich apparent sidereal time. More... | |
double | iauGst06 (double uta, double utb, double tta, double ttb, double rnpb[3][3]) |
Greenwich apparent sidereal time. More... | |
double | iauGst94 (double uta, double utb) |
Greenwich apparent sidereal time. More... | |
void | iauH2fk5 (double rh, double dh, double drh, double ddh, double pxh, double rvh, double *r5, double *d5, double *dr5, double *dd5, double *px5, double *rv5) |
Transform Hipparcos star data into the FK5 (J2000.0) system. More... | |
void | iauHd2ae (double ha, double dec, double phi, double *az, double *el) |
Equatorial to horizon coordinates. More... | |
double | iauHd2pa (double ha, double dec, double phi) |
Parallactic angle for a given hour angle and declination.Notes: More... | |
void | iauHfk5z (double rh, double dh, double date1, double date2, double *r5, double *d5, double *dr5, double *dd5) |
Transform a Hipparcos star position into FK5 J2000.0. More... | |
int | iauJd2cal (double dj1, double dj2, int *iy, int *im, int *id, double *fd) |
Julian Date to Gregorian year, month, day, and fraction of a day. More... | |
int | iauJdcalf (int ndp, double dj1, double dj2, int iymdf[4]) |
Julian Date to Gregorian Calendar. More... | |
void | iauLd (double bm, double p[3], double q[3], double e[3], double em, double dlim, double p1[3]) |
Apply light deflection by a solar-system body. More... | |
void | iauLdn (int n, iauLDBODY b[], double ob[3], double sc[3], double sn[3]) |
apply light deflection by multiple solar-system bodies More... | |
void | iauLdsun (double p[3], double e[3], double em, double p1[3]) |
Deflection of starlight by the Sun. More... | |
void | iauLteceq (double epj, double dl, double db, double *dr, double *dd) |
Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec.Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using a long-term precession model. 1) No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration. More... | |
void | iauLtecm (double epj, double rm[3][3]) |
ICRS equatorial to ecliptic rotation matrix, long-term. More... | |
void | iauLteqec (double epj, double dr, double dd, double *dl, double *db) |
Transformation from ICRS equatorial coordinates to ecliptic coordinates. More... | |
void | iauLtp (double epj, double rp[3][3]) |
Long-term precession matrix.Notes: More... | |
void | iauLtpb (double epj, double rpb[3][3]) |
Long-term precession matrix, including ICRS frame bias.Notes: More... | |
void | iauLtpecl (double epj, double vec[3]) |
Long-term precession of the ecliptic.Notes: More... | |
void | iauNum00a (double date1, double date2, double rmatn[3][3]) |
Form the matrix of nutation for a given date. More... | |
void | iauNum00b (double date1, double date2, double rmatn[3][3]) |
Form the matrix of nutation for a given date. More... | |
void | iauNum06a (double date1, double date2, double rmatn[3][3]) |
Form the matrix of nutation for a given date. More... | |
void | iauNumat (double epsa, double dpsi, double deps, double rmatn[3][3]) |
Form the matrix of nutation. More... | |
void | iauNutm80 (double date1, double date2, double rmatn[3][3]) |
Form the matrix of nutation for a given date,. More... | |
void | iauPb06 (double date1, double date2, double *bzeta, double *bz, double *btheta) |
forms three Euler angles which implement general precession from epoch J2000.0, More... | |
int | iauPlan94 (double date1, double date2, int np, double pv[2][3]) |
Approximate heliocentric position and velocity of a planet. More... | |
void | iauPmat00 (double date1, double date2, double rbp[3][3]) |
Precession matrix from GCRS to specified date. More... | |
void | iauPmat06 (double date1, double date2, double rbp[3][3]) |
Precession matrix from GCRS to a specified date. More... | |
void | iauPmat76 (double date1, double date2, double rmatp[3][3]) |
Precession matrix from J2000.0 to a specified date. More... | |
void | iauPmpx (double rc, double dc, double pr, double pd, double px, double rv, double pmt, double pob[3], double pco[3]) |
Proper motion and parallax. More... | |
int | iauPmsafe (double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2) |
Star proper motion. More... | |
void | iauPn00 (double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3]) |
Precession-nutation, IAU 2000 model. More... | |
void | iauPn00a (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3]) |
Precession-nutation, IAU 2000A model. More... | |
void | iauPn00b (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3]) |
Precession-nutation, IAU 2000B model. More... | |
void | iauPn06 (double date1, double date2, double dpsi, double deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3]) |
Precession-nutation, IAU 2006 model. More... | |
void | iauPn06a (double date1, double date2, double *dpsi, double *deps, double *epsa, double rb[3][3], double rp[3][3], double rbp[3][3], double rn[3][3], double rbpn[3][3]) |
Precession-nutation, IAU 2006/2000A models. More... | |
void | iauPnm00a (double date1, double date2, double rbpn[3][3]) |
Form the matrix of precession-nutation. More... | |
void | iauPnm00b (double date1, double date2, double rbpn[3][3]) |
Form the matrix of precession-nutation. More... | |
void | iauPnm06a (double date1, double date2, double rnpb[3][3]) |
Form the matrix of precession-nutation. More... | |
void | iauPnm80 (double date1, double date2, double rmatpn[3][3]) |
Form the matrix of precession/nutation. More... | |
void | iauPom00 (double xp, double yp, double sp, double rpom[3][3]) |
Form the matrix of polar motion. More... | |
int | iauPvstar (double pv[2][3], double *ra, double *dec, double *pmr, double *pmd, double *px, double *rv) |
Convert star position+velocity vector to catalog coordinates. More... | |
void | iauPvtob (double elong, double phi, double hm, double xp, double yp, double sp, double theta, double pv[2][3]) |
Position and velocity of a terrestrial observing station. More... | |
void | iauRefco (double phpa, double tc, double rh, double wl, double *refa, double *refb) |
Determine constants in the atmospheric refraction model. More... | |
double | iauS00a (double date1, double date2) |
The CIO locator using the IA2000A precission-nutation model. More... | |
double | iauS00b (double date1, double date2) |
The CIO locator using the IAU 2000B precission-nutation model. More... | |
double | iauS06a (double date1, double date2) |
The CIO locator using IAU2006 precession and IAU 2000A nutation models. More... | |
int | iauStarpm (double ra1, double dec1, double pmr1, double pmd1, double px1, double rv1, double ep1a, double ep1b, double ep2a, double ep2b, double *ra2, double *dec2, double *pmr2, double *pmd2, double *px2, double *rv2) |
Star proper motion. More... | |
int | iauStarpv (double ra, double dec, double pmr, double pmd, double px, double rv, double pv[2][3]) |
Convert star catalog coordinates to position+velocity vector. More... | |
int | iauTf2a (char s, int ihour, int imin, double sec, double *rad) |
Convert hours, minutes, seconds to radians. More... | |
int | iauTf2d (char s, int ihour, int imin, double sec, double *days) |
Convert hours, minutes, seconds to days. More... | |
int | iauTporv (double xi, double eta, double v[3], double v01[3], double v02[3]) |
In the tangent plane projection, determine the direction cosines of the tangent point. More... | |
void | iauTpsts (double xi, double eta, double a0, double b0, double *a, double *b) |
In the tangent plane projection, solve for the spherical coordinates of the star. More... | |
void | iauTpstv (double xi, double eta, double v0[3], double v[3]) |
In the tangent plane projection, solve for the direction cosines of the star. More... | |
int | iauTpxes (double a, double b, double a0, double b0, double *xi, double *eta) |
In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.Notes: More... | |
int | iauTpxev (double v[3], double v0[3], double *xi, double *eta) |
In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.In the tangent plane projection, given celestial direction cosines for a star and the tangent point, solve for the star's rectangular coordinates in the tangent plane. More... | |
void | iauXys00a (double date1, double date2, double *x, double *y, double *s) |
Compute X,Y coordinates of the CIP and CIO locator. More... | |
void | iauXys00b (double date1, double date2, double *x, double *y, double *s) |
Compute X,Y coordinates of the CIP and CIO locator. More... | |
void | iauXys06a (double date1, double date2, double *x, double *y, double *s) |
Compute X,Y coordinates of the CIP and CIO locator. More... | |
void iauAb | ( | double | pnat[3], |
double | v[3], | ||
double | s, | ||
double | bm1, | ||
double | ppr[3] | ||
) |
Apply aberration to transform natural direction into proper direction.
1) The algorithm is based on Expr. (7.40) in the Explanatory Supplement (Urban & Seidelmann 2013), but with the following changes:
o Rigorous rather than approximate normalization is applied.
o The gravitational potential term from Expr. (7) in Klioner (2003) is added, taking into account only the Sun's contribution. This has a maximum effect of about 0.4 microarcsecond.
2) In almost all cases, the maximum accuracy will be limited by the supplied velocity. For example, if the SOFA iauEpv00 function is used, errors of up to 5 microarcseconds could occur.
References:
Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd ed., University Science Books (2013).
Klioner, Sergei A., "A practical relativistic model for micro- arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003).
[in] | pnat | natural direction to the source (unit vector) |
[in] | v | observer barycentric velocity in units of c |
[in] | s | distance between the Sun and the observer (au) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | ppr | proper direction to source (unit vector) |
int iauAe2hd | ( | double | az, |
double | el, | ||
double | phi, | ||
double * | ha, | ||
double * | dec | ||
) |
Horizon to equatorial coordinates: transform azimuth and altitude to hour angle and declination.
1) All the arguments are angles in radians.
2) The sign convention for azimuth is north zero, east +pi/2.
3) HA is returned in the range +/-pi. Declination is returned in the range +/-pi/2.
4) The latitude phi is pi/2 minus the angle between the Earth's rotation axis and the adopted zenith. In many applications it will be sufficient to use the published geodetic latitude of the site. In very precise (sub-arcsecond) applications, phi can be corrected for polar motion.
5) The azimuth az must be with respect to the rotational north pole, as opposed to the ITRS pole, and an azimuth with respect to north on a map of the Earth's surface will need to be adjusted for polar motion if sub-arcsecond accuracy is required.
6) Should the user wish to work with respect to the astronomical zenith rather than the geodetic zenith, phi will need to be adjusted for deflection of the vertical (often tens of arcseconds), and the zero point of ha will also be affected.
7) The transformation is the same as Ve = Ry(phi-pi/2)*Rz(pi)*Vh, where Ve and Vh are lefthanded unit vectors in the (ha,dec) and (az,el) systems respectively and Rz and Ry are rotations about first the z-axis and then the y-axis. (n.b. Rz(pi) simply reverses the signs of the x and y components.) For efficiency, the algorithm is written out rather than calling other utility functions. For applications that require even greater efficiency, additional savings are possible if constant terms such as functions of latitude are computed once and for all.
8) Again for efficiency, no range checking of arguments is carried out.
[in] | az | azimuth |
[in] | el | alittude (informally, elevation) |
[in] | phi | site latitude |
[out] | ha | hour angle (local) |
[out] | dec | declination |
int iauAf2a | ( | char | s, |
int | ideg, | ||
int | iamin, | ||
double | asec, | ||
double * | rad | ||
) |
Convert degrees, arcminutes, arcseconds to radians.
1) The result is computed even if any of the range checks fail.
2) Negative ideg, iamin and/or asec produce a warning status, but the absolute value is used in the conversion.
3) If there are multiple errors, the status value reflects only the first, the smallest taking precedence.
[in] | s | sign: '-' = negative, otherwise positive |
[in] | ideg | degrees |
[in] | iamin | arcminutes |
[in] | asec | arcseconds |
[out] | rd | angle in radians |
void iauApcg | ( | double | date1, |
double | date2, | ||
double | ebpv[2][3], | ||
double | ehp[3], | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
For a geocentric observer, prepare star-independent astrometry parameters for transformations between ICRS and GCRS coordinates. The Earth ephemeris is supplied by the caller.
The parameters produced by this function are required in the parallax, light deflection and aberration parts of the astrometric transformation chain.
[in] | date1 | TDB as a 2-part Julian Date |
[in] | date2 | TDB as a 2-part Julian Date |
[in] | ebpv | Earth barycentric pos/vel (au, au/day) |
[in] | ehp | Earth heliocentric position (au) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | unchanged |
[out] | refa | unchanged |
[out] | refb | unchanged |
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) All the vectors are with respect to BCRS axes.
3) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
4) The context structure astrom produced by this function is used by iauAtciq* and iauAticq*.
void iauApcg13 | ( | double | date1, |
double | date2, | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
For a geocentric observer, prepare star-independent astrometry parameters for transformations between ICRS and GCRS coordinates. The caller supplies the date, and SOFA models are used to predict the Earth ephemeris.
The parameters produced by this function are required in the parallax, light deflection and aberration parts of the astrometric transformation chain.
[in] | date1 | TDB as a 2-part... |
[in] | date2 | ...Julian Date (Note 1) |
[out] | astrom | * star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | unchanged |
[out] | refa | unchanged |
[out] | refb | unchanged |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) All the vectors are with respect to BCRS axes.
3) In cases where the caller wishes to supply his own Earth ephemeris, the function iauApcg can be used instead of the present function.
4) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
5) The context structure astrom produced by this function is used by iauAtciq* and iauAticq*.
void iauApci | ( | double | date1, |
double | date2, | ||
double | ebpv[2][3], | ||
double | ehp[3], | ||
double | x, | ||
double | y, | ||
double | s, | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between ICRS and geocentric CIRS coordinates. The Earth ephemeris and CIP/CIO are supplied by the caller.
The parameters produced by this function are required in the parallax, light deflection, aberration, and bias-precession-nutation parts of the astrometric transformation chain.
[in] | date1 | TDB as a 2-part Julian Date |
[in] | date2 | TDB as a 2-part Julian Date (Note 1) |
[in] | ebpv | Earth barycentric position/velocity (au, au/day) |
[in] | ehp | Earth heliocentric position (au) |
[in] | x,y | CIP X,Y (components of unit vector) |
[in] | s | the CIO locator s (radians) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | unchanged |
[out] | refa | unchanged |
[out] | refb | unchanged |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) All the vectors are with respect to BCRS axes.
3) In cases where the caller does not wish to provide the Earth ephemeris and CIP/CIO, the function iauApci13 can be used instead of the present function. This computes the required quantities using other SOFA functions.
4) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
5) The context structure astrom produced by this function is used by iauAtciq* and iauAticq*.
void iauApci13 | ( | double | date1, |
double | date2, | ||
iauASTROM * | astrom, | ||
double * | eo | ||
) |
prepare star-independent astrometry parameters
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between ICRS and geocentric CIRS coordinates. The caller supplies the date, and SOFA models are used to predict the Earth ephemeris and CIP/CIO.
The parameters produced by this function are required in the parallax, light deflection, aberration, and bias-precession-nutation parts of the astrometric transformation chain.
[in] | date1 | TDB as a 2-part Julian Date |
[in] | date2 | TDB as 2 2-part Julian Date (Note 1) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | unchanged |
[out] | refa | unchanged |
[out] | refb | unchanged |
[out] | eo | equation of the origins (ERA-GST) |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) All the vectors are with respect to BCRS axes.
3) In cases where the caller wishes to supply his own Earth ephemeris and CIP/CIO, the function iauApci can be used instead of the present function.
4) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
5) The context structure astrom produced by this function is used by iauAtciq* and iauAticq*.
void iauApco | ( | double | date1, |
double | date2, | ||
double | ebpv[2][3], | ||
double | ehp[3], | ||
double | x, | ||
double | y, | ||
double | s, | ||
double | theta, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | sp, | ||
double | refa, | ||
double | refb, | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between ICRS and observed coordinates. The caller supplies the Earth ephemeris, the Earth rotation information and the refraction constants as well as the site coordinates.
[in] | date1 | TDB as a 2-part Julian Date |
[in] | date2 | TDB as a 2-part Julian Date (Note 1) |
[in] | ebpv | Earth barycentric PV (au, au/day, Note 2) |
[in] | ehp | Earth heliocentric P (au, Note 2) |
[in] | x,y | CIP X,Y (components of unit vector) |
[in] | s | the CIO locator s (radians) |
[in] | theta | Earth rotation angle (radians) |
[in] | elong | longitude (radians, east +ve, Note 3) |
[in] | phi | latitude (geodetic, radians, Note 3) |
[in] | hm | height above ellipsoid (m, geodetic, Note 3) |
[in] | xp,yp | polar motion coordinates (radians, Note 4) |
[in] | sp | the TIO locator s' (radians, Note 4) |
[in] | refa | refraction constant A (radians, Note 5) |
[in] | refb | refraction constant B (radians, Note 5) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | longitude + s' (radians) |
[out] | xpl | polar motion xp wrt local meridian (radians) |
[out] | ypl | polar motion yp wrt local meridian (radians) |
[out] | sphi | sine of geodetic latitude |
[out] | cphi | cosine of geodetic latitude |
[out] | diurab | magnitude of diurnal aberration vector |
[out] | eral | "local" Earth rotation angle (radians) |
[out] | refa | refraction constant A (radians) |
[out] | refb | refraction constant B (radians) |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) The vectors eb, eh, and all the astrom vectors, are with respect to BCRS axes.
3) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN CONVENTION: the longitude required by the present function is right-handed, i.e. east-positive, in accordance with geographical convention.
4) xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions), measured along the meridians 0 and 90 deg west respectively. sp is the TIO locator s', in radians, which positions the Terrestrial Intermediate Origin on the equator. For many applications, xp, yp and (especially) sp can be set to zero.
Internally, the polar motion is stored in a form rotated onto the local meridian.
5) The refraction constants refa and refb are for use in a dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed (i.e. refracted) zenith distance and dZ is the amount of refraction.
6) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
7) In cases where the caller does not wish to provide the Earth Ephemeris, the Earth rotation information and refraction constants, the function iauApco13 can be used instead of the present function. This starts from UTC and weather readings etc. and computes suitable values using other SOFA functions.
8) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
9) The context structure astrom produced by this function is used by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*.
int iauApco13 | ( | double | utc1, |
double | utc2, | ||
double | dut1, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | phpa, | ||
double | tc, | ||
double | rh, | ||
double | wl, | ||
iauASTROM * | astrom, | ||
double * | eo | ||
) |
prepare star-independent astrometry parameters
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between ICRS and observed coordinates. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength, and SOFA models are used to obtain the Earth ephemeris, CIP/CIO and refraction constants.
The parameters produced by this function are required in the parallax, light deflection, aberration, and bias-precession-nutation parts of the ICRS/CIRS transformations.
[in] | utc1 | UTC as a 2-part... |
[in] | utc2 | ...quasi Julian Date (Notes 1,2) |
[in] | dut1 | UT1-UTC (seconds, Note 3) |
[in] | elong | longitude (radians, east +ve, Note 4) |
[in] | phi | latitude (geodetic, radians, Note 4) |
[in] | hm | height above ellipsoid (m, geodetic, Notes 4,6) |
[in] | xp,yp | polar motion coordinates (radians, Note 5) |
[in] | phpa | pressure at the observer (hPa = mB, Note 6) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers, Note 7) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | longitude + s' (radians) |
[out] | xpl | polar motion xp wrt local meridian (radians) |
[out] | ypl | polar motion yp wrt local meridian (radians) |
[out] | sphi | sine of geodetic latitude |
[out] | cphi | cosine of geodetic latitude |
[out] | diurab | magnitude of diurnal aberration vector |
[out] | eral | "local" Earth rotation angle (radians) |
[out] | refa | refraction constant A (radians) |
[out] | refb | refraction constant B (radians) |
[out] | eo | equation of the origins (ERA-GST) |
1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day.
However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described.
2) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit.
4) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
5) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
Internally, the polar motion is stored in a form rotated onto the local meridian.
6) If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression
hm = -29.3 * tsl * log ( phpa / 1013.25 );
where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows:
phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
7) The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz).
8) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
9) In cases where the caller wishes to supply his own Earth ephemeris, Earth rotation information and refraction constants, the function iauApco can be used instead of the present function.
10) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
11) The context structure astrom produced by this function is used by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*.
void iauApcs | ( | double | date1, |
double | date2, | ||
double | pv[2][3], | ||
double | ebpv[2][3], | ||
double | ehp[3], | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
file apcs.c
For an observer whose geocentric position and velocity are known, prepare star-independent astrometry parameters for transformations between ICRS and GCRS. The Earth ephemeris is supplied by the caller.
The parameters produced by this function are required in the space motion, parallax, light deflection and aberration parts of the astrometric transformation chain.
[in] | date1 | TDB as a 2-part Julian Date |
[in] | date2 | TDB as a 2-part Julian Date (Note 1) |
[in] | pv | observer's geocentric pos/vel (m, m/s) |
[in] | ebpv | Earth barycentric PV (au, au/day) |
[in] | ehp | Earth heliocentric P (au) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | unchanged |
[out] | refa | unchanged |
[out] | refb | unchanged |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) All the vectors are with respect to BCRS axes.
3) Providing separate arguments for (i) the observer's geocentric position and velocity and (ii) the Earth ephemeris is done for convenience in the geocentric, terrestrial and Earth orbit cases. For deep space applications it maybe more convenient to specify zero geocentric position and velocity and to supply the observer's position and velocity information directly instead of with respect to the Earth. However, note the different units: m and m/s for the geocentric vectors, au and au/day for the heliocentric and barycentric vectors.
4) In cases where the caller does not wish to provide the Earth ephemeris, the function iauApcs13 can be used instead of the present function. This computes the Earth ephemeris using the SOFA function iauEpv00.
5) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
6) The context structure astrom produced by this function is used by iauAtciq* and iauAticq*.
void iauApcs13 | ( | double | date1, |
double | date2, | ||
double | pv[2][3], | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
For an observer whose geocentric position and velocity are known, prepare star-independent astrometry parameters for transformations between ICRS and GCRS. The Earth ephemeris is from SOFA models.
The parameters produced by this function are required in the space motion, parallax, light deflection and aberration parts of the astrometric transformation chain.
[in] | date1 | TDB as a 2-part Julian Date |
[in] | date2 | TDB as a 2-part Julian Date (Note 1) |
[in] | pv | observer's geocentric pos/vel (Note 3) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | PM time interval (SSB, Julian years) |
[out] | eb | SSB to observer (vector, au) |
[out] | eh | Sun to observer (unit vector) |
[out] | em | distance from Sun to observer (au) |
[out] | v | barycentric observer velocity (vector, c) |
[out] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[out] | bpn | bias-precession-nutation matrix |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | unchanged |
[out] | refa | unchanged |
[out] | refb | unchanged Notes: |
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) All the vectors are with respect to BCRS axes.
3) The observer's position and velocity pv are geocentric but with respect to BCRS axes, and in units of m and m/s. No assumptions are made about proximity to the Earth, and the function can be used for deep space applications as well as Earth orbit and terrestrial.
4) In cases where the caller wishes to supply his own Earth ephemeris, the function iauApcs can be used instead of the present function.
5) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
6) The context structure astrom produced by this function is used by iauAtciq* and iauAticq*.
void iauAper | ( | double | theta, |
iauASTROM * | astrom | ||
) |
update the Earth rotation angle
In the star-independent astrometry parameters, update only the Earth rotation angle, supplied by the caller explicitly.
[in] | theta | Earth rotation angle (radians, Note 2) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | not used |
[in] | eb | not used |
[in] | eh | not used |
[in] | em | not used |
[in] | v | not used |
[in] | bm1 | not used |
[in] | bpn | not used |
[in] | along | longitude + s' (radians) |
[in] | xpl | not used |
[in] | ypl | not used |
[in] | sphi | not used |
[in] | cphi | not used |
[in] | diurab | not used |
[in] | eral | not used |
[in] | refa | not used |
[in] | refb | not used |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | unchanged |
[out] | eb | unchanged |
[out] | eh | unchanged |
[out] | em | unchanged |
[out] | v | unchanged |
[out] | bm1 | unchanged |
[out] | bpn | unchanged |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | "local" Earth rotation angle (radians) |
[out] | refa | unchanged |
[out] | refb | unchanged |
Notes:
1) This function exists to enable sidereal-tracking applications to avoid wasteful recomputation of the bulk of the astrometry parameters: only the Earth rotation is updated.
2) For targets expressed as equinox based positions, such as classical geocentric apparent (RA,Dec), the supplied theta can be Greenwich apparent sidereal time rather than Earth rotation angle.
3) The function iauAper13 can be used instead of the present function, and starts from UT1 rather than ERA itself.
4) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
void iauAper13 | ( | double | ut11, |
double | ut12, | ||
iauASTROM * | astrom | ||
) |
update the Earth rotation angle
In the star-independent astrometry parameters, update only the Earth rotation angle. The caller provides UT1, (n.b. not UTC).
[in] | ut11 | UT1 as a 2-part Julian Date |
[in] | ut12 | UT1 as a 2-part Julian Date (Note 1) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | not used |
[in] | eb | not used |
[in] | eh | not used |
[in] | em | not used |
[in] | v | not used |
[in] | bm1 | not used |
[in] | bpn | not used |
[in] | along | longitude + s' (radians) |
[in] | xpl | not used |
[in] | ypl | not used |
[in] | sphi | not used |
[in] | cphi | not used |
[in] | diurab | not used |
[in] | eral | not used |
[in] | refa | not used |
[in] | refb | not used |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | unchanged |
[out] | eb | unchanged |
[out] | eh | unchanged |
[out] | em | unchanged |
[out] | v | unchanged |
[out] | bm1 | unchanged |
[out] | bpn | unchanged |
[out] | along | unchanged |
[out] | xpl | unchanged |
[out] | ypl | unchanged |
[out] | sphi | unchanged |
[out] | cphi | unchanged |
[out] | diurab | unchanged |
[out] | eral | "local" Earth rotation angle (radians) |
[out] | refa | unchanged |
[out] | refb | unchanged |
Notes:
1) The UT1 date (n.b. not UTC) ut11+ut12 is a Julian Date, apportioned in any convenient way between the arguments ut11 and ut12. For example, JD(UT1)=2450123.7 could be expressed in any of these ways, among others:
ut11 ut12 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. The date & time method is best matched to the algorithm used: maximum precision is delivered when the ut11 argument is for 0hrs UT1 on the day in question and the ut12 argument lies in the range 0 to 1, or vice versa.
2) If the caller wishes to provide the Earth rotation angle itself, the function iauAper can be used instead. One use of this technique is to substitute Greenwich apparent sidereal time and thereby to support equinox based transformations directly.
3) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
void iauApio | ( | double | sp, |
double | theta, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | refa, | ||
double | refb, | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
file apio.c
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between CIRS and observed coordinates. The caller supplies the Earth orientation information and the refraction constants as well as the site coordinates.
[in] | sp | the TIO locator s' (radians, Note 1) |
[in] | theta | Earth rotation angle (radians) |
[in] | elong | longitude (radians, east +ve, Note 2) |
[in] | phi | geodetic latitude (radians, Note 2) |
[in] | hm | height above ellipsoid (m, geodetic Note 2) |
[in] | xp | polar motion coordinates (radians, Note 3) |
[in] | yp | polar motion coordinates (radians, Note 3) |
[in] | refa | refraction constant A (radians, Note 4) |
[in] | refb | refraction constant B (radians, Note 4) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | unchanged |
[out] | eb | unchanged |
[out] | eh | unchanged |
[out] | em | unchanged |
[out] | v | unchanged |
[out] | bm1 | unchanged |
[out] | bpn | unchanged |
[out] | along | longitude + s' (radians) |
[out] | xpl | polar motion xp wrt local meridian (radians) |
[out] | ypl | polar motion yp wrt local meridian (radians) |
[out] | sphi | sine of geodetic latitude |
[out] | cphi | cosine of geodetic latitude |
[out] | diurab | magnitude of diurnal aberration vector |
[out] | eral | "local" Earth rotation angle (radians) |
[out] | refa | refraction constant A (radians) |
[out] | refb | refraction constant B (radians) |
Notes:
1) sp, the TIO locator s', is a tiny quantity needed only by the most precise applications. It can either be set to zero or predicted using the SOFA function iauSp00.
2) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
3) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
Internally, the polar motion is stored in a form rotated onto the local meridian.
4) The refraction constants refa and refb are for use in a dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed (i.e. refracted) zenith distance and dZ is the amount of refraction.
5) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
6) In cases where the caller does not wish to provide the Earth rotation information and refraction constants, the function iauApio13 can be used instead of the present function. This starts from UTC and weather readings etc. and computes suitable values using other SOFA functions.
7) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
8) The context structure astrom produced by this function is used by iauAtioq and iauAtoiq.
int iauApio13 | ( | double | utc1, |
double | utc2, | ||
double | dut1, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | phpa, | ||
double | tc, | ||
double | rh, | ||
double | wl, | ||
iauASTROM * | astrom | ||
) |
prepare star-independent astrometry parameters
file apio13.c
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between CIRS and observed coordinates. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
[in] | utc1 | UTC as a 2-part quasi Julian Date |
[in] | utc2 | UTC as a 2-part quasi Julian Date (Notes 1,2) |
[in] | dut1 | UT1-UTC (seconds) |
[in] | elong | longitude (radians, east +ve, Note 3) |
[in] | phi | geodetic latitude (radians, Note 3) |
[in] | hm | height above ellipsoid (m, geodetic Notes 4,6) |
[in] | xp | polar motion coordinates (radians, Note 5) |
[in] | yp | polar motion coordinates (radians, Note 5) |
[in] | phpa | pressure at the observer (hPa = mB, Note 6) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers, Note 7) |
[out] | astrom | star-independent astrometry parameters: |
[out] | pmt | unchanged |
[out] | eb | unchanged |
[out] | eh | unchanged |
[out] | em | unchanged |
[out] | v | unchanged |
[out] | bm1 | unchanged |
[out] | bpn | unchanged |
[out] | along | longitude + s' (radians) |
[out] | xpl | polar motion xp wrt local meridian (radians) |
[out] | ypl | polar motion yp wrt local meridian (radians) |
[out] | sphi | sine of geodetic latitude |
[out] | cphi | cosine of geodetic latitude |
[out] | diurab | magnitude of diurnal aberration vector |
[out] | eral | "local" Earth rotation angle (radians) |
[out] | refa | refraction constant A (radians) |
[out] | refb | refraction constant B (radians) |
1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day.
However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described.
2) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit.
4) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
5) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
Internally, the polar motion is stored in a form rotated onto the local meridian.
6) If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression
hm = -29.3 * tsl * log ( phpa / 1013.25 );
where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows:
phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
7) The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz).
8) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
9) In cases where the caller wishes to supply his own Earth rotation information and refraction constants, the function iauApc can be used instead of the present function.
10) This is one of several functions that inserts into the astrom structure star-independent parameters needed for the chain of astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
The various functions support different classes of observer and portions of the transformation chain:
functions observer transformation
iauApcg iauApcg13 geocentric ICRS <-> GCRS iauApci iauApci13 terrestrial ICRS <-> CIRS iauApco iauApco13 terrestrial ICRS <-> observed iauApcs iauApcs13 space ICRS <-> GCRS iauAper iauAper13 terrestrial update Earth rotation iauApio iauApio13 terrestrial CIRS <-> observed
Those with names ending in "13" use contemporary SOFA models to compute the various ephemerides. The others accept ephemerides supplied by the caller.
The transformation from ICRS to GCRS covers space motion, parallax, light deflection, and aberration. From GCRS to CIRS comprises frame bias and precession-nutation. From CIRS to observed takes account of Earth rotation, polar motion, diurnal aberration and parallax (unless subsumed into the ICRS <-> GCRS transformation), and atmospheric refraction.
11) The context structure astrom produced by this function is used by iauAtioq and iauAtoiq.
void iauAtci13 | ( | double | rc, |
double | dc, | ||
double | pr, | ||
double | pd, | ||
double | px, | ||
double | rv, | ||
double | date1, | ||
double | date2, | ||
double * | ri, | ||
double * | di, | ||
double * | eo | ||
) |
Transform ICRS star data, epoch J2000.0, to CIRS.
[in] | rc | ICRS right ascension at J2000.0 (radians, Note 1) |
[in] | dc | ICRS declination at J2000.0 (radians, Note 1) |
[in] | pr | RA proper motion (radians/year; Note 2) |
[in] | pd | Dec proper motion (radians/year) |
[in] | px | parallax (arcsec) |
[in] | rv | radial velocity (km/s, +ve if receding) |
[in] | date1 | TDB as a 2-part... |
[in] | date2 | ...Julian Date (Note 3) |
[out] | ri | CIRS geocentric RA (radians) |
[out] | di | CIRS geocentric Dec (radians) |
[out] | eo | equation of the origins (ERA-GST, Note 5) |
Notes:
1) Star data for an epoch other than J2000.0 (for example from the Hipparcos catalog, which has an epoch of J1991.25) will require a preliminary call to iauPmsafe before use.
2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
3) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
4) The available accuracy is better than 1 milliarcsecond, limited mainly by the precession-nutation model that is used, namely IAU 2000A/2006. Very close to solar system bodies, additional errors of up to several milliarcseconds can occur because of unmodeled light deflection; however, the Sun's contribution is taken into account, to first order. The accuracy limitations of the SOFA function iauEpv00 (used to compute Earth position and velocity) can contribute aberration errors of up to 5 microarcseconds. Light deflection at the Sun's limb is uncertain at the 0.4 mas level.
5) Should the transformation to (equinox based) apparent place be required rather than (CIO based) intermediate place, subtract the equation of the origins from the returned right ascension: RA = RI - EO. (The iauAnp function can then be applied, as
void iauAtciq | ( | double | rc, |
double | dc, | ||
double | pr, | ||
double | pd, | ||
double | px, | ||
double | rv, | ||
iauASTROM * | astrom, | ||
double * | ri, | ||
double * | di | ||
) |
Quick ICRS, epoch J2000.0, to CIRS transformation.
Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed star-independent astrometry parameters.
Use of this function is appropriate when efficiency is important and where many star positions are to be transformed for one date. The star-independent parameters can be obtained by calling one of the functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
If the parallax and proper motions are zero the iauAtciqz function can be used instead.
[in] | rc | ICRS RA at J2000.0 (radians) |
[in] | dc | ICRS Dec at J2000.0 (radians) |
[in] | pr | RA proper motion (radians/year; Note 3) |
[in] | pd | Dec proper motion (radians/year) |
[in] | px | parallax (arcsec) |
[in] | rv | radial velocity (km/s, +ve if receding) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[out] | ri | CIRS RA (radians) |
[out] | di | CIRS Dec (radians) |
Notes:
1) All the vectors are with respect to BCRS axes.
2) Star data for an epoch other than J2000.0 (for example from the Hipparcos catalog, which has an epoch of J1991.25) will require a preliminary call to iauPmsafe before use.
3) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
void iauAtciqn | ( | double | rc, |
double | dc, | ||
double | pr, | ||
double | pd, | ||
double | px, | ||
double | rv, | ||
iauASTROM * | astrom, | ||
int | n, | ||
iauLDBODY | b[], | ||
double * | ri, | ||
double * | di | ||
) |
Quick ICRS, epoch J2000.0, to CIRS transformation.
Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed star-independent astrometry parameters plus a list of light- deflecting bodies.
Use of this function is appropriate when efficiency is important and where many star positions are to be transformed for one date. The star-independent parameters can be obtained by calling one of the functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
If the only light-deflecting body to be taken into account is the Sun, the iauAtciq function can be used instead. If in addition the parallax and proper motions are zero, the iauAtciqz function can be used.
[in] | rc | ICRS RA at J2000.0 (radians) |
[in] | dc | ICRS Dec at J2000.0 (radians) |
[in] | pr | RA proper motion (radians/year; Note 3) |
[in] | pd | Dec proper motion (radians/year) |
[in] | px | parallax (arcsec) |
[in] | rv | radial velocity (km/s, +ve if receding) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[in] | n | number of bodies (Note 3) |
[in] | b | data for each of the n bodies (Notes 3,4): |
[in] | bm | mass of the body (solar masses, Note 5) |
[in] | dl | deflection limiter (Note 6) |
[in] | pv | barycentric PV of the body (au, au/day) |
[out] | ri | CIRS RA (radians) |
[out] | di | CIRS Dec (radians) |
Notes:
1) Star data for an epoch other than J2000.0 (for example from the Hipparcos catalog, which has an epoch of J1991.25) will require a preliminary call to iauPmsafe before use.
2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
3) The struct b contains n entries, one for each body to be considered. If n = 0, no gravitational light deflection will be applied, not even for the Sun.
4) The struct b should include an entry for the Sun as well as for any planet or other body to be taken into account. The entries should be in the order in which the light passes the body.
5) In the entry in the b struct for body i, the mass parameter b[i].bm can, as required, be adjusted in order to allow for such effects as quadrupole field.
6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is the angular separation (in radians) between star and body at which limiting is applied. As phi shrinks below the chosen threshold, the deflection is artificially reduced, reaching zero for phi = 0. Example values suitable for a terrestrial observer, together with masses, are as follows:
body i b[i].bm b[i].dl
Sun 1.0 6e-6 Jupiter 0.00095435 3e-9 Saturn 0.00028574 3e-10
7) For efficiency, validation of the contents of the b array is omitted. The supplied masses must be greater than zero, the position and velocity vectors must be right, and the deflection limiter greater than zero.
void iauAtciqz | ( | double | rc, |
double | dc, | ||
iauASTROM * | astrom, | ||
double * | ri, | ||
double * | di | ||
) |
Quick ICRS to CIRS transformation.
Quick ICRS to CIRS transformation, given precomputed star- independent astrometry parameters, and assuming zero parallax and proper motion.
Use of this function is appropriate when efficiency is important and where many star positions are to be transformed for one date. The star-independent parameters can be obtained by calling one of the functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
The corresponding function for the case of non-zero parallax and proper motion is iauAtciq.
[in] | rcc | ICRS astrometric RA (radians) |
[in] | dc | ICRS astrometric Dec (radians) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[out] | ri | CIRS RA (radians) |
[out] | di | CIRS Dec (radians) |
Note:
All the vectors are with respect to BCRS axes.
References:
Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd ed., University Science Books (2013).
Klioner, Sergei A., "A practical relativistic model for micro- arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003).
int iauAtco13 | ( | double | rc, |
double | dc, | ||
double | pr, | ||
double | pd, | ||
double | px, | ||
double | rv, | ||
double | utc1, | ||
double | utc2, | ||
double | dut1, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | phpa, | ||
double | tc, | ||
double | rh, | ||
double | wl, | ||
double * | aob, | ||
double * | zob, | ||
double * | hob, | ||
double * | dob, | ||
double * | rob, | ||
double * | eo | ||
) |
ICRS RA,Dec to observed place.
ICRS RA,Dec to observed place. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
SOFA models are used for the Earth ephemeris, bias-precession- nutation, Earth orientation and refraction.
[in] | rc | ICRS right ascension at J2000.0 (radians, Note 1) |
[in] | dc | ICRS declination at J2000.0 (radians, Note 1) |
[in] | pr | RA proper motion (radians/year; Note 2) |
[in] | pd | Dec proper motion (radians/year) |
[in] | px | parallax (arcsec) |
[in] | rv | radial velocity (km/s, +ve if receding) |
[in] | utc1 | UTC as a 2-part quasi Julian Date |
[in] | utc2 | UTC as a 2-part quasi Julian Date (Notes 3-4) |
[in] | dut1 | UT1-UTC (seconds, Note 5) |
[in] | elong | longitude (radians, east +ve, Note 6) |
[in] | phi | latitude (geodetic, radians, Note 6) |
[in] | hm | height above ellipsoid (m, geodetic, Notes 6,8) |
[in] | xp,yp | polar motion coordinates (radians, Note 7) |
[in] | phpa | pressure at the observer (hPa = mB, Note 8) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers, Note 9) |
[out] | aob | observed azimuth (radians: N=0,E=90) |
[out] | zob | observed zenith distance (radians) |
[out] | hob | observed hour angle (radians) |
[out] | dob | observed declination (radians) |
[out] | rob | observed right ascension (CIO-based, radians) |
[out] | eo | equation of the origins (ERA-GST) |
1) Star data for an epoch other than J2000.0 (for example from the Hipparcos catalog, which has an epoch of J1991.25) will require a preliminary call to iauPmsafe before use.
2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day.
However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described.
4) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit.
6) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
7) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
8) If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression
hm = -29.3 * tsl * log ( phpa / 1013.25 );
where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows:
phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
9) The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz).
10) The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted observed coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
Without refraction, the complementary functions iauAtco13 and iauAtoc13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees.
11) "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation.
12) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
void iauAtic13 | ( | double | ri, |
double | di, | ||
double | date1, | ||
double | date2, | ||
double * | rc, | ||
double * | dc, | ||
double * | eo | ||
) |
Transform star RA,Dec from geocentric CIRS to ICRS astrometric.
[in] | rii | CIRS geocentric RA (radians) |
[in] | di | CIRS geocentric Dec (radians) |
[in] | date1 | TDB as a 2-part... |
[in] | date2 | ...Julian Date (Note 1) |
[out] | rc | ICRS astrometric RA (radians) |
[out] | dc | ICRS astrometric Dec (radians) |
[out] | eo | equation of the origins (ERA-GST, Note 4) |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
TT can be used instead of TDB without any significant impact on accuracy.
2) Iterative techniques are used for the aberration and light deflection corrections so that the functions iauAtic13 (or iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond.
3) The available accuracy is better than 1 milliarcsecond, limited mainly by the precession-nutation model that is used, namely IAU 2000A/2006. Very close to solar system bodies, additional errors of up to several milliarcseconds can occur because of unmodeled light deflection; however, the Sun's contribution is taken into account, to first order. The accuracy limitations of the SOFA function iauEpv00 (used to compute Earth position and velocity) can contribute aberration errors of up to 5 microarcseconds. Light deflection at the Sun's limb is uncertain at the 0.4 mas level.
4) Should the transformation to (equinox based) J2000.0 mean place be required rather than (CIO based) ICRS coordinates, subtract the equation of the origins from the returned right ascension: RA = RI - EO. (The iauAnp function can then be applied, as required, to keep the result in the conventional 0-2pi range.)
void iauAticq | ( | double | ri, |
double | di, | ||
iauASTROM * | astrom, | ||
double * | rc, | ||
double * | dc | ||
) |
Quick CIRS RA,Dec to ICRS astrometric place.
Quick CIRS RA,Dec to ICRS astrometric place, given the star- independent astrometry parameters.
Use of this function is appropriate when efficiency is important and where many star positions are all to be transformed for one date. The star-independent astrometry parameters can be obtained by calling one of the functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
[in] | ri | CIRS RA (radians) |
[in] | di | CIRS Dec (radians) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[out] | rc | ICRS astrometric RA (radians) |
[out] | dc | ICRS astrometric Dec (radians) |
Notes:
1) Only the Sun is taken into account in the light deflection correction.
2) Iterative techniques are used for the aberration and light deflection corrections so that the functions iauAtic13 (or iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond.
void iauAticqn | ( | double | ri, |
double | di, | ||
iauASTROM * | astrom, | ||
int | n, | ||
iauLDBODY | b[], | ||
double * | rc, | ||
double * | dc | ||
) |
Quick CIRS to ICRS astrometric place transformation.
Quick CIRS to ICRS astrometric place transformation, given the star- independent astrometry parameters plus a list of light-deflecting bodies.
Use of this function is appropriate when efficiency is important and where many star positions are all to be transformed for one date. The star-independent astrometry parameters can be obtained by calling one of the functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
If the only light-deflecting body to be taken into account is the Sun, the iauAticq function can be used instead.
[in] | rii | CIRS RA (radians) |
[in] | di | CIRS Dec (radians) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[in] | n | number of bodies (Note 3) |
[in] | b | data for each of the n bodies (Notes 3,4): |
[in] | bm | mass of the body (solar masses, Note 5) |
[in] | dl | deflection limiter (Note 6) |
[in] | pv | barycentric PV of the body (au, au/day) |
[out] | rc | ICRS astrometric RA (radians) |
[out] | dc | ICRS astrometric Dec (radians) |
Notes:
1) Iterative techniques are used for the aberration and light deflection corrections so that the functions iauAticqn and iauAtciqn are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond.
2) If the only light-deflecting body to be taken into account is the Sun, the iauAticq function can be used instead.
3) The struct b contains n entries, one for each body to be considered. If n = 0, no gravitational light deflection will be applied, not even for the Sun.
4) The struct b should include an entry for the Sun as well as for any planet or other body to be taken into account. The entries should be in the order in which the light passes the body.
5) In the entry in the b struct for body i, the mass parameter b[i].bm can, as required, be adjusted in order to allow for such effects as quadrupole field.
6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is the angular separation (in radians) between star and body at which limiting is applied. As phi shrinks below the chosen threshold, the deflection is artificially reduced, reaching zero for phi = 0. Example values suitable for a terrestrial observer, together with masses, are as follows:
body i b[i].bm b[i].dl
Sun 1.0 6e-6 Jupiter 0.00095435 3e-9 Saturn 0.00028574 3e-10
7) For efficiency, validation of the contents of the b array is omitted. The supplied masses must be greater than zero, the position and velocity vectors must be right, and the deflection limiter greater than zero.
int iauAtio13 | ( | double | ri, |
double | di, | ||
double | utc1, | ||
double | utc2, | ||
double | dut1, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | phpa, | ||
double | tc, | ||
double | rh, | ||
double | wl, | ||
double * | aob, | ||
double * | zob, | ||
double * | hob, | ||
double * | dob, | ||
double * | rob | ||
) |
CIRS RA,Dec to observed place.
CIRS RA,Dec to observed place. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
[in] | ri | CIRS right ascension (CIO-based, radians) |
[in] | di | CIRS declination (radians) |
[in] | utc1 | UTC as a 2-part... |
[in] | utc2 | ...quasi Julian Date (Notes 1,2) |
[in] | dut1 | UT1-UTC (seconds, Note 3) |
[in] | elong | longitude (radians, east +ve, Note 4) |
[in] | phi | geodetic latitude (radians, Note 4) |
[in] | hm | height above ellipsoid (m, geodetic Notes 4,6) |
[in] | xp,yp | polar motion coordinates (radians, Note 5) |
[in] | phpa | pressure at the observer (hPa = mB, Note 6) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers, Note 7) |
[out] | aob | observed azimuth (radians: N=0,E=90) |
[out] | zob | observed zenith distance (radians) |
[out] | hob | observed hour angle (radians) |
[out] | dob | observed declination (radians) |
[out] | rob | observed right ascension (CIO-based, radians) |
Notes:
1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day.
However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described.
2) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit.
4) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
5) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
6) If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression
hm = -29.3 * tsl * log ( phpa / 1013.25 );
where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows:
phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
7) The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz).
8) "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation.
9) The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted astrometric coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
10) The complementary functions iauAtio13 and iauAtoi13 are self- consistent to better than 1 microarcsecond all over the celestial sphere.
11) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
void iauAtioq | ( | double | ri, |
double | di, | ||
iauASTROM * | astrom, | ||
double * | aob, | ||
double * | zob, | ||
double * | hob, | ||
double * | dob, | ||
double * | rob | ||
) |
Quick CIRS to observed place transformation.
Quick CIRS to observed place transformation.
Use of this function is appropriate when efficiency is important and where many star positions are all to be transformed for one date. The star-independent astrometry parameters can be obtained by calling iauApio[13] or iauApco[13].
[in] | ri | CIRS right ascension |
[in] | di | CIRS declination |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[out] | aob | observed azimuth (radians: N=0,E=90) |
[out] | zob | observed zenith distance (radians) |
[out] | hob | observed hour angle (radians) |
[out] | dob | observed declination (radians) |
[out] | rob | observed right ascension (CIO-based, radians) |
Notes:
1) This function returns zenith distance rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.
2) The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted observed coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
Without refraction, the complementary functions iauAtioq and iauAtoiq are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees.
3) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
4) The CIRS RA,Dec is obtained from a star catalog mean place by allowing for space motion, parallax, the Sun's gravitational lens effect, annual aberration and precession-nutation. For star positions in the ICRS, these effects can be applied by means of the iauAtci13 (etc.) functions. Starting from classical "mean place" systems, additional transformations will be needed first.
5) "Observed" Az,El means the position that would be seen by a perfect geodetically aligned theodolite. This is obtained from the CIRS RA,Dec by allowing for Earth orientation and diurnal aberration, rotating from equator to horizon coordinates, and then adjusting for refraction. The HA,Dec is obtained by rotating back into equatorial coordinates, and is the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation. Finally, the RA is obtained by subtracting the HA from the local ERA.
6) The star-independent CIRS-to-observed-place parameters in ASTROM may be computed with iauApio[13] or iauApco[13]. If nothing has changed significantly except the time, iauAper[13] may be used to perform the requisite adjustment to the astrom structure.
int iauAtoc13 | ( | const char * | type, |
double | ob1, | ||
double | ob2, | ||
double | utc1, | ||
double | utc2, | ||
double | dut1, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | phpa, | ||
double | tc, | ||
double | rh, | ||
double | wl, | ||
double * | rc, | ||
double * | dc | ||
) |
Observed place at a groundbased site to to ICRS astrometric RA,Dec.
Observed place at a groundbased site to to ICRS astrometric RA,Dec. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
[in] | type | type of coordinates - "R", "H" or "A" (Notes 1,2) |
[in] | ob1 | observed Az, HA or RA (radians; Az is N=0,E=90) |
[in] | ob2 | observed ZD or Dec (radians) |
[in] | utc1 | UTC as a 2-part... |
[in] | utc2 | ...quasi Julian Date (Notes 3,4) |
[in] | dut1 | UT1-UTC (seconds, Note 5) |
[in] | elong | longitude (radians, east +ve, Note 6) |
[in] | phi | geodetic latitude (radians, Note 6) |
[in] | hm | height above ellipsoid (m, geodetic Notes 6,8) |
[in] | xp,yp | polar motion coordinates (radians, Note 7) |
[in] | phpa | pressure at the observer (hPa = mB, Note 8) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers, Note 9) |
[out] | rc,dc | ICRS astrometric RA,Dec (radians) |
Notes:
1) "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation.
2) Only the first character of the type argument is significant. "R" or "r" indicates that ob1 and ob2 are the observed right ascension and declination; "H" or "h" indicates that they are hour angle (west +ve) and declination; anything else ("A" or "a" is recommended) indicates that ob1 and ob2 are azimuth (north zero, east 90 deg) and zenith distance.
3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day.
However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described.
4) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit.
6) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
7) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
8) If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression
hm = -29.3 * tsl * log ( phpa / 1013.25 );
where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows:
phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
9) The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz).
10) The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted astrometric coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
Without refraction, the complementary functions iauAtco13 and iauAtoc13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees.
11) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
int iauAtoi13 | ( | const char * | type, |
double | ob1, | ||
double | ob2, | ||
double | utc1, | ||
double | utc2, | ||
double | dut1, | ||
double | elong, | ||
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | phpa, | ||
double | tc, | ||
double | rh, | ||
double | wl, | ||
double * | ri, | ||
double * | di | ||
) |
Observed place to CIRS.
Observed place to CIRS. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
[in] | type | type of coordinates - "R", "H" or "A" (Notes 1,2) |
[in] | ob1 | observed Az, HA or RA (radians; Az is N=0,E=90) |
[in] | ob2 | observed ZD or Dec (radians) |
[in] | utc1 | UTC as a 2-part... |
[in] | utc2 | ...quasi Julian Date (Notes 3,4) |
[in] | dut1 | UT1-UTC (seconds, Note 5) |
[in] | elong | longitude (radians, east +ve, Note 6) |
[in] | phi | geodetic latitude (radians, Note 6) |
[in] | hm | height above the ellipsoid (meters, Notes 6,8) |
[in] | xp,yp | polar motion coordinates (radians, Note 7) |
[in] | phpa | pressure at the observer (hPa = mB, Note 8) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers, Note 9) |
[out] | ri | CIRS right ascension (CIO-based, radians) |
[out] | di | CIRS declination (radians) |
Notes:
1) "Observed" Az,ZD means the position that would be seen by a perfect geodetically aligned theodolite. (Zenith distance is used rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.) This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation.
2) Only the first character of the type argument is significant. "R" or "r" indicates that ob1 and ob2 are the observed right ascension and declination; "H" or "h" indicates that they are hour angle (west +ve) and declination; anything else ("A" or "a" is recommended) indicates that ob1 and ob2 are azimuth (north zero, east 90 deg) and zenith distance.
3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any convenient way between the two arguments, for example where utc1 is the Julian Day Number and utc2 is the fraction of a day.
However, JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
Applications should use the function iauDtf2d to convert from calendar date and time of day into 2-part quasi Julian Date, as it implements the leap-second-ambiguity convention just described.
4) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly one second at the end of each positive UTC leap second, introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This practice is under review, and in the future UT1-UTC may grow essentially without limit.
6) The geographical coordinates are with respect to the WGS84 reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the longitude required by the present function is east-positive (i.e. right-handed), in accordance with geographical convention.
7) The polar motion xp,yp can be obtained from IERS bulletins. The values are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians 0 and 90 deg west respectively. For many applications, xp and yp can be set to zero.
8) If hm, the height above the ellipsoid of the observing station in meters, is not known but phpa, the pressure in hPa (=mB), is available, an adequate estimate of hm can be obtained from the expression
hm = -29.3 * tsl * log ( phpa / 1013.25 );
where tsl is the approximate sea-level air temperature in K (See Astrophysical Quantities, C.W.Allen, 3rd edition, section 52). Similarly, if the pressure phpa is not known, it can be estimated from the height of the observing station, hm, as follows:
phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
Note, however, that the refraction is nearly proportional to the pressure and that an accurate phpa value is important for precise work.
9) The argument wl specifies the observing wavelength in micrometers. The transition from optical to radio is assumed to occur at 100 micrometers (about 3000 GHz).
10) The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted astrometric coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
Without refraction, the complementary functions iauAtio13 and iauAtoi13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees.
12) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
void iauAtoiq | ( | const char * | type, |
double | ob1, | ||
double | ob2, | ||
iauASTROM * | astrom, | ||
double * | ri, | ||
double * | di | ||
) |
Quick observed place to CIRS.
Quick observed place to CIRS, given the star-independent astrometry parameters.
Use of this function is appropriate when efficiency is important and where many star positions are all to be transformed for one date. The star-independent astrometry parameters can be obtained by calling iauApio[13] or iauApco[13].
[in] | type | type of coordinates: "R", "H" or "A" (Note 1) |
[in] | ob1 | observed Az, HA or RA (radians; Az is N=0,E=90) |
[in] | ob2 | observed ZD or Dec (radians) |
[in] | astrom | star-independent astrometry parameters: |
[in] | pmt | PM time interval (SSB, Julian years) |
[in] | eb | SSB to observer (vector, au) |
[in] | eh | Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[in] | v | barycentric observer velocity (vector, c) |
[in] | bm1 | sqrt(1-|v|^2): reciprocal of Lorenz factor |
[in] | bpn | bias-precession-nutation matrix |
[in] | along | longitude + s' (radians) |
[in] | xpl | polar motion xp wrt local meridian (radians) |
[in] | ypl | polar motion yp wrt local meridian (radians) |
[in] | sphi | sine of geodetic latitude |
[in] | cphi | cosine of geodetic latitude |
[in] | diurab | magnitude of diurnal aberration vector |
[in] | eral | "local" Earth rotation angle (radians) |
[in] | refa | refraction constant A (radians) |
[in] | refb | refraction constant B (radians) |
[out] | ri | CIRS right ascension (CIO-based, radians) |
[out] | di | CIRS declination (radians) |
Notes:
1) "Observed" Az,El means the position that would be seen by a perfect geodetically aligned theodolite. This is related to the observed HA,Dec via the standard rotation, using the geodetic latitude (corrected for polar motion), while the observed HA and RA are related simply through the Earth rotation angle and the site longitude. "Observed" RA,Dec or HA,Dec thus means the position that would be seen by a perfect equatorial with its polar axis aligned to the Earth's axis of rotation. By removing from the observed place the effects of atmospheric refraction and diurnal aberration, the CIRS RA,Dec is obtained.
2) Only the first character of the type argument is significant. "R" or "r" indicates that ob1 and ob2 are the observed right ascension and declination; "H" or "h" indicates that they are hour angle (west +ve) and declination; anything else ("A" or "a" is recommended) indicates that ob1 and ob2 are azimuth (north zero, east 90 deg) and zenith distance. (Zenith distance is used rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.)
3) The accuracy of the result is limited by the corrections for refraction, which use a simple A*tan(z) + B*tan^3(z) model. Providing the meteorological parameters are known accurately and there are no gross local effects, the predicted observed coordinates should be within 0.05 arcsec (optical) or 1 arcsec (radio) for a zenith distance of less than 70 degrees, better than 30 arcsec (optical or radio) at 85 degrees and better than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
Without refraction, the complementary functions iauAtioq and iauAtoiq are self-consistent to better than 1 microarcsecond all over the celestial sphere. With refraction included, consistency falls off at high zenith distances, but is still better than 0.05 arcsec at 85 degrees.
4) It is advisable to take great care with units, as even unlikely values of the input parameters are accepted and processed in accordance with the models used.
void iauBp06 | ( | double | date1, |
double | date2, | ||
double | rb[3][3], | ||
double | rp[3][3], | ||
double | rbp[3][3] | ||
) |
Frame bias and precession, IAU 2006.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rb | frame bias matrix (Note 2) |
[out] | rp | precession matrix (Note 3) |
[out] | rbp | bias-precession matrix (Note 4) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix rb transforms vectors from GCRS to mean J2000.0 by applying frame bias.
3) The matrix rp transforms vectors from mean J2000.0 to mean of date by applying precession.
4) The matrix rbp transforms vectors from GCRS to mean of date by applying frame bias then precession. It is the product rp x rb.
5) It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
void iauBpn2xy | ( | double | rbpn[3][3], |
double * | x, | ||
double * | y | ||
) |
Extract the X,Y coordinates of the Celestial Intermediate Pole.
Extract from the bias-precession-nutation matrix the X,Y coordinates of the Celestial Intermediate Pole.
[in] | rbpn | celestial-to-true matrix (Note 1) |
[out] | x,y | Celestial Intermediate Pole (Note 2) |
Notes:
1) The matrix rbpn transforms vectors from GCRS to true equator (and CIO or equinox) of date, and therefore the Celestial Intermediate Pole unit vector is the bottom row of the matrix.
2) The arguments x,y are components of the Celestial Intermediate Pole unit vector in the Geocentric Celestial Reference System.
Reference:
"Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
void iauC2i00a | ( | double | date1, |
double | date2, | ||
double | rc2i[3][3] | ||
) |
Form the celestial-to-intermediate matrix for a given date.
Form the celestial-to-intermediate matrix for a given date using the IAU 2000A precession-nutation model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rc2i | celestial-to-intermediate matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix rc2i is the first stage in the transformation from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
3) A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the iauC2i00b function.
References:
"Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2i00b | ( | double | date1, |
double | date2, | ||
double | rc2i[3][3] | ||
) |
Form the celestial-to-intermediate matrix for a given date .
Form the celestial-to-intermediate matrix for a given date using the IAU 2000B precession-nutation model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rc2i | celestial-to-intermediate matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix rc2i is the first stage in the transformation from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
3) The present function is faster, but slightly less accurate (about 1 mas), than the iauC2i00a function.
References:
"Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2i06a | ( | double | date1, |
double | date2, | ||
double | rc2i[3][3] | ||
) |
Form the celestial-to-intermediate matrix for a given date.
Form the celestial-to-intermediate matrix for a given date using the IAU 2006 precession and IAU 2000A nutation models.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rc2i | celestial-to-intermediate matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix rc2i is the first stage in the transformation from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
= RC2T * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
References:
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
void iauC2ibpn | ( | double | date1, |
double | date2, | ||
double | rbpn[3][3], | ||
double | rc2i[3][3] | ||
) |
Form the celestial-to-intermediate matrix for a given date.
Form the celestial-to-intermediate matrix for a given date given the bias-precession-nutation matrix. IAU 2000.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[in] | rbpn | celestial-to-true matrix (Note 2) |
[out] | rc2i | celestial-to-intermediate matrix (Note 3) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix rbpn transforms vectors from GCRS to true equator (and CIO or equinox) of date. Only the CIP (bottom row) is used.
3) The matrix rc2i is the first stage in the transformation from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
= RC2T * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
4) Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
References: "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2ixy | ( | double | date1, |
double | date2, | ||
double | x, | ||
double | y, | ||
double | rc2i[3][3] | ||
) |
Form the celestial to intermediate-frame-of-date matrix.
Form the celestial to intermediate-frame-of-date matrix for a given date when the CIP X,Y coordinates are known. IAU 2000.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[in] | x,y | Celestial Intermediate Pole (Note 2) |
[out] | rc2i | celestial-to-intermediate matrix (Note 3) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
3) The matrix rc2i is the first stage in the transformation from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
= RC2T * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
4) Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2ixys | ( | double | x, |
double | y, | ||
double | s, | ||
double | rc2i[3][3] | ||
) |
Form the celestial to intermediate-frame-of-date matrix.
Form the celestial to intermediate-frame-of-date matrix given the CIP X,Y and the CIO locator s.
[in] | x,y | Celestial Intermediate Pole (Note 1) |
[in] | s | the CIO locator s (Note 2) |
[out] | rc2i | celestial-to-intermediate matrix (Note 3) |
Notes:
1) The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
2) The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
3) The matrix rc2i is the first stage in the transformation from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
= RC2T * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2t00a | ( | double | tta, |
double | ttb, | ||
double | uta, | ||
double | utb, | ||
double | xp, | ||
double | yp, | ||
double | rc2t[3][3] | ||
) |
Form the celestial to terrestrial matrix.
Form the celestial to terrestrial matrix given the date, the UT1 and the polar motion, using the IAU 2000A nutation model.
[in] | tta,ttb | TT as a 2-part Julian Date (Note 1) |
[in] | uta,utb | UT1 as a 2-part Julian Date (Note 1) |
[in] | xp,yp | coordinates of the pole (radians, Note 2) |
[out] | rc2t | celestial-to-terrestrial matrix (Note 3) |
Notes:
1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, apportioned in any convenient way between the arguments uta and utb. For example, JD(UT1)=2450123.7 could be expressed in any of these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. In the case of uta,utb, the date & time method is best matched to the Earth rotation angle algorithm used: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The arguments xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians to 0 and 90 deg west respectively.
3) The matrix rc2t transforms from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), RC2I is the celestial-to-intermediate matrix, ERA is the Earth rotation angle and RPOM is the polar motion matrix.
4) A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the iauC2t00b function.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2t00b | ( | double | tta, |
double | ttb, | ||
double | uta, | ||
double | utb, | ||
double | xp, | ||
double | yp, | ||
double | rc2t[3][3] | ||
) |
Form the celestial to terrestrial matrix.
Form the celestial to terrestrial matrix given the date, the UT1 and the polar motion, using the IAU 2000B nutation model.
[in] | tta,ttb | TT as a 2-part Julian Date (Note 1) |
[in] | uta,utb | UT1 as a 2-part Julian Date (Note 1) |
[in] | xp,yp | coordinates of the pole (radians, Note 2) |
[out] | rc2t | celestial-to-terrestrial matrix (Note 3) |
Notes:
1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, apportioned in any convenient way between the arguments uta and utb. For example, JD(UT1)=2450123.7 could be expressed in any of these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. In the case of uta,utb, the date & time method is best matched to the Earth rotation angle algorithm used: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The arguments xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians to 0 and 90 deg west respectively.
3) The matrix rc2t transforms from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), RC2I is the celestial-to-intermediate matrix, ERA is the Earth rotation angle and RPOM is the polar motion matrix.
4) The present function is faster, but slightly less accurate (about 1 mas), than the iauC2t00a function.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2t06a | ( | double | tta, |
double | ttb, | ||
double | uta, | ||
double | utb, | ||
double | xp, | ||
double | yp, | ||
double | rc2t[3][3] | ||
) |
Form the celestial to terrestrial matrix.
Form the celestial to terrestrial matrix given the date, the UT1 and the polar motion, using the IAU 2006 precession and IAU 2000A nutation models.
[in] | tta,ttb | TT as a 2-part Julian Date (Note 1) |
[in] | uta,utb | UT1 as a 2-part Julian Date (Note 1) |
[in] | xp,yp | coordinates of the pole (radians, Note 2) |
[out] | rc2t | celestial-to-terrestrial matrix (Note 3) |
Notes:
1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, apportioned in any convenient way between the arguments uta and utb. For example, JD(UT1)=2450123.7 could be expressed in any of these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. In the case of uta,utb, the date & time method is best matched to the Earth rotation angle algorithm used: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The arguments xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians to 0 and 90 deg west respectively.
3) The matrix rc2t transforms from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), RC2I is the celestial-to-intermediate matrix, ERA is the Earth rotation angle and RPOM is the polar motion matrix.
Reference:
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
void iauC2tcio | ( | double | rc2i[3][3], |
double | era, | ||
double | rpom[3][3], | ||
double | rc2t[3][3] | ||
) |
Assemble the celestial to terrestrial matrix.
Assemble the celestial to terrestrial matrix from CIO-based components (the celestial-to-intermediate matrix, the Earth Rotation Angle and the polar motion matrix).
[in] | rc2i | celestial-to-intermediate matrix |
[in] | era | Earth rotation angle (radians) |
[in] | rpom | polar-motion matrix |
[out] | rc2t | celestial-to-terrestrial matrix |
Notes:
1) This function constructs the rotation matrix that transforms vectors in the celestial system into vectors in the terrestrial system. It does so starting from precomputed components, namely the matrix which rotates from celestial coordinates to the intermediate frame, the Earth rotation angle and the polar motion matrix. One use of the present function is when generating a series of celestial-to-terrestrial matrices where only the Earth Rotation Angle changes, avoiding the considerable overhead of recomputing the precession-nutation more often than necessary to achieve given accuracy objectives.
2) The relationship between the arguments is as follows:
[TRS] = RPOM * R_3(ERA) * rc2i * [CRS] = rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003).
Reference:
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
void iauC2teqx | ( | double | rbpn[3][3], |
double | gst, | ||
double | rpom[3][3], | ||
double | rc2t[3][3] | ||
) |
Assemble the celestial to terrestrial matrix.
Assemble the celestial to terrestrial matrix from equinox-based components (the celestial-to-true matrix, the Greenwich Apparent Sidereal Time and the polar motion matrix).
[in] | rbpn | celestial-to-true matrix |
[in] | gst | Greenwich (apparent) Sidereal Time (radians) |
[in] | rpom | polar-motion matrix |
[out] | rc2t | celestial-to-terrestrial matrix (Note 2) |
Notes:
1) This function constructs the rotation matrix that transforms vectors in the celestial system into vectors in the terrestrial system. It does so starting from precomputed components, namely the matrix which rotates from celestial coordinates to the true equator and equinox of date, the Greenwich Apparent Sidereal Time and the polar motion matrix. One use of the present function is when generating a series of celestial-to-terrestrial matrices where only the Sidereal Time changes, avoiding the considerable overhead of recomputing the precession-nutation more often than necessary to achieve given accuracy objectives.
2) The relationship between the arguments is as follows:
[TRS] = rpom * R_3(gst) * rbpn * [CRS] = rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003).
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2tpe | ( | double | tta, |
double | ttb, | ||
double | uta, | ||
double | utb, | ||
double | dpsi, | ||
double | deps, | ||
double | xp, | ||
double | yp, | ||
double | rc2t[3][3] | ||
) |
Form the celestial to terrestrial matrix.
Form the celestial to terrestrial matrix given the date, the UT1, the nutation and the polar motion. IAU 2000.
[in] | tta,ttb | TT as a 2-part Julian Date (Note 1) |
[in] | uta,utb | UT1 as a 2-part Julian Date (Note 1) |
[in] | dpsi,deps | nutation (Note 2) |
[in] | xp,yp | coordinates of the pole (radians, Note 3) |
[out] | rc2t | celestial-to-terrestrial matrix (Note 4) |
Notes:
1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, apportioned in any convenient way between the arguments uta and utb. For example, JD(UT1)=2450123.7 could be expressed in any of these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. In the case of uta,utb, the date & time method is best matched to the Earth rotation angle algorithm used: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The caller is responsible for providing the nutation components; they are in longitude and obliquity, in radians and are with respect to the equinox and ecliptic of date. For high-accuracy applications, free core nutation should be included as well as any other relevant corrections to the position of the CIP.
3) The arguments xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians to 0 and 90 deg west respectively.
4) The matrix rc2t transforms from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(GST) * RBPN * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), RBPN is the bias-precession-nutation matrix, GST is the Greenwich (apparent) Sidereal Time and RPOM is the polar motion matrix.
5) Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauC2txy | ( | double | tta, |
double | ttb, | ||
double | uta, | ||
double | utb, | ||
double | x, | ||
double | y, | ||
double | xp, | ||
double | yp, | ||
double | rc2t[3][3] | ||
) |
Form the celestial to terrestrial matrix.
Form the celestial to terrestrial matrix given the date, the UT1, the CIP coordinates and the polar motion. IAU 2000.
[in] | tta,ttb | TT as a 2-part Julian Date (Note 1) |
[in] | uta,utb | UT1 as a 2-part Julian Date (Note 1) |
[in] | x,y | Celestial Intermediate Pole (Note 2) |
[in] | xp,yp | coordinates of the pole (radians, Note 3) |
[out] | rc2t | celestial-to-terrestrial matrix (Note 4) |
Notes:
1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates, apportioned in any convenient way between the arguments uta and utb. For example, JD(UT1)=2450123.7 could be expressed in any o these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. In the case of uta,utb, the date & time method is best matched to the Earth rotation angle algorithm used: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
3) The arguments xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians to 0 and 90 deg west respectively.
4) The matrix rc2t transforms from celestial to terrestrial coordinates:
[TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
= rc2t * [CRS]
where [CRS] is a vector in the Geocentric Celestial Reference System and [TRS] is a vector in the International Terrestrial Reference System (see IERS Conventions 2003), ERA is the Earth Rotation Angle and RPOM is the polar motion matrix.
5) Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
int iauCal2jd | ( | int | iy, |
int | im, | ||
int | id, | ||
double * | djm0, | ||
double * | djm | ||
) |
Gregorian Calendar to Julian Date.
[in] | iy,im,id | year, month, day in Gregorian calendar (Note 1) |
[out] | djm0 | MJD zero-point: always 2400000.5 |
[out] | djm | Modified Julian Date for 0 hrs |
Notes:
1) The algorithm used is valid from -4800 March 1, but this implementation rejects dates before -4799 January 1.
2) The Julian Date is returned in two pieces, in the usual SOFA manner, which is designed to preserve time resolution. The Julian Date is available as a single number by adding djm0 and djm.
3) In early eras the conversion is from the "Proleptic Gregorian Calendar"; no account is taken of the date(s) of adoption of the Gregorian Calendar, nor is the AD/BC numbering convention observed.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 12.92 (p604).
int iauD2dtf | ( | const char * | scale, |
int | ndp, | ||
double | d1, | ||
double | d2, | ||
int * | iy, | ||
int * | im, | ||
int * | id, | ||
int | ihmsf[4] | ||
) |
Format for output a 2-part Julian Date.
Format for output a 2-part Julian Date (or in the case of UTC a quasi-JD form that includes special provision for leap seconds).
[in] | scale | time scale ID (Note 1) |
[in] | ndp | resolution (Note 2) |
[in] | d1,d2 | time as a 2-part Julian Date (Notes 3,4) |
[out] | iy,im,id | year, month, day in Gregorian calendar (Note 5) |
[out] | ihmsf | hours, minutes, seconds, fraction (Note 1) |
Notes:
1) scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4).
2) ndp is the number of decimal places in the seconds field, and can have negative as well as positive values, such as:
* ndp resolution * -4 1 00 00 * -3 0 10 00 * -2 0 01 00 * -1 0 00 10 * 0 0 00 01 * 1 0 00 00.1 * 2 0 00 00.01 * 3 0 00 00.001 *
The limits are platform dependent, but a safe range is -5 to +9.
3) d1+d2 is Julian Date, apportioned in any convenient way between the two arguments, for example where d1 is the Julian Day Number and d2 is the fraction of a day. In the case of UTC, where the use of JD is problematical, special conventions apply: see the next note.
4) JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The SOFA internal convention is that the quasi-JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era there were smaller jumps (in either direction) each time the linear UTC(TAI) expression was changed, and these "mini-leaps" are also included in the SOFA convention.
5) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
6) For calendar conventions and limitations, see iauCal2jd.
int iauDat | ( | int | iy, |
int | im, | ||
int | id, | ||
double | fd, | ||
double * | deltat | ||
) |
For a given UTC date, calculate delta(AT) = TAI-UTC.
:------------------------------------------: : : : IMPORTANT : : : : A new version of this function must be : : produced whenever a new leap second is : : announced. There are four items to : : change on each such occasion: : : : : 1) A new line must be added to the set : : of statements that initialize the : : array "changes". : : : : 2) The constant IYV must be set to the : : current year. : : : : 3) The "Latest leap second" comment : : below must be set to the new leap : : second date. : : : : 4) The "This revision" comment, later, : : must be set to the current date. : : : : Change (2) must also be carried out : : whenever the function is re-issued, : : even if no leap seconds have been : : added. : : : : Latest leap second: 2015 June 30 : : : :__________________________________________:
[in] | iy | UTC: year (Notes 1 and 2) |
[in] | im | month (Note 2) |
[in] | id | day (Notes 2 and 3) |
[in] | fd | fraction of day (Note 4) |
[out] | deltat | TAI minus UTC, seconds |
Notes:
1) UTC began at 1960 January 1.0 (JD 2436934.5) and it is improper to call the function with an earlier date. If this is attempted, zero is returned together with a warning status.
Because leap seconds cannot, in principle, be predicted in advance, a reliable check for dates beyond the valid range is impossible. To guard against gross errors, a year five or more after the release year of the present function (see the constant IYV) is considered dubious. In this case a warning status is returned but the result is computed in the normal way.
For both too-early and too-late years, the warning status is +1. This is distinct from the error status -1, which signifies a year so early that JD could not be computed.
2) If the specified date is for a day which ends with a leap second, the UTC-TAI value returned is for the period leading up to the leap second. If the date is for a day which begins as a leap second ends, the UTC-TAI returned is for the period following the leap second.
3) The day number must be in the normal calendar range, for example 1 through 30 for April. The "almanac" convention of allowing such dates as January 0 and December 32 is not supported in this function, in order to avoid confusion near leap seconds.
4) The fraction of day is used only for dates before the introduction of leap seconds, the first of which occurred at the end of 1971. It is tested for validity (0 to 1 is the valid range) even if not used; if invalid, zero is used and status -4 is returned. For many applications, setting fd to zero is acceptable; the resulting error is always less than 3 ms (and occurs only pre-1972).
5) The status value returned in the case where there are multiple errors refers to the first error detected. For example, if the month and day are 13 and 32 respectively, status -2 (bad month) will be returned. The "internal error" status refers to a case that is impossible but causes some compilers to issue a warning.
6) In cases where a valid result is not available, zero is returned.
References:
1) For dates from 1961 January 1 onwards, the expressions from the file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used.
2) The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of the 1992 Explanatory Supplement.
int iauDtf2d | ( | const char * | scale, |
int | iy, | ||
int | im, | ||
int | id, | ||
int | ihr, | ||
int | imn, | ||
double | sec, | ||
double * | d1, | ||
double * | d2 | ||
) |
Encode date and time fields into 2-part Julian Date.
Encode date and time fields into 2-part Julian Date (or in the case of UTC a quasi-JD form that includes special provision for leap seconds).
[in] | scale | time scale ID (Note 1) |
[in] | iy,im,id | year, month, day in Gregorian calendar (Note 2) |
[in] | ihr,imn | hour, minute |
[in] | sec | seconds |
[out] | d1,d2 | 2-part Julian Date (Notes 3,4) |
Notes:
1) scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4).
2) For calendar conventions and limitations, see iauCal2jd.
3) The sum of the results, d1+d2, is Julian Date, where normally d1 is the Julian Day Number and d2 is the fraction of a day. In the case of UTC, where the use of JD is problematical, special conventions apply: see the next note.
4) JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The SOFA internal convention is that the quasi-JD day represents UTC days whether the length is 86399, 86400 or 86401 SI seconds. In the 1960-1972 era there were smaller jumps (in either direction) each time the linear UTC(TAI) expression was changed, and these "mini-leaps" are also included in the SOFA convention.
5) The warning status "time is after end of day" usually means that the sec argument is greater than 60.0. However, in a day ending in a leap second the limit changes to 61.0 (or 59.0 in the case of a negative leap second).
6) The warning status "dubious year" flags UTCs that predate the introduction of the time scale or that are too far in the future to be trusted. See iauDat for further details.
7) Only in the case of continuous and regular time scales (TAI, TT, TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly speaking. In the other cases (UT1 and UTC) the result must be used with circumspection; in particular the difference between two such results cannot be interpreted as a precise time interval.
int iauEceq06 | ( | double | date1, |
double | date2, | ||
double | dl, | ||
double | db, | ||
double * | dr, | ||
double * | dd | ||
) |
Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using the IAU 2006 precession model.
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method) *
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
3) The transformation is approximately that from ecliptic longitude and latitude (mean equinox and ecliptic of date) to mean J2000.0 right ascension and declination, with only frame bias (always less than 25 mas) to disturb this classical picture.
[in] | date1 | TT as a 2-part Julian date |
[in] | date2 | TT as a 2-part Julian date |
[in] | dl | ecliptic longitute (radians) |
[in] | db | ecliptic latitude (radians) |
int iauEcm06 | ( | double | date1, |
double | date2, | ||
double | rm[3][3] | ||
) |
ICRS equatorial to ecliptic rotation matrix, IAU 2006.
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method) *
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
1) The matrix is in the sense
E_ep = rm x P_ICRS,
where P_ICRS is a vector with respect to ICRS right ascension and declination axes and E_ep is the same vector with respect to the (inertial) ecliptic and equinox of date.
2) P_ICRS is a free vector, merely a direction, typically of unit magnitude, and not bound to any particular spatial origin, such as the Earth, Sun or SSB. No assumptions are made about whether it represents starlight and embodies astrometric effects such as parallax or aberration. The transformation is approximately that between mean J2000.0 right ascension and declination and ecliptic longitude and latitude, with only frame bias (always less than 25 mas) to disturb this classical picture.
[in] | date1 | TT as a 2-part Julian date |
[in] | date2 | TT as a 2-part Julian date |
[out] | rm | ICRS to ecliptic rotation matrix |
double iauEe00a | ( | double | date1, |
double | date2 | ||
) |
Equation of the equinoxes.
Equation of the equinoxes, compatible with IAU 2000 resolutions.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
3) The result is compatible with the IAU 2000 resolutions. For further details, see IERS Conventions 2003 and Capitaine et al. (2002).
References:
Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to implement the IAU 2000 definition of UT1", Astronomy & Astrophysics, 406, 1135-1149 (2003).
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004).
double iauEe00b | ( | double | date1, |
double | date2 | ||
) |
Equation of the equinoxes.
Equation of the equinoxes, compatible with IAU 2000 resolutions but using the truncated nutation model IAU 2000B.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
3) The result is compatible with the IAU 2000 resolutions except that accuracy has been compromised for the sake of speed. For further details, see McCarthy & Luzum (2001), IERS Conventions 2003 and Capitaine et al. (2003).
References:
Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to implement the IAU 2000 definition of UT1", Astronomy & Astrophysics, 406, 1135-1149 (2003)
McCarthy, D.D. & Luzum, B.J., "An abridged model of the precession-nutation of the celestial pole", Celestial Mechanics & Dynamical Astronomy, 85, 37-49 (2003)
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
double iauEe06a | ( | double | date1, |
double | date2 | ||
) |
Equation of the equinoxes.
Equation of the equinoxes, compatible with IAU 2000 resolutions and IAU 2006/2000A precession-nutation.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
Reference:
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
double iauEo06a | ( | double | date1, |
double | date2 | ||
) |
Equation of the origins.
Equation of the origins, IAU 2006 precession and IAU 2000A nutation.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The equation of the origins is the distance between the true equinox and the celestial intermediate origin and, equivalently, the difference between Earth rotation angle and Greenwich apparent sidereal time (ERA-GST). It comprises the precession (since J2000.0) in right ascension plus the equation of the equinoxes (including the small correction terms).
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
double iauEors | ( | double | rnpb[3][3], |
double | s | ||
) |
Equation of the origins.
Equation of the origins, given the classical NPB matrix and the quantity s.
[in] | rnpb | classical nutation x precession x bias matrix |
[in] | s | the quantity s (the CIO locator) |
Notes:
1) The equation of the origins is the distance between the true equinox and the celestial intermediate origin and, equivalently, the difference between Earth rotation angle and Greenwich apparent sidereal time (ERA-GST). It comprises the precession (since J2000.0) in right ascension plus the equation of the equinoxes (including the small correction terms).
2) The algorithm is from Wallace & Capitaine (2006).
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 Wallace, P. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
double iauEpb | ( | double | dj1, |
double | dj2 | ||
) |
Julian Date to Besselian Epoch.
[in] | dj1,dj2 | Julian Date (see note) |
Note:
The Julian Date is supplied in two pieces, in the usual SOFA manner, which is designed to preserve time resolution. The Julian Date is available as a single number by adding dj1 and dj2. The maximum resolution is achieved if dj1 is 2451545.0 (J2000.0).
Reference:
Lieske, J.H., 1979. Astron.Astrophys., 73, 282.
void iauEpb2jd | ( | double | epb, |
double * | djm0, | ||
double * | djm | ||
) |
Besselian Epoch to Julian Date.
[in] | epb | Besselian Epoch (e.g. 1957.3) |
[out] | djm0 | MJD zero-point: always 2400000.5 |
[out] | djm | Modified Julian Date |
Note:
The Julian Date is returned in two pieces, in the usual SOFA manner, which is designed to preserve time resolution. The Julian Date is available as a single number by adding djm0 and djm.
Reference:
Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
double iauEpj | ( | double | dj1, |
double | dj2 | ||
) |
Julian Date to Julian Epoch.
[in] | dj1,dj2 | Julian Date (see note) |
Note:
The Julian Date is supplied in two pieces, in the usual SOFA manner, which is designed to preserve time resolution. The Julian Date is available as a single number by adding dj1 and dj2. The maximum resolution is achieved if dj1 is 2451545.0 (J2000.0).
Reference:
Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
void iauEpj2jd | ( | double | epj, |
double * | djm0, | ||
double * | djm | ||
) |
Julian Epoch to Julian Date.
[in] | epj | Julian Epoch (e.g. 1996.8) |
[out] | djm0 | MJD zero-point: always 2400000.5 |
[out] | djm | Modified Julian Date |
Note:
The Julian Date is returned in two pieces, in the usual SOFA manner, which is designed to preserve time resolution. The Julian Date is available as a single number by adding djm0 and djm.
Reference:
Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
int iauEpv00 | ( | double | date1, |
double | date2, | ||
double | pvh[2][3], | ||
double | pvb[2][3] | ||
) |
Earth position and velocity.
Earth position and velocity, heliocentric and barycentric, with respect to the Barycentric Celestial Reference System.
[in] | date1,date2 | TDB date (Note 1) |
[out] | pvh | heliocentric Earth position/velocity |
[out] | pvb | barycentric Earth position/velocity |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. However, the accuracy of the result is more likely to be limited by the algorithm itself than the way the date has been expressed.
n.b. TT can be used instead of TDB in most applications.
2) On return, the arrays pvh and pvb contain the following:
pvh[0][0] x } pvh[0][1] y } heliocentric position, AU pvh[0][2] z } pvh[1][0] xdot } pvh[1][1] ydot } heliocentric velocity, AU/d pvh[1][2] zdot } pvb[0][0] x } pvb[0][1] y } barycentric position, AU pvb[0][2] z } pvb[1][0] xdot } pvb[1][1] ydot } barycentric velocity, AU/d pvb[1][2] zdot }
The vectors are with respect to the Barycentric Celestial Reference System. The time unit is one day in TDB.
3) The function is a SIMPLIFIED SOLUTION from the planetary theory VSOP2000 (X. Moisson, P. Bretagnon, 2001, Celes. Mechanics & Dyn. Astron., 80, 3/4, 205-213) and is an adaptation of original Fortran code supplied by P. Bretagnon (private comm., 2000).
4) Comparisons over the time span 1900-2100 with this simplified solution and the JPL DE405 ephemeris give the following results:
RMS max Heliocentric: position error 3.7 11.2 km velocity error 1.4 5.0 mm/s Barycentric: position error 4.6 13.4 km velocity error 1.4 4.9 mm/s
Comparisons with the JPL DE406 ephemeris show that by 1800 and 2200 the position errors are approximately double their 1900-2100 size. By 1500 and 2500 the deterioration is a factor of 10 and by 1000 and 3000 a factor of 60. The velocity accuracy falls off at about half that rate.
5) It is permissible to use the same array for pvh and pvb, which will receive the barycentric values.
void iauEqec06 | ( | double | date1, |
double | date2, | ||
double | dr, | ||
double | dd, | ||
double * | dl, | ||
double * | db | ||
) |
Transformation from ICRS equatorial coordinates to ecliptic coordinates.
Transformation from ICRS equatorial coordinates to ecliptic coordinates (mean equinox and ecliptic of date) using IAU 2006 precession model. 1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
3) The transformation is approximately that from mean J2000.0 right ascension and declination to ecliptic longitude and latitude (mean equinox and ecliptic of date), with only frame bias (always less than 25 mas) to disturb this classical picture.
[in] | data1 | TT as a 2-part Julian date |
[in] | data2 | TT as a 2-part Julian date |
[in] | dr | ICRS right ascension (radians) |
[in] | dd | ICRS right declination (radians) |
[out] | dl | ecliptic longitute (radians) |
[out] | db | ecliptic latitude (radians) |
void iauFk425 | ( | double | r1950, |
double | d1950, | ||
double | dr1950, | ||
double | dd1950, | ||
double | p1950, | ||
double | v1950, | ||
double * | r2000, | ||
double * | d2000, | ||
double * | dr2000, | ||
double * | dd2000, | ||
double * | p2000, | ||
double * | v2000 | ||
) |
Convert B1950.0 FK4 star catalog data to J2000.0 FK5.Notes:
1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, and are per year rather than per century.
2) The conversion is somewhat complicated, for several reasons:
. Change of standard epoch from B1950.0 to J2000.0.
. An intermediate transition date of 1984 January 1.0 TT.
. A change of precession model.
. Change of time unit for proper motion (tropical to Julian).
. FK4 positions include the E-terms of aberration, to simplify the hand computation of annual aberration. FK5 positions assume a rigorous aberration computation based on the Earth's barycentric velocity.
. The E-terms also affect proper motions, and in particular cause objects at large distances to exhibit fictitious proper motions.
The algorithm is based on Smith et al. (1989) and Yallop et al. (1989), which presented a matrix method due to Standish (1982) as developed by Aoki et al. (1983), using Kinoshita's development of Andoyer's post-Newcomb precession. The numerical constants from Seidelmann (1992) are used canonically.
3) Conversion from B1950.0 FK4 to J2000.0 FK5 only is provided for. Conversions for different epochs and equinoxes would require additional treatment for precession, proper motion and E-terms.
4) In the FK4 catalog the proper motions of stars within 10 degrees of the poles do not embody differential E-terms effects and should, strictly speaking, be handled in a different manner from stars outside these regions. However, given the general lack of homogeneity of the star data available for routine astrometry, the difficulties of handling positions that may have been determined from astrometric fields spanning the polar and non- polar regions, the likelihood that the differential E-terms effect was not taken into account when allowing for proper motion in past astrometry, and the undesirability of a discontinuity in the algorithm, the decision has been made in this SOFA algorithm to include the effects of differential E-terms on the proper motions for all stars, whether polar or not. At epoch J2000.0, and measuring "on the sky" rather than in terms of RA change, the errors resulting from this simplification are less than 1 milliarcsecond in position and 1 milliarcsecond per century in proper motion.
[in] | r1950 | B1950.0 RA (rad) |
[in] | d1950 | B1950.0 Dec (rad) |
[in] | dr1950 | B1950.0 proper motion (rad/trop.yr) |
[in] | dd1950 | B1950.0 proper motion (rad/trop.yr) |
[in] | p1950 | parallax (arcsec) |
[in] | v1950 | radial velocity (km/s, +ve = moving away) |
[out] | r2000 | J2000.0 RA (rad) |
[out] | d2000 | J2000.0 Dec (rad) |
[out] | dr2000 | J2000.0 proper motion (rad/Jul.yr) |
[out] | dd2000 | J2000.0 proper motion (rad/Jul.yr) |
[out] | p2000 | J2000.0 parallax (arcsec) |
[out] | v2000 | J2000.0 radial velocity (km/s, +ve = moving away) |
iauFk45z | ( | double | r1950, |
double | d1950, | ||
double | bepoch, | ||
double * | r2000, | ||
double * | d2000 | ||
) |
Convert a B1950.0 FK4 star position to J2000.0 FK5.Convert a B1950.0 FK4 star position to J2000.0 FK5, assuming zero proper motion in the FK5 system. This function converts a star's catalog data from the old FK4 (Bessel-Newcomb) system to the later IAU 1976 FK5 (Fricke) system, in such a way that the FK5 proper motion is zero. Because such a star has, in general, a non-zero proper motion in the FK4 system, the routine requires the epoch at which the position in the FK4 system was determined.
Notes:
1) The epoch bepoch is strictly speaking Besselian, but if a Julian epoch is supplied the result will be affected only to a negligible extent.
2) The method is from Appendix 2 of Aoki et al. (1983), but using the constants of Seidelmann (1992). See the routine iauFk425 for a general introduction to the FK4 to FK5 conversion.
3) Conversion from equinox B1950.0 FK4 to equinox J2000.0 FK5 only is provided for. Conversions for different starting and/or ending epochs would require additional treatment for precession, proper motion and E-terms.
4) In the FK4 catalog the proper motions of stars within 10 degrees of the poles do not embody differential E-terms effects and should, strictly speaking, be handled in a different manner from stars outside these regions. However, given the general lack of homogeneity of the star data available for routine astrometry, the difficulties of handling positions that may have been determined from astrometric fields spanning the polar and non- polar regions, the likelihood that the differential E-terms effect was not taken into account when allowing for proper motion in past astrometry, and the undesirability of a discontinuity in the algorithm, the decision has been made in this SOFA algorithm to include the effects of differential E-terms on the proper motions for all stars, whether polar or not. At epoch 2000.0, and measuring "on the sky" rather than in terms of RA change, the errors resulting from this simplification are less than 1 milliarcsecond in position and 1 milliarcsecond per century in proper motion.
[in] | r1950 | B1950.0 FK4 RA at epoch (rad) |
[in] | d1950 | B1950.0 FK4 Dec at epoch (rad) |
[in] | bepoch | Besselian epoch (eg. 1979.3D0) |
[out] | r2000 | J2000.0 FK5 RA (rad) |
[out] | d2000 | J2000.0 FK5 Dec (rad) |
void iauFk524 | ( | double | r2000, |
double | d2000, | ||
double | dr2000, | ||
double | dd2000, | ||
double | p2000, | ||
double | v2000, | ||
double * | r1950, | ||
double * | d1950, | ||
double * | dr1950, | ||
double * | dd1950, | ||
double * | p1950, | ||
double * | v1950 | ||
) |
Convert J2000.0 FK5 star catalog data to B1950.0 FK4.Notes:
1) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, and are per year rather than per century.
2) The conversion is somewhat complicated, for several reasons:
. Change of standard epoch from J2000.0 to B1950.0.
. An intermediate transition date of 1984 January 1.0 TT.
. A change of precession model.
. Change of time unit for proper motion (Julian to tropical).
. FK4 positions include the E-terms of aberration, to simplify the hand computation of annual aberration. FK5 positions assume a rigorous aberration computation based on the Earth's barycentric velocity.
. The E-terms also affect proper motions, and in particular cause objects at large distances to exhibit fictitious proper motions.
The algorithm is based on Smith et al. (1989) and Yallop et al. (1989), which presented a matrix method due to Standish (1982) as developed by Aoki et al. (1983), using Kinoshita's development of Andoyer's post-Newcomb precession. The numerical constants from Seidelmann (1992) are used canonically.
4) In the FK4 catalog the proper motions of stars within 10 degrees of the poles do not embody differential E-terms effects and should, strictly speaking, be handled in a different manner from stars outside these regions. However, given the general lack of homogeneity of the star data available for routine astrometry, the difficulties of handling positions that may have been determined from astrometric fields spanning the polar and non- polar regions, the likelihood that the differential E-terms effect was not taken into account when allowing for proper motion in past astrometry, and the undesirability of a discontinuity in the algorithm, the decision has been made in this SOFA algorithm to include the effects of differential E-terms on the proper motions for all stars, whether polar or not. At epoch J2000.0, and measuring "on the sky" rather than in terms of RA change, the errors resulting from this simplification are less than 1 milliarcsecond in position and 1 milliarcsecond per century in proper motion.
[in] | r2000 | J2000.0 RA (rad) |
[in] | d2000 | J2000.0 Dec (rad) |
[in] | dr2000 | J2000.0 proper motion (rad/Jul.yr) |
[in] | dd2000 | J2000.0 proper motion (rad/Jul.yr) |
[in] | p2000 | J2000.0 parallax (arcsec) |
[in] | v2000 | J2000.0 radial velocity (km/s, +ve = moving away) |
[out] | r1950 | B1950.0 RA (rad) |
[out] | d1950 | B1950.0 Dec (rad) |
[out] | dr1950 | B1950.0 proper motion (rad/trop.yr) |
[out] | dd1950 | B1950.0 proper motion (rad/trop.yr) |
[out] | p1950 | parallax (arcsec) |
[out] | v1950 | radial velocity (km/s, +ve = moving away) |
References:
Aoki, S. et al., 1983, "Conversion matrix of epoch B1950.0 FK4-based positions of stars to epoch J2000.0 positions in accordance with the new IAU resolutions". Astron.Astrophys. 128, 263-267.
Seidelmann, P.K. (ed), 1992, "Explanatory Supplement to the Astronomical Almanac", ISBN 0-935702-68-7.
Smith, C.A. et al., 1989, "The transformation of astrometric catalog systems to the equinox J2000.0". Astron.J. 97, 265.
Standish, E.M., 1982, "Conversion of positions and proper motions from B1950.0 to the IAU system at J2000.0". Astron.Astrophys., 115, 1, 20-22.
Yallop, B.D. et al., 1989, "Transformation of mean star places from FK4 B1950.0 to FK5 J2000.0 using matrices in 6-space". Astron.J. 97, 274.
void iauFk52h | ( | double | r5, |
double | d5, | ||
double | dr5, | ||
double | dd5, | ||
double | px5, | ||
double | rv5, | ||
double * | rh, | ||
double * | dh, | ||
double * | drh, | ||
double * | ddh, | ||
double * | pxh, | ||
double * | rvh | ||
) |
Transform FK5 star data into the Hipparcos system.
Transform FK5 (J2000.0) star data into the Hipparcos system.
All input parameters are FK5, equinox J2000.0, epoch J2000.0.
[in] | r5 | RA (radians) |
[in] | d5 | Dec (radians) |
[in] | dr5 | proper motion in RA (dRA/dt, rad/Jyear) |
[in] | dd5 | proper motion in Dec (dDec/dt, rad/Jyear) |
[in] | px5 | parallax (arcsec) |
[in] | rv5 | radial velocity (km/s, positive = receding) |
All output parameters are Hipparcos, epoch J2000.0.
[out] | rh | RA (radians) |
[out] | dh | Dec (radians) |
[out] | drh | proper motion in RA (dRA/dt, rad/Jyear) |
[out] | ddh | proper motion in Dec (dDec/dt, rad/Jyear) |
[out] | pxh | parallax (arcsec) |
[out] | rvh | radial velocity (km/s, positive = receding) |
Notes:
1) This function transforms FK5 star positions and proper motions into the system of the Hipparcos catalog.
2) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, and are per year rather than per century.
3) The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalog are not taken into account.
4) See also iauH2fk5, iauFk5hz, iauHfk5z.
Reference:
F.Mignard & M.Froeschle, Astron. Astrophys. 354, 732-739 (2000).
void iauFk54z | ( | double | r2000, |
double | d2000, | ||
double | bepoch, | ||
double * | r1950, | ||
double * | d1950, | ||
double * | dr1950, | ||
double * | dd1950 | ||
) |
Convert a J2000.0 FK5 star position to B1950.0 FK4Convert a J2000.0 FK5 star position to B1950.0 FK4, assuming zero proper motion in FK5 and parallax. Notes:
1) In contrast to the iauFk524 routine, here the FK5 proper motions, the parallax and the radial velocity are presumed zero.
2) This function converts a star position from the IAU 1976 FK5 (Fricke) system to the former FK4 (Bessel-Newcomb) system, for cases such as distant radio sources where it is presumed there is zero parallax and no proper motion. Because of the E-terms of aberration, such objects have (in general) non-zero proper motion in FK4, and the present routine returns those fictitious proper motions.
3) Conversion from B1950.0 FK4 to J2000.0 FK5 only is provided for. Conversions involving other equinoxes would require additional treatment for precession.
4) The position returned by this routine is in the B1950.0 FK4 reference system but at Besselian epoch BEPOCH. For comparison with catalogs the BEPOCH argument will frequently be 1950.0. (In this context the distinction between Besselian and Julian epoch is insignificant.)
5) The RA component of the returned (fictitious) proper motion is dRA/dt rather than cos(Dec)*dRA/dt.
[in] | r2000 | J2000.0 FK5 RA (rad) |
[in] | d2000 | J2000.0 FK5 Dec (rad) |
[in] | bepoch | Besselian epoch (eg. 1979.3D0) |
[out] | r1950 | B1950.0 FK4 RA at epoch (rad) |
[out] | d1950 | B1950.0 FK4 Dec at epoch (rad) |
void iauFk5hip | ( | double | r5h[3][3], |
double | s5h[3] | ||
) |
FK5 to Hipparcos rotation and spin.
[out] | r5h | r-matrix: FK5 rotation wrt Hipparcos (Note 2) |
[out] | s5h | r-vector: FK5 spin wrt Hipparcos (Note 3) |
Notes:
1) This function models the FK5 to Hipparcos transformation as a pure rotation and spin; zonal errors in the FK5 catalogue are not taken into account.
2) The r-matrix r5h operates in the sense:
P_Hipparcos = r5h x P_FK5
where P_FK5 is a p-vector in the FK5 frame, and P_Hipparcos is the equivalent Hipparcos p-vector.
3) The r-vector s5h represents the time derivative of the FK5 to Hipparcos rotation. The units are radians per year (Julian, TDB).
Reference:
F.Mignard & M.Froeschle, Astron. Astrophys. 354, 732-739 (2000).
void iauFk5hz | ( | double | r5, |
double | d5, | ||
double | date1, | ||
double | date2, | ||
double * | rh, | ||
double * | dh | ||
) |
Transform an FK5 star position into the Hipparcos system.
Transform an FK5 (J2000.0) star position into the system of the Hipparcos catalogue, assuming zero Hipparcos proper motion.
[in] | r5 | FK5 RA (radians), equinox J2000.0, at date |
[in] | d5 | FK5 Dec (radians), equinox J2000.0, at date |
[in] | date1,date2 | TDB date (Notes 1,2) |
[out] | rh | Hipparcos RA (radians) |
[out] | dh | Hipparcos Dec (radians) |
Notes:
1) This function converts a star position from the FK5 system to the Hipparcos system, in such a way that the Hipparcos proper motion is zero. Because such a star has, in general, a non-zero proper motion in the FK5 system, the function requires the date at which the position in the FK5 system was determined.
2) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
3) The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalogue are not taken into account.
4) The position returned by this function is in the Hipparcos reference system but at date date1+date2.
5) See also iauFk52h, iauH2fk5, iauHfk5z.
Reference:
F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739.
void iauFw2m | ( | double | gamb, |
double | phib, | ||
double | psi, | ||
double | eps, | ||
double | r[3][3] | ||
) |
Form rotation matrix given the Fukushima-Williams angles.
[in] | gamb | F-W angle gamma_bar (radians) |
[in] | phib | F-W angle phi_bar (radians) |
[in] | psi | F-W angle psi (radians) |
[in] | eps | F-W angle epsilon (radians) |
[out] | r | rotation matrix |
Notes:
1) Naming the following points:
e = J2000.0 ecliptic pole, p = GCRS pole, E = ecliptic pole of date,
and P = CIP,
the four Fukushima-Williams angles are as follows:
gamb = gamma = epE phib = phi = pE psi = psi = pEP eps = epsilon = EP
2) The matrix representing the combined effects of frame bias, precession and nutation is:
NxPxB = R_1(-eps).R_3(-psi).R_1(phib).R_3(gamb)
3) The present function can construct three different matrices, depending on which angles are supplied as the arguments gamb, phib, psi and eps:
o To obtain the nutation x precession x frame bias matrix, first generate the four precession angles known conventionally as gamma_bar, phi_bar, psi_bar and epsilon_A, then generate the nutation components Dpsi and Depsilon and add them to psi_bar and epsilon_A, and finally call the present function using those four angles as arguments.
o To obtain the precession x frame bias matrix, generate the four precession angles and call the present function.
o To obtain the frame bias matrix, generate the four precession angles for date J2000.0 and call the present function.
The nutation-only and precession-only matrices can if necessary be obtained by combining these three appropriately.
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855 Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
void iauFw2xy | ( | double | gamb, |
double | phib, | ||
double | psi, | ||
double | eps, | ||
double * | x, | ||
double * | y | ||
) |
CIP X,Y given Fukushima-Williams bias-precession-nutation angles.
[in] | gamb | F-W angle gamma_bar (radians) |
[in] | phib | F-W angle phi_bar (radians) |
[in] | psi | F-W angle psi (radians) |
[in] | eps | F-W angle epsilon (radians) |
[out] | x,y | CIP unit vector X,Y |
Notes:
1) Naming the following points:
e = J2000.0 ecliptic pole, p = GCRS pole E = ecliptic pole of date,
and P = CIP,
the four Fukushima-Williams angles are as follows:
gamb = gamma = epE phib = phi = pE psi = psi = pEP eps = epsilon = EP
2) The matrix representing the combined effects of frame bias, precession and nutation is:
NxPxB = R_1(-epsA).R_3(-psi).R_1(phib).R_3(gamb)
The returned values x,y are elements [2][0] and [2][1] of the matrix. Near J2000.0, they are essentially angles in radians.
Reference:
Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
int iauGc2gde | ( | double | a, |
double | f, | ||
double | xyz[3], | ||
double * | elong, | ||
double * | phi, | ||
double * | height | ||
) |
Transform geocentric coordinates to geodetic.
Transform geocentric coordinates to geodetic for a reference ellipsoid of specified form.
[in] | a | equatorial radius (Notes 2,4) |
[in] | f | flattening (Note 3) |
[in] | xyz | geocentric vector (Note 4) |
[out] | elong | longitude (radians, east +ve) |
[out] | phi | latitude (geodetic, radians) |
[out] | height | height above ellipsoid (geodetic, Note 4) |
Notes:
1) This function is based on the GCONV2H Fortran subroutine by Toshio Fukushima (see reference).
2) The equatorial radius, a, can be in any units, but meters is the conventional choice.
3) The flattening, f, is (for the Earth) a value around 0.00335, i.e. around 1/298.
4) The equatorial radius, a, and the geocentric vector, xyz, must be given in the same units, and determine the units of the returned height, height.
5) If an error occurs (status < 0), elong, phi and height are unchanged.
6) The inverse transformation is performed in the function iauGd2gce.
7) The transformation for a standard ellipsoid (such as WGS84) can more conveniently be performed by calling iauGc2gd, which uses a numerical code to identify the required A and F values.
Reference:
Fukushima, T., "Transformation from Cartesian to geodetic coordinates accelerated by Halley's method", J.Geodesy (2006) 79: 689-693
int iauGd2gce | ( | double | a, |
double | f, | ||
double | elong, | ||
double | phi, | ||
double | height, | ||
double | xyz[3] | ||
) |
Transform geodetic coordinates to geocentric.
Transform geodetic coordinates to geocentric for a reference ellipsoid of specified form.
[in] | a | equatorial radius (Notes 1,4) |
[in] | f | flattening (Notes 2,4) |
[in] | elong | longitude (radians, east +ve) |
[in] | phi | latitude (geodetic, radians, Note 4) |
[in] | height | height above ellipsoid (geodetic, Notes 3,4) |
[out] | xyz | geocentric vector (Note 3) |
1) The equatorial radius, a, can be in any units, but meters is the conventional choice.
2) The flattening, f, is (for the Earth) a value around 0.00335, i.e. around 1/298.
3) The equatorial radius, a, and the height, height, must be given in the same units, and determine the units of the returned geocentric vector, xyz.
4) No validation is performed on individual arguments. The error status -1 protects against (unrealistic) cases that would lead to arithmetic exceptions. If an error occurs, xyz is unchanged.
5) The inverse transformation is performed in the function iauGc2gde.
6) The transformation for a standard ellipsoid (such as WGS84) can more conveniently be performed by calling iauGd2gc, which uses a numerical code to identify the required a and f values.
References:
Green, R.M., Spherical Astronomy, Cambridge University Press, (1985) Section 4.5, p96.
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 4.22, p202.
double iauGst00b | ( | double | uta, |
double | utb | ||
) |
Greenwich apparent sidereal time.
Greenwich apparent sidereal time (consistent with IAU 2000 resolutions but using the truncated nutation model IAU 2000B).
[in] | uta,utb | UT1 as a 2-part Julian Date (Notes 1,2) |
Notes:
1) The UT1 date uta+utb is a Julian Date, apportioned in any convenient way between the argument pair. For example, JD=2450123.7 could be expressed in any of these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. For UT, the date & time method is best matched to the algorithm that is used by the Earth Rotation Angle function, called internally: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The result is compatible with the IAU 2000 resolutions, except that accuracy has been compromised for the sake of speed and convenience in two respects:
. UT is used instead of TDB (or TT) to compute the precession component of GMST and the equation of the equinoxes. This results in errors of order 0.1 mas at present.
. The IAU 2000B abridged nutation model (McCarthy & Luzum, 2001) is used, introducing errors of up to 1 mas.
3) This GAST is compatible with the IAU 2000 resolutions and must be used only in conjunction with other IAU 2000 compatible components such as precession-nutation.
4) The result is returned in the range 0 to 2pi.
5) The algorithm is from Capitaine et al. (2003) and IERS Conventions 2003.
References:
Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to implement the IAU 2000 definition of UT1", Astronomy & Astrophysics, 406, 1135-1149 (2003)
McCarthy, D.D. & Luzum, B.J., "An abridged model of the precession-nutation of the celestial pole", Celestial Mechanics & Dynamical Astronomy, 85, 37-49 (2003)
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
double iauGst06 | ( | double | uta, |
double | utb, | ||
double | tta, | ||
double | ttb, | ||
double | rnpb[3][3] | ||
) |
Greenwich apparent sidereal time.
\filte gst06.c
Greenwich apparent sidereal time, IAU 2006, given the NPB matrix.
[in] | uta,utb | UT1 as a 2-part Julian Date (Notes 1,2) |
[in] | tta,ttb | TT as a 2-part Julian Date (Notes 1,2) |
[in] | rnpb | nutation x precession x bias matrix |
Notes:
1) The UT1 and TT dates uta+utb and tta+ttb respectively, are both Julian Dates, apportioned in any convenient way between the argument pairs. For example, JD=2450123.7 could be expressed in any of these ways, among others:
Part A Part B 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable (in the case of UT; the TT is not at all critical in this respect). The J2000 and MJD methods are good compromises between resolution and convenience. For UT, the date & time method is best matched to the algorithm that is used by the Earth rotation angle function, called internally: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) Both UT1 and TT are required, UT1 to predict the Earth rotation and TT to predict the effects of precession-nutation. If UT1 is used for both purposes, errors of order 100 microarcseconds result.
3) Although the function uses the IAU 2006 series for s+XY/2, it is otherwise independent of the precession-nutation model and can in practice be used with any equinox-based NPB matrix.
4) The result is returned in the range 0 to 2pi.
Reference:
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
double iauGst94 | ( | double | uta, |
double | utb | ||
) |
Greenwich apparent sidereal time.
Greenwich apparent sidereal time (consistent with IAU 1982/94 resolutions).
[in] | uta,utb | UT1 as a 2-part Julian Date (Notes 1,2) |
Notes:
1) The UT1 date uta+utb is a Julian Date, apportioned in any convenient way between the argument pair. For example, JD=2450123.7 could be expressed in any of these ways, among others:
uta utb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 and MJD methods are good compromises between resolution and convenience. For UT, the date & time method is best matched to the algorithm that is used by the Earth Rotation Angle function, called internally: maximum precision is delivered when the uta argument is for 0hrs UT1 on the day in question and the utb argument lies in the range 0 to 1, or vice versa.
2) The result is compatible with the IAU 1982 and 1994 resolutions, except that accuracy has been compromised for the sake of convenience in that UT is used instead of TDB (or TT) to compute the equation of the equinoxes.
3) This GAST must be used only in conjunction with contemporaneous IAU standards such as 1976 precession, 1980 obliquity and 1982 nutation. It is not compatible with the IAU 2000 resolutions.
4) The result is returned in the range 0 to 2pi.
References:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
IAU Resolution C7, Recommendation 3 (1994)
void iauH2fk5 | ( | double | rh, |
double | dh, | ||
double | drh, | ||
double | ddh, | ||
double | pxh, | ||
double | rvh, | ||
double * | r5, | ||
double * | d5, | ||
double * | dr5, | ||
double * | dd5, | ||
double * | px5, | ||
double * | rv5 | ||
) |
Transform Hipparcos star data into the FK5 (J2000.0) system.
All input parameters are Hipparcos, epoch J2000.0.
[in] | rh | RA (radians) |
[in] | dh | Dec (radians) |
[in] | drh | proper motion in RA (dRA/dt, rad/Jyear) |
[in] | ddh | proper motion in Dec (dDec/dt, rad/Jyear) |
[in] | pxh | parallax (arcsec) |
[in] | rvh | radial velocity (km/s, positive = receding) |
All output parameters are FK5, equinox J2000.0, epoch J2000.0.
[out] | r5 | RA (radians) |
[out] | d5 | Dec (radians) |
[out] | dr5 | proper motion in RA (dRA/dt, rad/Jyear) |
[out] | dd5 | proper motion in Dec (dDec/dt, rad/Jyear) |
[out] | px5 | parallax (arcsec) |
[out] | rv5 | radial velocity (km/s, positive = receding) |
Notes:
1) This function transforms Hipparcos star positions and proper motions into FK5 J2000.0.
2) The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, and are per year rather than per century.
3) The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalog are not taken into account.
4) See also iauFk52h, iauFk5hz, iauHfk5z.
Reference:
F.Mignard & M.Froeschle, Astron. Astrophys. 354, 732-739 (2000).
void iauHd2ae | ( | double | ha, |
double | dec, | ||
double | phi, | ||
double * | az, | ||
double * | el | ||
) |
Equatorial to horizon coordinates.
Equatorial to horizon coordinates: transform hour angle and declination to azimuth and altitude.
Notes:
1) All the arguments are angles in radians.
2) Azimuth is returned in the range 0-2pi; north is zero, and east is +pi/2. Altitude is returned in the range +/- pi/2.
3) The latitude phi is pi/2 minus the angle between the Earth's rotation axis and the adopted zenith. In many applications it will be sufficient to use the published geodetic latitude of the site. In very precise (sub-arcsecond) applications, phi can be corrected for polar motion.
4) The returned azimuth az is with respect to the rotational north pole, as opposed to the ITRS pole, and for sub-arcsecond accuracy will need to be adjusted for polar motion if it is to be with respect to north on a map of the Earth's surface.
5) Should the user wish to work with respect to the astronomical zenith rather than the geodetic zenith, phi will need to be adjusted for deflection of the vertical (often tens of arcseconds), and the zero point of the hour angle ha will also be affected.
6) The transformation is the same as Vh = Rz(pi)*Ry(pi/2-phi)*Ve, where Vh and Ve are lefthanded unit vectors in the (az,el) and (ha,dec) systems respectively and Ry and Rz are rotations about first the y-axis and then the z-axis. (n.b. Rz(pi) simply reverses the signs of the x and y components.) For efficiency, the algorithm is written out rather than calling other utility functions. For applications that require even greater efficiency, additional savings are possible if constant terms such as functions of latitude are computed once and for all.
7) Again for efficiency, no range checking of arguments is carried out.
[in] | ha | hour angle (local) |
[in] | dec | declination |
[in] | phi | site latitude |
[out] | az | azimuth |
[out] | el | altitude (informally, elevation) |
double iauHd2pa | ( | double | ha, |
double | dec, | ||
double | phi | ||
) |
Parallactic angle for a given hour angle and declination.Notes:
1) All the arguments are angles in radians.
2) The parallactic angle at a point in the sky is the position angle of the vertical, i.e. the angle between the directions to the north celestial pole and to the zenith respectively.
3) The result is returned in the range -pi to +pi.
4) At the pole itself a zero result is returned.
5) The latitude phi is pi/2 minus the angle between the Earth's rotation axis and the adopted zenith. In many applications it will be sufficient to use the published geodetic latitude of the site. In very precise (sub-arcsecond) applications, phi can be corrected for polar motion.
6) Should the user wish to work with respect to the astronomical zenith rather than the geodetic zenith, phi will need to be adjusted for deflection of the vertical (often tens of arcseconds), and the zero point of the hour angle ha will also be affected.
Reference: Smart, W.M., "Spherical Astronomy", Cambridge University Press, 6th edition (Green, 1977), p49.
[in] | ha | hour angle |
[in] | dec | declination |
[in] | phi | site latitudedeclination |
void iauHfk5z | ( | double | rh, |
double | dh, | ||
double | date1, | ||
double | date2, | ||
double * | r5, | ||
double * | d5, | ||
double * | dr5, | ||
double * | dd5 | ||
) |
Transform a Hipparcos star position into FK5 J2000.0.
Transform a Hipparcos star position into FK5 J2000.0, assuming zero Hipparcos proper motion.
[in] | rh | Hipparcos RA (radians) |
[in] | dh | Hipparcos Dec (radians) |
[in] | date1,date2 | TDB date (Note 1) |
All output parameters are FK5, equinox J2000.0, date date1+date2.
[out] | r5 | RA (radians) |
[out] | d5 | Dec (radians) |
[out] | dr5 | FK5 RA proper motion (rad/year, Note 4) |
[out] | dd5 | Dec proper motion (rad/year, Note 4) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
3) The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalogue are not taken into account.
4) It was the intention that Hipparcos should be a close approximation to an inertial frame, so that distant objects have zero proper motion; such objects have (in general) non-zero proper motion in FK5, and this function returns those fictitious proper motions.
5) The position returned by this function is in the FK5 J2000.0 reference system but at date date1+date2.
6) See also iauFk52h, iauH2fk5, iauFk5zhz.
Reference:
F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739.
int iauJd2cal | ( | double | dj1, |
double | dj2, | ||
int * | iy, | ||
int * | im, | ||
int * | id, | ||
double * | fd | ||
) |
Julian Date to Gregorian year, month, day, and fraction of a day.
[in] | dj1,dj2 | Julian Date (Notes 1, 2) |
[out] | iy | year |
[out] | im | month |
[out] | id | day |
[out] | fd | fraction of day |
Notes:
1) The earliest valid date is -68569.5 (-4900 March 1). The largest value accepted is 1e9.
2) The Julian Date is apportioned in any convenient way between the arguments dj1 and dj2. For example, JD=2450123.7 could be expressed in any of these ways, among others:
dj1 dj2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
3) In early eras the conversion is from the "proleptic Gregorian calendar"; no account is taken of the date(s) of adoption of the Gregorian calendar, nor is the AD/BC numbering convention observed.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 12.92 (p604).
int iauJdcalf | ( | int | ndp, |
double | dj1, | ||
double | dj2, | ||
int | iymdf[4] | ||
) |
Julian Date to Gregorian Calendar.
Julian Date to Gregorian Calendar, expressed in a form convenient for formatting messages: rounded to a specified precision.
[in] | ndp | number of decimal places of days in fraction |
[in] | dj1,dj2 | dj1+dj2 = Julian Date (Note 1) |
[out] | iymdf | year, month, day, fraction in Gregorian calendar |
Notes:
1) The Julian Date is apportioned in any convenient way between the arguments dj1 and dj2. For example, JD=2450123.7 could be expressed in any of these ways, among others:
dj1 dj2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
2) In early eras the conversion is from the "Proleptic Gregorian Calendar"; no account is taken of the date(s) of adoption of the Gregorian Calendar, nor is the AD/BC numbering convention observed.
3) Refer to the function iauJd2cal.
4) NDP should be 4 or less if internal overflows are to be avoided on machines which use 16-bit integers.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 12.92 (p604).
void iauLd | ( | double | bm, |
double | p[3], | ||
double | q[3], | ||
double | e[3], | ||
double | em, | ||
double | dlim, | ||
double | p1[3] | ||
) |
Apply light deflection by a solar-system body.
Apply light deflection by a solar-system body, as part of transforming coordinate direction into natural direction.
[in] | bm | mass of the gravitating body (solar masses) |
[in] | p | direction from observer to source (unit vector) |
[in] | q | direction from body to source (unit vector) |
[in] | e | direction from body to observer (unit vector) |
[in] | em | distance from body to observer (au) |
[in] | dlim | deflection limiter (Note 4) |
[out] | p1 | observer to deflected source (unit vector) |
Notes:
1) The algorithm is based on Expr. (70) in Klioner (2003) and Expr. (7.63) in the Explanatory Supplement (Urban & Seidelmann 2013), with some rearrangement to minimize the effects of machine precision.
2) The mass parameter bm can, as required, be adjusted in order to allow for such effects as quadrupole field.
3) The barycentric position of the deflecting body should ideally correspond to the time of closest approach of the light ray to the body.
4) The deflection limiter parameter dlim is phi^2/2, where phi is the angular separation (in radians) between source and body at which limiting is applied. As phi shrinks below the chosen threshold, the deflection is artificially reduced, reaching zero for phi = 0.
5) The returned vector p1 is not normalized, but the consequential departure from unit magnitude is always negligible.
6) The arguments p and p1 can be the same array.
7) To accumulate total light deflection taking into account the contributions from several bodies, call the present function for each body in succession, in decreasing order of distance from the observer.
8) For efficiency, validation is omitted. The supplied vectors must be of unit magnitude, and the deflection limiter non-zero and positive.
References:
Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd ed., University Science Books (2013).
Klioner, Sergei A., "A practical relativistic model for micro- arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003).
void iauLdn | ( | int | n, |
iauLDBODY | b[], | ||
double | ob[3], | ||
double | sc[3], | ||
double | sn[3] | ||
) |
apply light deflection by multiple solar-system bodies
For a star, apply light deflection by multiple solar-system bodies, as part of transforming coordinate direction into natural direction.
[in] | n | number of bodies (note 1) |
[in] | b | data for each of the n bodies (Notes 1,2): |
[in] | bm | mass of the body (solar masses, Note 3) |
[in] | dl | deflection limiter (Note 4) |
[in] | pv | barycentric PV of the body (au, au/day) |
[in] | ob | barycentric position of the observer (au) |
[in] | sc | observer to star coord direction (unit vector) |
[out] | sn | observer to deflected star (unit vector) |
1) The array b contains n entries, one for each body to be considered. If n = 0, no gravitational light deflection will be applied, not even for the Sun.
2) The array b should include an entry for the Sun as well as for any planet or other body to be taken into account. The entries should be in the order in which the light passes the body.
3) In the entry in the b array for body i, the mass parameter b[i].bm can, as required, be adjusted in order to allow for such effects as quadrupole field.
4) The deflection limiter parameter b[i].dl is phi^2/2, where phi is the angular separation (in radians) between star and body at which limiting is applied. As phi shrinks below the chosen threshold, the deflection is artificially reduced, reaching zero for phi = 0. Example values suitable for a terrestrial observer, together with masses, are as follows:
body i b[i].bm b[i].dl
Sun 1.0 6e-6 Jupiter 0.00095435 3e-9 Saturn 0.00028574 3e-10
5) For cases where the starlight passes the body before reaching the observer, the body is placed back along its barycentric track by the light time from that point to the observer. For cases where the body is "behind" the observer no such shift is applied. If a different treatment is preferred, the user has the option of instead using the iauLd function. Similarly, iauLd can be used for cases where the source is nearby, not a star.
6) The returned vector sn is not normalized, but the consequential departure from unit magnitude is always negligible.
7) The arguments sc and sn can be the same array.
8) For efficiency, validation is omitted. The supplied masses must be greater than zero, the position and velocity vectors must be right, and the deflection limiter greater than zero.
Reference:
Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd ed., University Science Books (2013), Section 7.2.4.
void iauLdsun | ( | double | p[3], |
double | e[3], | ||
double | em, | ||
double | p1[3] | ||
) |
Deflection of starlight by the Sun.
[in] | p | direction from observer to star (unit vector) |
[in] | e | direction from Sun to observer (unit vector) |
[in] | em | distance from Sun to observer (au) |
[out] | p1 | observer to deflected star (unit vector) |
Notes:
1) The source is presumed to be sufficiently distant that its directions seen from the Sun and the observer are essentially the same.
2) The deflection is restrained when the angle between the star and the center of the Sun is less than about 9 arcsec, falling to zero for zero separation. (The chosen threshold is within the solar limb for all solar-system applications.)
3) The arguments p and p1 can be the same array.
void iauLteceq | ( | double | epj, |
double | dl, | ||
double | db, | ||
double * | dr, | ||
double * | dd | ||
) |
Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec.Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using a long-term precession model. 1) No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
2) The transformation is approximately that from ecliptic longitude and latitude (mean equinox and ecliptic of date) to mean J2000.0 right ascension and declination, with only frame bias (always less than 25 mas) to disturb this classical picture.
3) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.
References:
Vondrak, J., Capitaine, N. and Wallace, P., 2011, New precession expressions, valid for long time intervals, Astron.Astrophys. 534, A22
Vondrak, J., Capitaine, N. and Wallace, P., 2012, New precession expressions, valid for long time intervals (Corrigendum), Astron.Astrophys. 541, C1
[in] | epj | Julian epoch (TT) |
[in] | dl | ecliptic longitude (radians) |
[in] | db | ecliptic latitude (radians) |
[out] | dr | ICRS right ascension (radians) |
[out] | dd | ICRS declination (radians) |
void iauLtecm | ( | double | epj, |
double | rm[3][3] | ||
) |
ICRS equatorial to ecliptic rotation matrix, long-term.
Notes:
1) The matrix is in the sense
E_ep = rm x P_ICRS,
where P_ICRS is a vector with respect to ICRS right ascension and declination axes and E_ep is the same vector with respect to the (inertial) ecliptic and equinox of epoch epj.
2) P_ICRS is a free vector, merely a direction, typically of unit magnitude, and not bound to any particular spatial origin, such as the Earth, Sun or SSB. No assumptions are made about whether it represents starlight and embodies astrometric effects such as parallax or aberration. The transformation is approximately that between mean J2000.0 right ascension and declination and ecliptic longitude and latitude, with only frame bias (always less than 25 mas) to disturb this classical picture.
3) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.
[in] | epj | Julian epoch (TT) |
[out] | rm | IRCS to eclicptic rotation matrix |
void iauLteqec | ( | double | epj, |
double | dr, | ||
double | dd, | ||
double * | dl, | ||
double * | db | ||
) |
Transformation from ICRS equatorial coordinates to ecliptic coordinates.
Transformation from ICRS equatorial coordinates to ecliptic coordinates (mean equinox and ecliptic of date) using a long-term
1) No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
2) The transformation is approximately that from mean J2000.0 right ascension and declination to ecliptic longitude and latitude (mean equinox and ecliptic of date), with only frame bias (always less than 25 mas) to disturb this classical picture.
3) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.
[in] | epj | Julian epoch (TT) |
[in] | dr | ICRS right ascension (radians) |
[in] | dd | ICRS declination (radians) |
[out] | dl | ecliptic longitude (radians) |
[out] | db | ecliptic latitude (radians) |
void iauLtp | ( | double | epj, |
double | rp[3][3] | ||
) |
Long-term precession matrix.Notes:
1) The matrix is in the sense
P_date = rp x P_J2000,
where P_J2000 is a vector with respect to the J2000.0 mean equator and equinox and P_date is the same vector with respect to the equator and equinox of epoch epj.
2) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.
[in] | epj | Julian epoch (TT) |
[out] | rp | precession matrix, J2000.0 to date |
void iauLtpb | ( | double | epj, |
double | rpb[3][3] | ||
) |
Long-term precession matrix, including ICRS frame bias.Notes:
1) The matrix is in the sense
P_date = rpb x P_ICRS,
where P_ICRS is a vector in the Geocentric Celestial Reference System, and P_date is the vector with respect to the Celestial Intermediate Reference System at that date but with nutation neglected.
2) A first order frame bias formulation is used, of sub- microarcsecond accuracy compared with a full 3D rotation.
3) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.
[in] | epj | Julian epoch (TT) |
[out] | rp | precession-bias matrix, J2000.0 to date |
void iauLtpecl | ( | double | epj, |
double | vec[3] | ||
) |
Long-term precession of the ecliptic.Notes:
1) The returned vector is with respect to the J2000.0 mean equator and equinox.
2) The Vondrak et al. (2011, 2012) 400 millennia precession model agrees with the IAU 2006 precession at J2000.0 and stays within 100 microarcseconds during the 20th and 21st centuries. It is accurate to a few arcseconds throughout the historical period, worsening to a few tenths of a degree at the end of the +/- 200,000 year time span.
[in] | epj | Julian epoch (TT) |
[out] | vec | ecliptic pole unit vector |
void iauNum00a | ( | double | date1, |
double | date2, | ||
double | rmatn[3][3] | ||
) |
Form the matrix of nutation for a given date.
Form the matrix of nutation for a given date, IAU 2000A model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rmatn | nutation matrix |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(true) = rmatn * V(mean), where the p-vector V(true) is with respect to the true equatorial triad of date and the p-vector V(mean) is with respect to the mean equatorial triad of date.
3) A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the iauNum00b function.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
void iauNum00b | ( | double | date1, |
double | date2, | ||
double | rmatn[3][3] | ||
) |
Form the matrix of nutation for a given date.
Form the matrix of nutation for a given date, IAU 2000B model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rmatn | nutation matrix |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(true) = rmatn * V(mean), where the p-vector V(true) is with respect to the true equatorial triad of date and the p-vector V(mean) is with respect to the mean equatorial triad of date.
3) The present function is faster, but slightly less accurate (about 1 mas), than the iauNum00a function.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
void iauNum06a | ( | double | date1, |
double | date2, | ||
double | rmatn[3][3] | ||
) |
Form the matrix of nutation for a given date.
Form the matrix of nutation for a given date, IAU 2006/2000A model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rmatn | nutation matrix |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(true) = rmatn * V(mean), where the p-vector V(true) is with respect to the true equatorial triad of date and the p-vector V(mean) is with respect to the mean equatorial triad of date.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
void iauNumat | ( | double | epsa, |
double | dpsi, | ||
double | deps, | ||
double | rmatn[3][3] | ||
) |
Form the matrix of nutation.
[in] | epsa | mean obliquity of date (Note 1) |
[in] | dpsi,deps | nutation (Note 2) |
[out] | rmatn | nutation matrix (Note 3) |
Notes:
1) The supplied mean obliquity epsa, must be consistent with the precession-nutation models from which dpsi and deps were obtained.
2) The caller is responsible for providing the nutation components; they are in longitude and obliquity, in radians and are with respect to the equinox and ecliptic of date.
3) The matrix operates in the sense V(true) = rmatn * V(mean), where the p-vector V(true) is with respect to the true equatorial triad of date and the p-vector V(mean) is with respect to the mean equatorial triad of date.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
void iauNutm80 | ( | double | date1, |
double | date2, | ||
double | rmatn[3][3] | ||
) |
Form the matrix of nutation for a given date,.
Form the matrix of nutation for a given date, IAU 1980 model.
[in] | date1,date2 | TDB date (Note 1) |
[out] | rmatn | nutation matrix |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(true) = rmatn * V(mean), where the p-vector V(true) is with respect to the true equatorial triad of date and the p-vector V(mean) is with respect to the mean equatorial triad of date.
void iauPb06 | ( | double | date1, |
double | date2, | ||
double * | bzeta, | ||
double * | bz, | ||
double * | btheta | ||
) |
forms three Euler angles which implement general precession from epoch J2000.0,
This function forms three Euler angles which implement general precession from epoch J2000.0, using the IAU 2006 model. Frame bias (the offset between ICRS and mean J2000.0) is included.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | bzeta | 1st rotation: radians cw around z |
[out] | bz | 3rd rotation: radians cw around z |
[out] | btheta | 2nd rotation: radians ccw around y |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The traditional accumulated precession angles zeta_A, z_A, theta_A cannot be obtained in the usual way, namely through polynomial expressions, because of the frame bias. The latter means that two of the angles undergo rapid changes near this date. They are instead the results of decomposing the precession-bias matrix obtained by using the Fukushima-Williams method, which does not suffer from the problem. The decomposition returns values which can be used in the conventional formulation and which include frame bias.
3) The three angles are returned in the conventional order, which is not the same as the order of the corresponding Euler rotations. The precession-bias matrix is R_3(-z) x R_2(+theta) x R_3(-zeta).
4) Should zeta_A, z_A, theta_A angles be required that do not contain frame bias, they are available by calling the SOFA function iauP06e.
int iauPlan94 | ( | double | date1, |
double | date2, | ||
int | np, | ||
double | pv[2][3] | ||
) |
Approximate heliocentric position and velocity of a planet.
Approximate heliocentric position and velocity of a nominated major planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or Neptune (but not the Earth itself).
[in] | date1 | TDB date part A (Note 1) |
[in] | date2 | TDB date part B (Note 1) |
[in] | np | planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune) |
[out] | pv | planet p,v (heliocentric, J2000.0, AU,AU/d) |
Notes:
1) The date date1+date2 is in the TDB time scale (in practice TT can be used) and is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. The limited accuracy of the present algorithm is such that any of the methods is satisfactory.
2) If an np value outside the range 1-8 is supplied, an error status (function value -1) is returned and the pv vector set to zeroes.
3) For np=3 the result is for the Earth-Moon Barycenter. To obtain the heliocentric position and velocity of the Earth, use instead the SOFA function iauEpv00.
4) On successful return, the array pv contains the following:
pv[0][0] x } pv[0][1] y } heliocentric position, AU pv[0][2] z } pv[1][0] xdot } pv[1][1] ydot } heliocentric velocity, AU/d pv[1][2] zdot }
The reference frame is equatorial and is with respect to the mean equator and equinox of epoch J2000.0.
5) The algorithm is due to J.L. Simon, P. Bretagnon, J. Chapront, M. Chapront-Touze, G. Francou and J. Laskar (Bureau des Longitudes, Paris, France). From comparisons with JPL ephemeris DE102, they quote the following maximum errors over the interval 1800-2050:
L (arcsec) B (arcsec) R (km)
Mercury 4 1 300 Venus 5 1 800 EMB 6 1 1000 Mars 17 1 7700 Jupiter 71 5 76000 Saturn 81 13 267000 Uranus 86 7 712000 Neptune 11 1 253000
Over the interval 1000-3000, they report that the accuracy is no worse than 1.5 times that over 1800-2050. Outside 1000-3000 the accuracy declines.
Comparisons of the present function with the JPL DE200 ephemeris give the following RMS errors over the interval 1960-2025:
position (km) velocity (m/s)
Mercury 334 0.437 Venus 1060 0.855 EMB 2010 0.815 Mars 7690 1.98 Jupiter 71700 7.70 Saturn 199000 19.4 Uranus 564000 16.4 Neptune 158000 14.4
Comparisons against DE200 over the interval 1800-2100 gave the following maximum absolute differences. (The results using DE406 were essentially the same.)
L (arcsec) B (arcsec) R (km) Rdot (m/s)
Mercury 7 1 500 0.7 Venus 7 1 1100 0.9 EMB 9 1 1300 1.0 Mars 26 1 9000 2.5 Jupiter 78 6 82000 8.2 Saturn 87 14 263000 24.6 Uranus 86 7 661000 27.4 Neptune 11 2 248000 21.4
6) The present SOFA re-implementation of the original Simon et al. Fortran code differs from the original in the following respects:
None of the above changes affects the result significantly.
7) The returned status indicates the most serious condition encountered during execution of the function. Illegal np is considered the most serious, overriding failure to converge, which in turn takes precedence over the remote date warning.
Reference: Simon, J.L, Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., and Laskar, J., Astron. Astrophys. 282, 663 (1994).
void iauPmat00 | ( | double | date1, |
double | date2, | ||
double | rbp[3][3] | ||
) |
Precession matrix from GCRS to specified date.
Precession matrix (including frame bias) from GCRS to a specified date, IAU 2000 model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rbp | double[3][3] bias-precession matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = rbp * V(GCRS), where the p-vector V(GCRS) is with respect to the Geocentric Celestial Reference System (IAU, 2000) and the p-vector V(date) is with respect to the mean equatorial triad of the given date.
Reference:
IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. (2000)
void iauPmat06 | ( | double | date1, |
double | date2, | ||
double | rbp[3][3] | ||
) |
Precession matrix from GCRS to a specified date.
Precession matrix (including frame bias) from GCRS to a specified date, IAU 2006 model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rbp | bias-precession matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = rbp * V(GCRS), where the p-vector V(GCRS) is with respect to the Geocentric Celestial Reference System (IAU, 2000) and the p-vector V(date) is with respect to the mean equatorial triad of the given date.
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
void iauPmat76 | ( | double | date1, |
double | date2, | ||
double | rmatp[3][3] | ||
) |
Precession matrix from J2000.0 to a specified date.
Precession matrix from J2000.0 to a specified date, IAU 1976 model.
[in] | date1,date2 | ending date, TT (Note 1) |
[out] | rmatp | precession matrix, J2000.0 -> date1+date2 |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = RMATP * V(J2000), where the p-vector V(J2000) is with respect to the mean equatorial triad of epoch J2000.0 and the p-vector V(date) is with respect to the mean equatorial triad of the given date.
3) Though the matrix method itself is rigorous, the precession angles are expressed through canonical polynomials which are valid only for a limited time span. In addition, the IAU 1976 precession rate is known to be imperfect. The absolute accuracy of the present formulation is better than 0.1 arcsec from 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD, and remains below 3 arcsec for the whole of the period 500BC to 3000AD. The errors exceed 10 arcsec outside the range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD.
References:
Lieske, J.H., 1979, Astron.Astrophys. 73, 282. equations (6) & (7), p283.
Kaplan,G.H., 1981. USNO circular no. 163, pA2.
void iauPmpx | ( | double | rc, |
double | dc, | ||
double | pr, | ||
double | pd, | ||
double | px, | ||
double | rv, | ||
double | pmt, | ||
double | pob[3], | ||
double | pco[3] | ||
) |
Proper motion and parallax.
[in] | rc,dc | ICRS RA,Dec at catalog epoch (radians) |
[in] | pr | RA proper motion (radians/year; Note 1) |
[in] | pd | Dec proper motion (radians/year) |
[in] | px | parallax (arcsec) |
[in] | rv | radial velocity (km/s, +ve if receding) |
[in] | pmt | proper motion time interval (SSB, Julian years) |
[in] | pob | SSB to observer vector (au) |
[out] | pco | coordinate direction (BCRS unit vector) |
Notes:
1) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
2) The proper motion time interval is for when the starlight reaches the solar system barycenter.
3) To avoid the need for iteration, the Roemer effect (i.e. the small annual modulation of the proper motion coming from the changing light time) is applied approximately, using the direction of the star at the catalog epoch.
References:
1984 Astronomical Almanac, pp B39-B41.
Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd ed., University Science Books (2013), Section 7.2.
int iauPmsafe | ( | double | ra1, |
double | dec1, | ||
double | pmr1, | ||
double | pmd1, | ||
double | px1, | ||
double | rv1, | ||
double | ep1a, | ||
double | ep1b, | ||
double | ep2a, | ||
double | ep2b, | ||
double * | ra2, | ||
double * | dec2, | ||
double * | pmr2, | ||
double * | pmd2, | ||
double * | px2, | ||
double * | rv2 | ||
) |
Star proper motion.
Star proper motion: update star catalog data for space motion, with special handling to handle the zero parallax case.
[in] | ra1 | right ascension (radians), before |
[in] | dec1 | declination (radians), before |
[in] | pmr1 | RA proper motion (radians/year), before |
[in] | pmd1 | Dec proper motion (radians/year), before |
[in] | px1 | parallax (arcseconds), before |
[in] | rv1 | radial velocity (km/s, +ve = receding), before |
[in] | ep1a | "before" epoch, part A (Note 1) |
[in] | ep1b | "before" epoch, part B (Note 1) |
[in] | ep2a | "after" epoch, part A (Note 1) |
[in] | ep2b | "after" epoch, part B (Note 1) |
[out] | ra2 | right ascension (radians), after |
[out] | dec2 | declination (radians), after |
[out] | pmr2 | RA proper motion (radians/year), after |
[out] | pmd2 | Dec proper motion (radians/year), after |
[out] | px2 | parallax (arcseconds), after |
[out] | rv2 | radial velocity (km/s, +ve = receding), after |
Notes:
1) The starting and ending TDB epochs ep1a+ep1b and ep2a+ep2b are Julian Dates, apportioned in any convenient way between the two parts (A and B). For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
epNa epNb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) In accordance with normal star-catalog conventions, the object's right ascension and declination are freed from the effects of secular aberration. The frame, which is aligned to the catalog equator and equinox, is Lorentzian and centered on the SSB.
The proper motions are the rate of change of the right ascension and declination at the catalog epoch and are in radians per TDB Julian year.
The parallax and radial velocity are in the same frame.
3) Care is needed with units. The star coordinates are in radians and the proper motions in radians per Julian year, but the parallax is in arcseconds.
4) The RA proper motion is in terms of coordinate angle, not true angle. If the catalog uses arcseconds for both RA and Dec proper motions, the RA proper motion will need to be divided by cos(Dec) before use.
5) Straight-line motion at constant speed, in the inertial frame, is assumed.
6) An extremely small (or zero or negative) parallax is overridden to ensure that the object is at a finite but very large distance, but not so large that the proper motion is equivalent to a large but safe speed (about 0.1c using the chosen constant). A warning status of 1 is added to the status if this action has been taken.
7) If the space velocity is a significant fraction of c (see the constant VMAX in the function iauStarpv), it is arbitrarily set to zero. When this action occurs, 2 is added to the status.
8) The relativistic adjustment carried out in the iauStarpv function involves an iterative calculation. If the process fails to converge within a set number of iterations, 4 is added to the status.
void iauPn00 | ( | double | date1, |
double | date2, | ||
double | dpsi, | ||
double | deps, | ||
double * | epsa, | ||
double | rb[3][3], | ||
double | rp[3][3], | ||
double | rbp[3][3], | ||
double | rn[3][3], | ||
double | rbpn[3][3] | ||
) |
Precession-nutation, IAU 2000 model.
Precession-nutation, IAU 2000 model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[in] | dpsi,deps | nutation (Note 2) |
[out] | epsa | mean obliquity (Note 3) |
[out] | rb | frame bias matrix (Note 4) |
[out] | rp | precession matrix (Note 5) |
[out] | rbp | bias-precession matrix (Note 6) |
[out] | rn | nutation matrix (Note 7) |
[out] | rbpn | GCRS-to-true matrix (Note 8) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The caller is responsible for providing the nutation components; they are in longitude and obliquity, in radians and are with respect to the equinox and ecliptic of date. For high-accuracy applications, free core nutation should be included as well as any other relevant corrections to the position of the CIP.
3) The returned mean obliquity is consistent with the IAU 2000 precession-nutation models.
4) The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
5) The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
6) The matrix rbp transforms vectors from GCRS to mean equator and equinox of date by applying frame bias then precession. It is the product rp x rb.
7) The matrix rn transforms vectors from mean equator and equinox of date to true equator and equinox of date by applying the nutation (luni-solar + planetary).
8) The matrix rbpn transforms vectors from GCRS to true equator and equinox of date. It is the product rn x rbp, applying frame bias, precession and nutation in that order.
9) It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
Reference:
Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
void iauPn00a | ( | double | date1, |
double | date2, | ||
double * | dpsi, | ||
double * | deps, | ||
double * | epsa, | ||
double | rb[3][3], | ||
double | rp[3][3], | ||
double | rbp[3][3], | ||
double | rn[3][3], | ||
double | rbpn[3][3] | ||
) |
Precession-nutation, IAU 2000A model.
Precession-nutation, IAU 2000A model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | dpsi,deps | nutation (Note 2) |
[out] | epsa | mean obliquity (Note 3) |
[out] | rb | frame bias matrix (Note 4) |
[out] | rp | precession matrix (Note 5) |
[out] | rbp | bias-precession matrix (Note 6) |
[out] | rn | nutation matrix (Note 7) |
[out] | rbpn | GCRS-to-true matrix (Notes 8,9) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The nutation components (luni-solar + planetary, IAU 2000A) in longitude and obliquity are in radians and with respect to the equinox and ecliptic of date. Free core nutation is omitted; for the utmost accuracy, use the iauPn00 function, where the nutation components are caller-specified. For faster but slightly less accurate results, use the iauPn00b function.
3) The mean obliquity is consistent with the IAU 2000 precession.
4) The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
5) The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
6) The matrix rbp transforms vectors from GCRS to mean equator and equinox of date by applying frame bias then precession. It is the product rp x rb.
7) The matrix rn transforms vectors from mean equator and equinox of date to true equator and equinox of date by applying the nutation (luni-solar + planetary).
8) The matrix rbpn transforms vectors from GCRS to true equator and equinox of date. It is the product rn x rbp, applying frame bias, precession and nutation in that order.
9) The X,Y,Z coordinates of the IAU 2000A Celestial Intermediate Pole are elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2].
10) It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
Reference:
Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
void iauPn00b | ( | double | date1, |
double | date2, | ||
double * | dpsi, | ||
double * | deps, | ||
double * | epsa, | ||
double | rb[3][3], | ||
double | rp[3][3], | ||
double | rbp[3][3], | ||
double | rn[3][3], | ||
double | rbpn[3][3] | ||
) |
Precession-nutation, IAU 2000B model.
Precession-nutation, IAU 2000B model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | dpsi,deps | nutation (Note 2) |
[out] | epsa | mean obliquity (Note 3) |
[out] | rb | frame bias matrix (Note 4) |
[out] | rp | precession matrix (Note 5) |
[out] | rbp | bias-precession matrix (Note 6) |
[out] | rn | nutation matrix (Note 7) |
[out] | rbpn | GCRS-to-true matrix (Notes 8,9) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The nutation components (luni-solar + planetary, IAU 2000B) in longitude and obliquity are in radians and with respect to the equinox and ecliptic of date. For more accurate results, but at the cost of increased computation, use the iauPn00a function. For the utmost accuracy, use the iauPn00 function, where the nutation components are caller-specified.
3) The mean obliquity is consistent with the IAU 2000 precession.
4) The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
5) The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
6) The matrix rbp transforms vectors from GCRS to mean equator and equinox of date by applying frame bias then precession. It is the product rp x rb.
7) The matrix rn transforms vectors from mean equator and equinox of date to true equator and equinox of date by applying the nutation (luni-solar + planetary).
8) The matrix rbpn transforms vectors from GCRS to true equator and equinox of date. It is the product rn x rbp, applying frame bias, precession and nutation in that order.
9) The X,Y,Z coordinates of the IAU 2000B Celestial Intermediate Pole are elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2].
10) It is permissible to re-use the same array in the returned arguments. The arrays are filled in the stated order.
Reference:
Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003).
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
void iauPn06 | ( | double | date1, |
double | date2, | ||
double | dpsi, | ||
double | deps, | ||
double * | epsa, | ||
double | rb[3][3], | ||
double | rp[3][3], | ||
double | rbp[3][3], | ||
double | rn[3][3], | ||
double | rbpn[3][3] | ||
) |
Precession-nutation, IAU 2006 model.
Precession-nutation, IAU 2006 model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[in] | dpsi,deps | nutation (Note 2) |
[out] | epsa | mean obliquity (Note 3) |
[out] | rb | frame bias matrix (Note 4) |
[out] | rp | precession matrix (Note 5) |
[out] | rbp | bias-precession matrix (Note 6) |
[out] | rn | nutation matrix (Note 7) |
[out] | rbpn | GCRS-to-true matrix (Note 8) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The caller is responsible for providing the nutation components; they are in longitude and obliquity, in radians and are with respect to the equinox and ecliptic of date. For high-accuracy applications, free core nutation should be included as well as any other relevant corrections to the position of the CIP.
3) The returned mean obliquity is consistent with the IAU 2006 precession.
4) The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
5) The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
6) The matrix rbp transforms vectors from GCRS to mean equator and equinox of date by applying frame bias then precession. It is the product rp x rb.
7) The matrix rn transforms vectors from mean equator and equinox of date to true equator and equinox of date by applying the nutation (luni-solar + planetary).
8) The matrix rbpn transforms vectors from GCRS to true equator and equinox of date. It is the product rn x rbp, applying frame bias, precession and nutation in that order.
9) The X,Y,Z coordinates of the Celestial Intermediate Pole are elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2].
10) It is permissible to re-use the same array in the returned arguments. The arrays are filled in the stated order.
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
void iauPn06a | ( | double | date1, |
double | date2, | ||
double * | dpsi, | ||
double * | deps, | ||
double * | epsa, | ||
double | rb[3][3], | ||
double | rp[3][3], | ||
double | rbp[3][3], | ||
double | rn[3][3], | ||
double | rbpn[3][3] | ||
) |
Precession-nutation, IAU 2006/2000A models.
Precession-nutation, IAU 2006/2000A models: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | dpsi,deps | nutation (Note 2) |
[out] | epsa | mean obliquity (Note 3) |
[out] | rb | frame bias matrix (Note 4) |
[out] | rp | precession matrix (Note 5) |
[out] | rbp | bias-precession matrix (Note 6) |
[out] | rn | nutation matrix (Note 7) |
[out] | rbpn | GCRS-to-true matrix (Notes 8,9) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The nutation components (luni-solar + planetary, IAU 2000A) in longitude and obliquity are in radians and with respect to the equinox and ecliptic of date. Free core nutation is omitted; for the utmost accuracy, use the iauPn06 function, where the nutation components are caller-specified.
3) The mean obliquity is consistent with the IAU 2006 precession.
4) The matrix rb transforms vectors from GCRS to mean J2000.0 by applying frame bias.
5) The matrix rp transforms vectors from mean J2000.0 to mean of date by applying precession.
6) The matrix rbp transforms vectors from GCRS to mean of date by applying frame bias then precession. It is the product rp x rb.
7) The matrix rn transforms vectors from mean of date to true of date by applying the nutation (luni-solar + planetary).
8) The matrix rbpn transforms vectors from GCRS to true of date (CIP/equinox). It is the product rn x rbp, applying frame bias, precession and nutation in that order.
9) The X,Y,Z coordinates of the IAU 2006/2000A Celestial Intermediate Pole are elements (3,1-3) of the GCRS-to-true matrix, i.e. rbpn[2][0-2].
10) It is permissible to re-use the same array in the returned arguments. The arrays are filled in the stated order.
Reference:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
void iauPnm00a | ( | double | date1, |
double | date2, | ||
double | rbpn[3][3] | ||
) |
Form the matrix of precession-nutation.
Form the matrix of precession-nutation for a given date (including frame bias), equinox-based, IAU 2000A model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rbpn | classical NPB matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where the p-vector V(date) is with respect to the true equatorial triad of date date1+date2 and the p-vector V(GCRS) is with respect to the Geocentric Celestial Reference System (IAU, 2000).
3) A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the iauPnm00b function.
Reference:
IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. (2000)
void iauPnm00b | ( | double | date1, |
double | date2, | ||
double | rbpn[3][3] | ||
) |
Form the matrix of precession-nutation.
Form the matrix of precession-nutation for a given date (including frame bias), equinox-based, IAU 2000B model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rbpn | bias-precession-nutation matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = rbpn * V(GCRS), where the p-vector V(date) is with respect to the true equatorial triad of date date1+date2 and the p-vector V(GCRS) is with respect to the Geocentric Celestial Reference System (IAU, 2000).
3) The present function is faster, but slightly less accurate (about 1 mas), than the iauPnm00a function.
Reference:
IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. (2000)
void iauPnm06a | ( | double | date1, |
double | date2, | ||
double | rnpb[3][3] | ||
) |
Form the matrix of precession-nutation.
Form the matrix of precession-nutation for a given date (including frame bias), IAU 2006 precession and IAU 2000A nutation models.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | rnpb | bias-precession-nutation matrix (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = rnpb * V(GCRS), where the p-vector V(date) is with respect to the true equatorial triad of date date1+date2 and the p-vector V(GCRS) is with respect to the Geocentric Celestial Reference System (IAU, 2000).
Reference:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855.
void iauPnm80 | ( | double | date1, |
double | date2, | ||
double | rmatpn[3][3] | ||
) |
Form the matrix of precession/nutation.
Form the matrix of precession/nutation for a given date, IAU 1976 precession model, IAU 1980 nutation model.
[in] | date1,date2 | TDB date (Note 1) |
[out] | rmatpn | combined precession/nutation matrix |
Notes:
1) The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The matrix operates in the sense V(date) = rmatpn * V(J2000), where the p-vector V(date) is with respect to the true equatorial triad of date date1+date2 and the p-vector V(J2000) is with respect to the mean equatorial triad of epoch J2000.0.
Reference:
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.3 (p145).
void iauPom00 | ( | double | xp, |
double | yp, | ||
double | sp, | ||
double | rpom[3][3] | ||
) |
Form the matrix of polar motion.
Form the matrix of polar motion for a given date, IAU 2000.
[in] | xp,yp | coordinates of the pole (radians, Note 1) |
[in] | sp | the TIO locator s' (radians, Note 2) |
[out] | rpom | polar-motion matrix (Note 3) |
Notes:
1) The arguments xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions 2003), measured along the meridians to 0 and 90 deg west respectively.
2) The argument sp is the TIO locator s', in radians, which positions the Terrestrial Intermediate Origin on the equator. It is obtained from polar motion observations by numerical integration, and so is in essence unpredictable. However, it is dominated by a secular drift of about 47 microarcseconds per century, and so can be taken into account by using s' = -47*t, where t is centuries since J2000.0. The function iauSp00 implements this approximation.
3) The matrix operates in the sense V(TRS) = rpom * V(CIP), meaning that it is the final rotation when computing the pointing direction to a celestial source.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
int iauPvstar | ( | double | pv[2][3], |
double * | ra, | ||
double * | dec, | ||
double * | pmr, | ||
double * | pmd, | ||
double * | px, | ||
double * | rv | ||
) |
Convert star position+velocity vector to catalog coordinates.
[in] | pv | pv-vector (AU, AU/day) |
[out] | ra | right ascension (radians) |
[out] | dec | declination (radians) |
[out] | pmr | RA proper motion (radians/year) |
[out] | pmd | Dec proper motion (radians/year) |
[out] | px | parallax (arcsec) |
[out] | rv | radial velocity (km/s, positive = receding) |
Notes:
1) The specified pv-vector is the coordinate direction (and its rate of change) for the date at which the light leaving the star reached the solar-system barycenter.
2) The star data returned by this function are "observables" for an imaginary observer at the solar-system barycenter. Proper motion and radial velocity are, strictly, in terms of barycentric coordinate time, TCB. For most practical applications, it is permissible to neglect the distinction between TCB and ordinary "proper" time on Earth (TT/TAI). The result will, as a rule, be limited by the intrinsic accuracy of the proper-motion and radial-velocity data; moreover, the supplied pv-vector is likely to be merely an intermediate result (for example generated by the function iauStarpv), so that a change of time unit will cancel out overall.
In accordance with normal star-catalog conventions, the object's right ascension and declination are freed from the effects of secular aberration. The frame, which is aligned to the catalog equator and equinox, is Lorentzian and centered on the SSB.
Summarizing, the specified pv-vector is for most stars almost identical to the result of applying the standard geometrical "space motion" transformation to the catalog data. The differences, which are the subject of the Stumpff paper cited below, are:
(i) In stars with significant radial velocity and proper motion, the constantly changing light-time distorts the apparent proper motion. Note that this is a classical, not a relativistic, effect.
(ii) The transformation complies with special relativity.
3) Care is needed with units. The star coordinates are in radians and the proper motions in radians per Julian year, but the parallax is in arcseconds; the radial velocity is in km/s, but the pv-vector result is in AU and AU/day.
4) The proper motions are the rate of change of the right ascension and declination at the catalog epoch and are in radians per Julian year. The RA proper motion is in terms of coordinate angle, not true angle, and will thus be numerically larger at high declinations.
5) Straight-line motion at constant speed in the inertial frame is assumed. If the speed is greater than or equal to the speed of light, the function aborts with an error status.
6) The inverse transformation is performed by the function iauStarpv.
Reference:
Stumpff, P., 1985, Astron.Astrophys. 144, 232-240.
void iauPvtob | ( | double | elong, |
double | phi, | ||
double | hm, | ||
double | xp, | ||
double | yp, | ||
double | sp, | ||
double | theta, | ||
double | pv[2][3] | ||
) |
Position and velocity of a terrestrial observing station.
[in] | elong | longitude (radians, east +ve, Note 1) |
[in] | phi | latitude (geodetic, radians, Note 1) |
[in] | hm | height above ref. ellipsoid (geodetic, m) |
[in] | xp,yp | coordinates of the pole (radians, Note 2) |
[in] | sp | the TIO locator s' (radians, Note 2) |
[in] | theta | Earth rotation angle (radians, Note 3) |
[out] | pv | position/velocity vector (m, m/s, CIRS) |
Notes:
1) The terrestrial coordinates are with respect to the WGS84 reference ellipsoid.
2) xp and yp are the coordinates (in radians) of the Celestial Intermediate Pole with respect to the International Terrestrial Reference System (see IERS Conventions), measured along the meridians 0 and 90 deg west respectively. sp is the TIO locator s', in radians, which positions the Terrestrial Intermediate Origin on the equator. For many applications, xp, yp and (especially) sp can be set to zero.
3) If theta is Greenwich apparent sidereal time instead of Earth rotation angle, the result is with respect to the true equator and equinox of date, i.e. with the x-axis at the equinox rather than the celestial intermediate origin.
4) The velocity units are meters per UT1 second, not per SI second. This is unlikely to have any practical consequences in the modern era.
5) No validation is performed on the arguments. Error cases that could lead to arithmetic exceptions are trapped by the iauGd2gc function, and the result set to zeros.
References:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to the Astronomical Almanac, 3rd ed., University Science Books (2013), Section 7.4.3.3.
void iauRefco | ( | double | phpa, |
double | tc, | ||
double | rh, | ||
double | wl, | ||
double * | refa, | ||
double * | refb | ||
) |
Determine constants in the atmospheric refraction model.
Determine the constants A and B in the atmospheric refraction model dZ = A tan Z + B tan^3 Z.
Z is the "observed" zenith distance (i.e. affected by refraction) and dZ is what to add to Z to give the "topocentric" (i.e. in vacuo) zenith distance.
[in] | phpa | pressure at the observer (hPa = millibar) |
[in] | tc | ambient temperature at the observer (deg C) |
[in] | rh | relative humidity at the observer (range 0-1) |
[in] | wl | wavelength (micrometers) |
[out] | refa | tan Z coefficient (radians) |
[out] | refb | tan^3 Z coefficient (radians) |
Notes:
1) The model balances speed and accuracy to give good results in applications where performance at low altitudes is not paramount. Performance is maintained across a range of conditions, and applies to both optical/IR and radio.
2) The model omits the effects of (i) height above sea level (apart from the reduced pressure itself), (ii) latitude (i.e. the flattening of the Earth), (iii) variations in tropospheric lapse rate and (iv) dispersive effects in the radio.
The model was tested using the following range of conditions:
lapse rates 0.0055, 0.0065, 0.0075 deg/meter latitudes 0, 25, 50, 75 degrees heights 0, 2500, 5000 meters ASL pressures mean for height -10% to +5% in steps of 5% temperatures -10 deg to +20 deg with respect to 280 deg at SL relative humidity 0, 0.5, 1 wavelengths 0.4, 0.6, ... 2 micron, + radio zenith distances 15, 45, 75 degrees
The accuracy with respect to raytracing through a model atmosphere was as follows:
worst RMS
optical/IR 62 mas 8 mas radio 319 mas 49 mas
For this particular set of conditions:
lapse rate 0.0065 K/meter latitude 50 degrees sea level pressure 1005 mb temperature 280.15 K humidity 80% wavelength 5740 Angstroms
the results were as follows:
ZD raytrace iauRefco Saastamoinen
10 10.27 10.27 10.27 20 21.19 21.20 21.19 30 33.61 33.61 33.60 40 48.82 48.83 48.81 45 58.16 58.18 58.16 50 69.28 69.30 69.27 55 82.97 82.99 82.95 60 100.51 100.54 100.50 65 124.23 124.26 124.20 70 158.63 158.68 158.61 72 177.32 177.37 177.31 74 200.35 200.38 200.32 76 229.45 229.43 229.42 78 267.44 267.29 267.41 80 319.13 318.55 319.10
deg arcsec arcsec arcsec
The values for Saastamoinen's formula (which includes terms up to tan^5) are taken from Hohenkerk and Sinclair (1985).
3) A wl value in the range 0-100 selects the optical/IR case and is wavelength in micrometers. Any value outside this range selects the radio case.
4) Outlandish input parameters are silently limited to mathematically safe values. Zero pressure is permissible, and causes zeroes to be returned.
5) The algorithm draws on several sources, as follows:
a) The formula for the saturation vapour pressure of water as a function of temperature and temperature is taken from Equations (A4.5-A4.7) of Gill (1982).
b) The formula for the water vapour pressure, given the saturation pressure and the relative humidity, is from Crane (1976), Equation (2.5.5).
c) The refractivity of air is a function of temperature, total pressure, water-vapour pressure and, in the case of optical/IR, wavelength. The formulae for the two cases are developed from Hohenkerk & Sinclair (1985) and Rueger (2002).
d) The formula for beta, the ratio of the scale height of the atmosphere to the geocentric distance of the observer, is an adaption of Equation (9) from Stone (1996). The adaptations, arrived at empirically, consist of (i) a small adjustment to the coefficient and (ii) a humidity term for the radio case only.
e) The formulae for the refraction constants as a function of n-1 and beta are from Green (1987), Equation (4.31).
References:
Crane, R.K., Meeks, M.L. (ed), "Refraction Effects in the Neutral Atmosphere", Methods of Experimental Physics: Astrophysics 12B, Academic Press, 1976.
Gill, Adrian E., "Atmosphere-Ocean Dynamics", Academic Press, 1982.
Green, R.M., "Spherical Astronomy", Cambridge University Press, 1987.
Hohenkerk, C.Y., & Sinclair, A.T., NAO Technical Note No. 63, 1985.
Rueger, J.M., "Refractive Index Formulae for Electronic Distance Measurement with Radio and Millimetre Waves", in Unisurv Report S-68, School of Surveying and Spatial Information Systems, University of New South Wales, Sydney, Australia, 2002.
Stone, Ronald C., P.A.S.P. 108, 1051-1058, 1996.
double iauS00a | ( | double | date1, |
double | date2 | ||
) |
The CIO locator using the IA2000A precission-nutation model.
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, using the IAU 2000A precession-nutation model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The CIO locator s is the difference between the right ascensions of the same point in two systems. The two systems are the GCRS and the CIP,CIO, and the point is the ascending node of the CIP equator. The CIO locator s remains a small fraction of 1 arcsecond throughout 1900-2100.
3) The series used to compute s is in fact for s+XY/2, where X and Y are the x and y components of the CIP unit vector; this series is more compact than a direct series for s would be. The present function uses the full IAU 2000A nutation model when predicting the CIP position. Faster results, with no significant loss of accuracy, can be obtained via the function iauS00b, which uses instead the IAU 2000B truncated model.
References:
Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
double iauS00b | ( | double | date1, |
double | date2 | ||
) |
The CIO locator using the IAU 2000B precission-nutation model.
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, using the IAU 2000B precession-nutation model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The CIO locator s is the difference between the right ascensions of the same point in two systems. The two systems are the GCRS and the CIP,CIO, and the point is the ascending node of the CIP equator. The CIO locator s remains a small fraction of 1 arcsecond throughout 1900-2100.
3) The series used to compute s is in fact for s+XY/2, where X and Y are the x and y components of the CIP unit vector; this series is more compact than a direct series for s would be. The present function uses the IAU 2000B truncated nutation model when predicting the CIP position. The function iauS00a uses instead the full IAU 2000A model, but with no significant increase in accuracy and at some cost in speed.
References:
Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
double iauS06a | ( | double | date1, |
double | date2 | ||
) |
The CIO locator using IAU2006 precession and IAU 2000A nutation models.
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, using the IAU 2006 precession and IAU 2000A nutation models.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The CIO locator s is the difference between the right ascensions of the same point in two systems. The two systems are the GCRS and the CIP,CIO, and the point is the ascending node of the CIP equator. The CIO locator s remains a small fraction of 1 arcsecond throughout 1900-2100.
3) The series used to compute s is in fact for s+XY/2, where X and Y are the x and y components of the CIP unit vector; this series is more compact than a direct series for s would be. The present function uses the full IAU 2000A nutation model when predicting the CIP position.
References:
Capitaine, N., Chapront, J., Lambert, S. and Wallace, P., "Expressions for the Celestial Intermediate Pole and Celestial Ephemeris Origin consistent with the IAU 2000A precession- nutation model", Astron.Astrophys. 400, 1145-1154 (2003)
n.b. The celestial ephemeris origin (CEO) was renamed "celestial intermediate origin" (CIO) by IAU 2006 Resolution 2.
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
int iauStarpm | ( | double | ra1, |
double | dec1, | ||
double | pmr1, | ||
double | pmd1, | ||
double | px1, | ||
double | rv1, | ||
double | ep1a, | ||
double | ep1b, | ||
double | ep2a, | ||
double | ep2b, | ||
double * | ra2, | ||
double * | dec2, | ||
double * | pmr2, | ||
double * | pmd2, | ||
double * | px2, | ||
double * | rv2 | ||
) |
Star proper motion.
Star proper motion: update star catalog data for space motion.
[in] | ra1 | right ascension (radians), before |
[in] | dec1 | declination (radians), before |
[in] | pmr1 | RA proper motion (radians/year), before |
[in] | pmd1 | Dec proper motion (radians/year), before |
[in] | px1 | parallax (arcseconds), before |
[in] | rv1 | radial velocity (km/s, +ve = receding), before |
[in] | ep1a | "before" epoch, part A (Note 1) |
[in] | ep1b | "before" epoch, part B (Note 1) |
[in] | ep2a | "after" epoch, part A (Note 1) |
[in] | ep2b | "after" epoch, part B (Note 1) |
[out] | ra2 | right ascension (radians), after |
[out] | dec2 | declination (radians), after |
[out] | pmr2 | RA proper motion (radians/year), after |
[out] | pmd2 | Dec proper motion (radians/year), after |
[out] | px2 | parallax (arcseconds), after |
[out] | rv2 | radial velocity (km/s, +ve = receding), after |
Notes:
1) The starting and ending TDB dates ep1a+ep1b and ep2a+ep2b are Julian Dates, apportioned in any convenient way between the two parts (A and B). For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
epna epnb 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) In accordance with normal star-catalog conventions, the object's right ascension and declination are freed from the effects of secular aberration. The frame, which is aligned to the catalog equator and equinox, is Lorentzian and centered on the SSB.
The proper motions are the rate of change of the right ascension and declination at the catalog epoch and are in radians per TDB Julian year.
The parallax and radial velocity are in the same frame.
3) Care is needed with units. The star coordinates are in radians and the proper motions in radians per Julian year, but the parallax is in arcseconds.
4) The RA proper motion is in terms of coordinate angle, not true angle. If the catalog uses arcseconds for both RA and Dec proper motions, the RA proper motion will need to be divided by cos(Dec) before use.
5) Straight-line motion at constant speed, in the inertial frame, is assumed.
6) An extremely small (or zero or negative) parallax is interpreted to mean that the object is on the "celestial sphere", the radius of which is an arbitrary (large) value (see the iauStarpv function for the value used). When the distance is overridden in this way, the status, initially zero, has 1 added to it.
7) If the space velocity is a significant fraction of c (see the constant VMAX in the function iauStarpv), it is arbitrarily set to zero. When this action occurs, 2 is added to the status.
8) The relativistic adjustment carried out in the iauStarpv function involves an iterative calculation. If the process fails to converge within a set number of iterations, 4 is added to the status.
int iauStarpv | ( | double | ra, |
double | dec, | ||
double | pmr, | ||
double | pmd, | ||
double | px, | ||
double | rv, | ||
double | pv[2][3] | ||
) |
Convert star catalog coordinates to position+velocity vector.
[in] | ra | right ascension (radians) |
[in] | dec | declination (radians) |
[in] | pmr | RA proper motion (radians/year) |
[in] | pmd | Dec proper motion (radians/year) |
[in] | px | parallax (arcseconds) |
[in] | rv | radial velocity (km/s, positive = receding) |
[out] | pv | pv-vector (AU, AU/day) |
Notes:
1) The star data accepted by this function are "observables" for an imaginary observer at the solar-system barycenter. Proper motion and radial velocity are, strictly, in terms of barycentric coordinate time, TCB. For most practical applications, it is permissible to neglect the distinction between TCB and ordinary "proper" time on Earth (TT/TAI). The result will, as a rule, be limited by the intrinsic accuracy of the proper-motion and radial-velocity data; moreover, the pv-vector is likely to be merely an intermediate result, so that a change of time unit would cancel out overall.
In accordance with normal star-catalog conventions, the object's right ascension and declination are freed from the effects of secular aberration. The frame, which is aligned to the catalog equator and equinox, is Lorentzian and centered on the SSB.
2) The resulting position and velocity pv-vector is with respect to the same frame and, like the catalog coordinates, is freed from the effects of secular aberration. Should the "coordinate direction", where the object was located at the catalog epoch, be required, it may be obtained by calculating the magnitude of the position vector pv[0][0-2] dividing by the speed of light in AU/day to give the light-time, and then multiplying the space velocity pv[1][0-2] by this light-time and adding the result to pv[0][0-2].
Summarizing, the pv-vector returned is for most stars almost identical to the result of applying the standard geometrical "space motion" transformation. The differences, which are the subject of the Stumpff paper referenced below, are:
(i) In stars with significant radial velocity and proper motion, the constantly changing light-time distorts the apparent proper motion. Note that this is a classical, not a relativistic, effect.
(ii) The transformation complies with special relativity.
3) Care is needed with units. The star coordinates are in radians and the proper motions in radians per Julian year, but the parallax is in arcseconds; the radial velocity is in km/s, but the pv-vector result is in AU and AU/day.
4) The RA proper motion is in terms of coordinate angle, not true angle. If the catalog uses arcseconds for both RA and Dec proper motions, the RA proper motion will need to be divided by cos(Dec) before use.
5) Straight-line motion at constant speed, in the inertial frame, is assumed.
6) An extremely small (or zero or negative) parallax is interpreted to mean that the object is on the "celestial sphere", the radius of which is an arbitrary (large) value (see the constant PXMIN). When the distance is overridden in this way, the status, initially zero, has 1 added to it.
7) If the space velocity is a significant fraction of c (see the constant VMAX), it is arbitrarily set to zero. When this action occurs, 2 is added to the status.
8) The relativistic adjustment involves an iterative calculation. If the process fails to converge within a set number (IMAX) of iterations, 4 is added to the status.
9) The inverse transformation is performed by the function iauPvstar.
Reference:
Stumpff, P., 1985, Astron.Astrophys. 144, 232-240.
int iauTf2a | ( | char | s, |
int | ihour, | ||
int | imin, | ||
double | sec, | ||
double * | rad | ||
) |
Convert hours, minutes, seconds to radians.
[in] | s | sign: '-' = negative, otherwise positive |
[in] | ihour | hours |
[in] | imin | minutes |
[in] | sec | seconds |
[out] | rad | angle in radians |
Notes:
1) The result is computed even if any of the range checks fail.
2) Negative ihour, imin and/or sec produce a warning status, but the absolute value is used in the conversion.
3) If there are multiple errors, the status value reflects only the first, the smallest taking precedence.
int iauTf2d | ( | char | s, |
int | ihour, | ||
int | imin, | ||
double | sec, | ||
double * | days | ||
) |
Convert hours, minutes, seconds to days.
[in] | s | sign: '-' = negative, otherwise positive |
[in] | ihour | hours |
[in] | imin | minutes |
[in] | sec | seconds |
[out] | days | interval in days |
Notes:
1) The result is computed even if any of the range checks fail.
2) Negative ihour, imin and/or sec produce a warning status, but the absolute value is used in the conversion.
3) If there are multiple errors, the status value reflects only the first, the smallest taking precedence.
int iauTporv | ( | double | xi, |
double | eta, | ||
double | v[3], | ||
double | v01[3], | ||
double | v02[3] | ||
) |
In the tangent plane projection, determine the direction cosines of the tangent point.
Notes:
1) The tangent plane projection is also called the "gnomonic projection" and the "central projection".
2) The eta axis points due north in the adopted coordinate system. If the direction cosines represent observed (RA,Dec), the tangent plane coordinates (xi,eta) are conventionally called the "standard coordinates". If the direction cosines are with respect to a right-handed triad, (xi,eta) are also right-handed. The units of (xi,eta) are, effectively, radians at the tangent point.
3) The vector v must be of unit length or the result will be wrong.
4) Cases where there is no solution can arise only near the poles. For example, it is clearly impossible for a star at the pole itself to have a non-zero xi value, and hence it is meaningless to ask where the tangent point would have to be.
5) Also near the poles, cases can arise where there are two useful solutions. The return value indicates whether the second of the two solutions returned is useful; 1 indicates only one useful solution, the usual case.
6) The basis of the algorithm is to solve the spherical triangle PSC, where P is the north celestial pole, S is the star and C is the tangent point. Calling the celestial spherical coordinates of the star and tangent point (a,b) and (a0,b0) respectively, and writing rho^2 = (xi^2+eta^2) and r^2 = (1+rho^2), and transforming the vector v into (a,b) in the normal way, side c is then (pi/2-b), side p is sqrt(xi^2+eta^2) and side s (to be found) is (pi/2-b0), while angle C is given by sin(C) = xi/rho and cos(C) = eta/rho; angle P (to be found) is (a-a0). After solving the spherical triangle, the result (a0,b0) can be expressed in vector form as v0.
7) This function is a member of the following set:
spherical vector solve for iauTpxes iauTpxev xi,eta iauTpsts iauTpstv star iauTpors > iauTporv < origin
[in] | xi | rectangular coordinates of star image |
[in] | eta | rectangular coordinates of star image |
[in] | v | star's direction cosines |
[out] | v01 | tangent point's direction socinse, solution 1. |
[out] | v02 | tangent point's direction socinse, solution 2. |
void iauTpsts | ( | double | xi, |
double | eta, | ||
double | a0, | ||
double | b0, | ||
double * | a, | ||
double * | b | ||
) |
In the tangent plane projection, solve for the spherical coordinates of the star.
In the tangent plane projection, given the star's rectangular coordinates and the spherical coordinates of the tangent point, solve for the spherical coordinates of the star. 1) The tangent plane projection is also called the "gnomonic projection" and the "central projection".
2) The eta axis points due north in the adopted coordinate system. If the spherical coordinates are observed (RA,Dec), the tangent plane coordinates (xi,eta) are conventionally called the "standard coordinates". If the spherical coordinates are with respect to a right-handed triad, (xi,eta) are also right-handed. The units of (xi,eta) are, effectively, radians at the tangent point.
3) All angular arguments are in radians.
4) This function is a member of the following set:
spherical vector solve for iauTpxes iauTpxev xi,eta > iauTpsts < iauTpstv star iauTpors iauTporv origin
[in] | xi | rectangular coordinates of star image |
[in] | eta | rectangular coordinates of star image |
[in] | a0 | tange points' spherical cordinate |
[in] | b0 | tange points' spherical cordinate |
[out] | a | star's spherical coordinate |
[out] | b | star's spherical coordinate |
void iauTpstv | ( | double | xi, |
double | eta, | ||
double | v0[3], | ||
double | v[3] | ||
) |
In the tangent plane projection, solve for the direction cosines of the star.
In the tangent plane projection, given the star's rectangular coordinates and the direction cosines of the tangent point, solve for the direction cosines of the star. 1) The tangent plane projection is also called the "gnomonic projection" and the "central projection".
2) The eta axis points due north in the adopted coordinate system. If the direction cosines represent observed (RA,Dec), the tangent plane coordinates (xi,eta) are conventionally called the "standard coordinates". If the direction cosines are with respect to a right-handed triad, (xi,eta) are also right-handed. The units of (xi,eta) are, effectively, radians at the tangent point.
3) The method used is to complete the star vector in the (xi,eta) based triad and normalize it, then rotate the triad to put the tangent point at the pole with the x-axis aligned to zero longitude. Writing (a0,b0) for the celestial spherical coordinates of the tangent point, the sequence of rotations is (b-pi/2) around the x-axis followed by (-a-pi/2) around the z-axis.
4) If vector v0 is not of unit length, the returned vector v will be wrong.
5) If vector v0 points at a pole, the returned vector v will be based on the arbitrary assumption that the longitude coordinate of the tangent point is zero.
6) This function is a member of the following set:
spherical vector solve for iauTpxes iauTpxev xi,eta iauTpsts > iauTpstv < star iauTpors iauTporv origin
[in] | xi | rectangular coordinates of star image |
[in] | eta | rectangular coordinates of star image |
[in] | v0 | tangent point's direction cosines |
[out] | v | star's directino cosines |
int iauTpxes | ( | double | a, |
double | b, | ||
double | a0, | ||
double | b0, | ||
double * | xi, | ||
double * | eta | ||
) |
In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.Notes:
1) The tangent plane projection is also called the "gnomonic projection" and the "central projection".
2) The eta axis points due north in the adopted coordinate system. If the spherical coordinates are observed (RA,Dec), the tangent plane coordinates (xi,eta) are conventionally called the "standard coordinates". For right-handed spherical coordinates, (xi,eta) are also right-handed. The units of (xi,eta) are, effectively, radians at the tangent point.
3) All angular arguments are in radians.
4) This function is a member of the following set:
spherical vector solve for > iauTpxes < iauTpxev xi,eta iauTpsts iauTpstv star iauTpors iauTporv origin
[in] | a | star's spherical coordinate |
[in] | b | star's spherical coordinate |
[in] | a0 | tangent point's spherical coordinate |
[in] | b0 | tangent point's spherical coordinate |
int iauTpxev | ( | double | v[3], |
double | v0[3], | ||
double * | xi, | ||
double * | eta | ||
) |
In the tangent plane projection, solve for the star's rectangular coordinates in the tangent plane.In the tangent plane projection, given celestial direction cosines for a star and the tangent point, solve for the star's rectangular coordinates in the tangent plane.
Notes:
1) The tangent plane projection is also called the "gnomonic projection" and the "central projection".
2) The eta axis points due north in the adopted coordinate system. If the direction cosines represent observed (RA,Dec), the tangent plane coordinates (xi,eta) are conventionally called the "standard coordinates". If the direction cosines are with respect to a right-handed triad, (xi,eta) are also right-handed. The units of (xi,eta) are, effectively, radians at the tangent point.
3) The method used is to extend the star vector to the tangent plane and then rotate the triad so that (x,y) becomes (xi,eta). Writing (a,b) for the celestial spherical coordinates of the star, the sequence of rotations is (a+pi/2) around the z-axis followed by (pi/2-b) around the x-axis.
4) If vector v0 is not of unit length, or if vector v is of zero length, the results will be wrong.
5) If v0 points at a pole, the returned (xi,eta) will be based on the arbitrary assumption that the longitude coordinate of the tangent point is zero.
6) This function is a member of the following set:
spherical vector solve for iauTpxes > iauTpxev < xi,eta iauTpsts iauTpstv star iauTpors iauTporv origin
[in] | v | direction cosines of the start |
[in] | v0 | direction cosines of the tangent point |
[in] | xi | tanget plane coordinate of star |
[in] | eta | tanget plane coordinate of star |
void iauXys00a | ( | double | date1, |
double | date2, | ||
double * | x, | ||
double * | y, | ||
double * | s | ||
) |
Compute X,Y coordinates of the CIP and CIO locator.
For a given TT date, compute the X,Y coordinates of the Celestial Intermediate Pole and the CIO locator s, using the IAU 2000A precession-nutation model.
[in] | date1 | TT as a 2-part Julian Date (Note 1) |
[in] | date2 | TT as a 2-part Julian Date (Note 1) |
[out] | x | Celestial Intermediate Pole (Note 2) |
[out] | y | Celestial Intermediate Pole (Note 2) |
[out] | s | the CIO locator s (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
3) The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
4) A faster, but slightly less accurate result (about 1 mas for X,Y), can be obtained by using instead the iauXys00b function.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauXys00b | ( | double | date1, |
double | date2, | ||
double * | x, | ||
double * | y, | ||
double * | s | ||
) |
Compute X,Y coordinates of the CIP and CIO locator.
For a given TT date, compute the X,Y coordinates of the Celestial Intermediate Pole and the CIO locator s, using the IAU 2000B precession-nutation model.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | x,y | Celestial Intermediate Pole (Note 2) |
[out] | s | the CIO locator s (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
3) The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
4) The present function is faster, but slightly less accurate (about 1 mas in X,Y), than the iauXys00a function.
Reference:
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
void iauXys06a | ( | double | date1, |
double | date2, | ||
double * | x, | ||
double * | y, | ||
double * | s | ||
) |
Compute X,Y coordinates of the CIP and CIO locator.
For a given TT date, compute the X,Y coordinates of the Celestial Intermediate Pole and the CIO locator s, using the IAU 2006 precession and IAU 2000A nutation models.
[in] | date1,date2 | TT as a 2-part Julian Date (Note 1) |
[out] | x,y | Celestial Intermediate Pole (Note 2) |
[out] | s | the CIO locator s (Note 2) |
Notes:
1) The TT date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TT)=2450123.7 could be expressed in any of these ways, among others:
date1 date2 2450123.7 0.0 (JD method) 2451545.0 -1421.3 (J2000 method) 2400000.5 50123.2 (MJD method) 2450123.5 0.2 (date & time method)
The JD method is the most natural and convenient to use in cases where the loss of several decimal digits of resolution is acceptable. The J2000 method is best matched to the way the argument is handled internally and will deliver the optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience.
2) The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
3) The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
4) Series-based solutions for generating X and Y are also available: see Capitaine & Wallace (2006) and iauXy06.
References:
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981