API
ERFA.AULT
— Constant.Light time for 1 au (s)
ERFA.CMPS
— Constant.Speed of light (m/s)
ERFA.D2PI
— Constant.2Pi
ERFA.DAS2R
— Constant.Arcseconds to radians
ERFA.DAU
— Constant.Astronomical unit (m, IAU 2012)
ERFA.DAYSEC
— Constant.Seconds per day
ERFA.DC
— Constant.Speed of light (au per day)
ERFA.DD2R
— Constant.Degrees to radians
ERFA.DJ00
— Constant.Reference epoch (J2000.0), Julian Date
ERFA.DJC
— Constant.Days per Julian century
ERFA.DJM
— Constant.Days per Julian millennium
ERFA.DJM0
— Constant.Julian Date of Modified Julian Date zero
ERFA.DJM00
— Constant.Reference epoch (J2000.0), Modified Julian Date
ERFA.DJM77
— Constant.1977 Jan 1.0 as MJD
ERFA.DJY
— Constant.Days per Julian year
ERFA.DMAS2R
— Constant.Milliarcseconds to radians
ERFA.DPI
— Constant.Pi
ERFA.DR2AS
— Constant.Radians to arcseconds
ERFA.DR2D
— Constant.Radians to degrees
ERFA.DS2R
— Constant.Seconds of time to radians
ERFA.DTY
— Constant.Length of tropical year B1900 (days)
ERFA.ELB
— Constant.L_B = 1 - d(TDB)/d(TCB)
ERFA.ELG
— Constant.L_G = 1 - d(TT)/d(TCG)
ERFA.SRS
— Constant.Schwarzschild radius of the Sun (au) = 2 * 1.32712440041e20 / (2.99792458e8)^2 / 1.49597870700e11
ERFA.TDB0
— Constant.TDB (s) at TAI 1977/1/1.0
ERFA.TTMTAI
— Constant.TT minus TAI (s)
ERFA.TURNAS
— Constant.Arcseconds in a full circle
ERFA.a2af
— Function.a2af(ndp, a)
Decompose radians into degrees, arcminutes, arcseconds, fraction.
Given
ndp
: Resolution (Note 1)angle
: Angle in radians
Returned
sign
: '+' or '-'idmsf
: Degrees, arcminutes, arcseconds, fraction
Called
eraD2tf
: decompose days to hms
Notes
The argument ndp is interpreted as follows:
ndp resolution : ...0000 00 00 -7 1000 00 00 -6 100 00 00 -5 10 00 00 -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 : 0 00 00.000...
The largest positive useful value for ndp is determined by the size of angle, the format of doubles on the target platform, and the risk of overflowing idmsf[3]. On a typical platform, for angle up to 2pi, the available floating-point precision might correspond to ndp=12. However, the practical limit is typically ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is only 16 bits.
The absolute value of angle may exceed 2pi. In cases where it does not, it is up to the caller to test for and handle the case where angle is very nearly 2pi and rounds up to 360 degrees, by testing for idmsf[0]=360 and setting idmsf[0-3] to zero.
ERFA.a2tf
— Function.a2tf(ndp, a)
Decompose radians into hours, minutes, seconds, fraction.
Given
ndp
: Resolution (Note 1)angle
: Angle in radians
Returned
sign
: '+' or '-'ihmsf
: Hours, minutes, seconds, fraction
Called
eraD2tf
: decompose days to hms
Notes
The argument ndp is interpreted as follows:
ndp resolution : ...0000 00 00 -7 1000 00 00 -6 100 00 00 -5 10 00 00 -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 : 0 00 00.000...
The largest positive useful value for ndp is determined by the size of angle, the format of doubles on the target platform, and the risk of overflowing ihmsf[3]. On a typical platform, for angle up to 2pi, the available floating-point precision might correspond to ndp=12. However, the practical limit is typically ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is only 16 bits.
The absolute value of angle may exceed 2pi. In cases where it does not, it is up to the caller to test for and handle the case where angle is very nearly 2pi and rounds up to 24 hours, by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero.
ERFA.ab
— Method.ab(pnat, v, s, bm1)
Apply aberration to transform natural direction into proper direction.
Given
pnat
: Natural direction to the source (unit vector)v
: Observer barycentric velocity in units of cs
: Distance between the Sun and the observer (au)bm1
: $\sqrt{1-|v|^2}$ reciprocal of Lorenz factor
Returned
ppr
: Proper direction to source (unit vector)
Notes
The algorithm is based on Expr. (7.40) in the Explanatory Supplement (Urban & Seidelmann 2013), but with the following changes:
Rigorous rather than approximate normalization is applied.
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.
In almost all cases, the maximum accuracy will be limited by the supplied velocity. For example, if the ERFA
eraEpv00
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).
Called
eraPdp
: scalar product of two p-vectors
ERFA.af2a
— Method.af2a(s, ideg, iamin, asec)
Convert degrees, arcminutes, arcseconds to radians.
Given
s
: Sign: '-' = negative, otherwise positiveideg
: Degreesiamin
: Arcminutesasec
: Arcseconds
Returned
rad
: Angle in radians
Notes
The result is computed even if any of the range checks fail.
Negative ideg, iamin and/or asec produce a warning status, but the absolute value is used in the conversion.
If there are multiple errors, the status value reflects only the first, the smallest taking precedence.
ERFA.anp
— Function.anp(a)
Normalize angle into the range 0 <= a < 2pi.
Given
a
: Angle (radians)
Returned
Angle in range 0-2pi
ERFA.anpm
— Function.anpm(a)
Normalize angle into the range -pi <= a < +pi.
Given
a
: Angle (radians)
Returned
Angle in range +/-pi
ERFA.apcg
— Method.apcg(date1, date2, ebpv, ehp)
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.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)ebpv
: Earth barycentric pos/vel (au, au/day)ehp
: Earth heliocentric position (au)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Notes
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.
All the vectors are with respect to BCRS axes.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by
eraAtciq
anderaAticq
.
Called
eraApcs
: astrometry parameters, ICRS-GCRS, space observer
ERFA.apcg13
— Method.apcg13(date1, date2)
For a geocentric observer, prepare star-independent astrometry parameters for transformations between ICRS and GCRS coordinates. The caller supplies the date, and ERFA 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.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Notes
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.
All the vectors are with respect to BCRS axes.
In cases where the caller wishes to supply his own Earth ephemeris, the function eraApcg can be used instead of the present function.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtciq* and eraAticq*.
Called
eraEpv00
: Earth position and velocityeraApcg
: astrometry parameters, ICRS-GCRS, geocenter
ERFA.apci
— Method.apci(date1, date2, ebpv, ehp, x, y, s)
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.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)ebpv
: Earth barycentric position/velocity (au, au/day)ehp
: Earth heliocentric position (au)x
,y
: CIP X,Y (components of unit vector)s
: The CIO locator s (radians)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Notes
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.
All the vectors are with respect to BCRS axes.
In cases where the caller does not wish to provide the Earth ephemeris and CIP/CIO, the function eraApci13 can be used instead of the present function. This computes the required quantities using other ERFA functions.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtciq* and eraAticq*.
Called
eraApcg
: astrometry parameters, ICRS-GCRS, geocentereraC2ixys
: celestial-to-intermediate matrix, given X,Y and s
ERFA.apci13
— Method.apci13(date1, date2)
For a terrestrial observer, prepare star-independent astrometry parameters for transformations between ICRS and geocentric CIRS coordinates. The caller supplies the date, and ERFA 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.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
eo
: Equation of the origins (ERA-GST)
Notes
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.
All the vectors are with respect to BCRS axes.
In cases where the caller wishes to supply his own Earth ephemeris and CIP/CIO, the function eraApci can be used instead of the present function.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtciq* and eraAticq*.
Called
eraEpv00
: Earth position and velocityeraPnm06a
: classical NPB matrix, IAU 2006/2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006eraApci
: astrometry parameters, ICRS-CIRSeraEors
: equation of the origins, given NPB matrix and s
ERFA.apco
— Method.apco(date1, date2, ebpv, ehp, x, y, s, theta, elong, phi, hm, xp, yp, sp, refa, refb)
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.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)ebpv
: Earth barycentric PV (au, au/day, Note 2)ehp
: Earth heliocentric P (au, Note 2)x
,y
: CIP X,Y (components of unit vector)s
: The CIO locator s (radians)theta
: Earth rotation angle (radians)elong
: Longitude (radians, east +ve, Note 3)phi
: Latitude (geodetic, radians, Note 3)hm
: Height above ellipsoid (m, geodetic, Note 3)xp
,yp
: Polar motion coordinates (radians, Note 4)sp
: The TIO locator s' (radians, Note 4)refa
: Refraction constant A (radians, Note 5)refb
: Refraction constant B (radians, Note 5)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Notes
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.
The vectors eb, eh, and all the astrom vectors, are with respect to BCRS axes.
The geographical coordinates are with respect to the ERFA_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.
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.
The refraction constants refa and refb are for use in a dZ = Atan(Z)+Btan^3(Z) model, where Z is the observed (i.e. refracted) zenith distance and dZ is the amount of refraction.
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.
In cases where the caller does not wish to provide the Earth Ephemeris, the Earth rotation information and refraction constants, the function eraApco13 can be used instead of the present function. This starts from UTC and weather readings etc. and computes suitable values using other ERFA functions.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by
eraAtioq
,eraAtoiq
,eraAtciq
anderaAticq
.
Called
eraAper
: astrometry parameters: update ERAeraC2ixys
: celestial-to-intermediate matrix, given X,Y and seraPvtob
: position/velocity of terrestrial stationeraTrxpv
: product of transpose of r-matrix and pv-vectoreraApcs
: astrometry parameters, ICRS-GCRS, space observereraCr
: copy r-matrix
ERFA.apco13
— Method.apco13(utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tk, rh, wl)
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 ERFA 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.
Given
utc1
: UTC as a 2-part...utc2
: ...quasi Julian Date (Notes 1,2)dut1
: UT1-UTC (seconds, Note 3)elong
: Longitude (radians, east +ve, Note 4)phi
: Latitude (geodetic, radians, Note 4)hm
: Height above ellipsoid (m, geodetic, Notes 4,6)xp
,yp
: Polar motion coordinates (radians, Note 5)phpa
: Pressure at the observer (hPa = mB, Note 6)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers, Note 7)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
eo
: Equation of the origins (ERA-GST)
Notes
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 eraDtf2d 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.
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 eraDat for further details.
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.
The geographical coordinates are with respect to the ERFA_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.
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.
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.
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).
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.
In cases where the caller wishes to supply his own Earth ephemeris, Earth rotation information and refraction constants, the function eraApco can be used instead of the present function.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtioq, eraAtoiq, eraAtciq* and eraAticq*.
Called
eraUtctai
: UTC to TAIeraTaitt
: TAI to TTeraUtcut1
: UTC to UT1eraEpv00
: Earth position and velocityeraPnm06a
: classical NPB matrix, IAU 2006/2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006eraEra00
: Earth rotation angle, IAU 2000eraSp00
: the TIO locator s', IERS 2000eraRefco
: refraction constants for given ambient conditionseraApco
: astrometry parameters, ICRS-observederaEors
: equation of the origins, given NPB matrix and s
ERFA.apcs
— Method.apcs(date1, date2, pv, ebpv, ehp)
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.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)pv
: Observer's geocentric pos/vel (m, m/s)ebpv
: Earth barycentric PV (au, au/day)ehp
: Earth heliocentric P (au)
Returned
astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Notes
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.
All the vectors are with respect to BCRS axes.
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.
In cases where the caller does not wish to provide the Earth ephemeris, the function eraApcs13 can be used instead of the present function. This computes the Earth ephemeris using the ERFA function eraEpv00.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtciq* and eraAticq*.
Called
eraCp
: copy p-vectoreraPm
: modulus of p-vectoreraPn
: decompose p-vector into modulus and directioneraIr
: initialize r-matrix to identity
ERFA.apcs13
— Method.apcs13(date1, date2, pv)
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 ERFA models.
The parameters produced by this function are required in the space motion, parallax, light deflection and aberration parts of the astrometric transformation chain.
Given
date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)pv
: Observer's geocentric pos/vel (Note 3)
Returned
EraASTROM* star-independent astrometry parameters:
pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Notes
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.
All the vectors are with respect to BCRS axes.
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.
In cases where the caller wishes to supply his own Earth ephemeris, the function eraApcs can be used instead of the present function.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtciq* and eraAticq*.
Called
eraEpv00
: Earth position and velocityeraApcs
: astrometry parameters, ICRS-GCRS, space observer
ERFA.aper
— Method.aper(theta, astrom)
In the star-independent astrometry parameters, update only the Earth rotation angle, supplied by the caller explicitly.
Given
theta
: Earth rotation angle (radians, Note 2)astrom
: Star-independent astrometry parameters:pmt
: unchangedeb
: unchangedeh
: unchangedem
: unchangedv
: unchangedbm1
: unchangedbpn
: unchangedalong
: Longitude + s' (radians)xpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Returned
astrom
: Star-independent astrometry parameters:pmt
: unchangedeb
: unchangedeh
: unchangedem
: unchangedv
: unchangedbm1
: unchangedbpn
: unchangedalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: "Local" Earth rotation angle (radians)refa
: unchangedrefb
: unchanged
Notes
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.
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.
The function eraAper13 can be used instead of the present function, and starts from UT1 rather than ERA itself.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
ERFA.aper13
— Method.aper13(ut11, ut12, astrom)
In the star-independent astrometry parameters, update only the Earth rotation angle. The caller provides UT1, (n.b. not UTC).
Given
ut11
: UT1 as a 2-part...ut12
: ...Julian Date (Note 1)astrom
: Star-independent astrometry parameters:pmt
: unchangedeb
: unchangedeh
: unchangedem
: unchangedv
: unchangedbm1
: unchangedbpn
: unchangedalong
: Longitude + s' (radians)xpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: unchangedrefa
: unchangedrefb
: unchanged
Returned
astrom
: Star-independent astrometry parameters:pmt
: unchangedeb
: unchangedeh
: unchangedem
: unchangedv
: unchangedbm1
: unchangedbpn
: unchangedalong
: unchangedxpl
: unchangedypl
: unchangedsphi
: unchangedcphi
: unchangeddiurab
: unchangederal
: "Local" Earth rotation angle (radians)refa
: unchangedrefb
: unchanged
Notes
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.
If the caller wishes to provide the Earth rotation angle itself, the function eraAper can be used instead. One use of this technique is to substitute Greenwich apparent sidereal time and thereby to support equinox based transformations directly.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
Called
eraAper
: astrometry parameters: update ERAeraEra00
: Earth rotation angle, IAU 2000
ERFA.apio
— Method.apio(sp, theta, elong, phi, hm, xp, yp, refa, refb)
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.
Given
sp
: The TIO locator s' (radians, Note 1)theta
: Earth rotation angle (radians)elong
: Longitude (radians, east +ve, Note 2)phi
: Geodetic latitude (radians, Note 2)hm
: Height above ellipsoid (m, geodetic Note 2)xp
,yp
: Polar motion coordinates (radians, Note 3)refa
: Refraction constant A (radians, Note 4)refb
: Refraction constant B (radians, Note 4)
Returned
astrom
: Star-independent astrometry parameters:pmt
: unchangedeb
: unchangedeh
: unchangedem
: unchangedv
: unchangedbm1
: unchangedbpn
: unchangedalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Notes
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 ERFA function eraSp00.
The geographical coordinates are with respect to the ERFA_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.
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.
The refraction constants refa and refb are for use in a dZ = Atan(Z)+Btan^3(Z) model, where Z is the observed (i.e. refracted) zenith distance and dZ is the amount of refraction.
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.
In cases where the caller does not wish to provide the Earth rotation information and refraction constants, the function eraApio13 can be used instead of the present function. This starts from UTC and weather readings etc. and computes suitable values using other ERFA functions.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtioq and eraAtoiq.
Called
eraPvtob
: position/velocity of terrestrial stationeraAper
: astrometry parameters: update ERA
ERFA.apio13
— Method.apio13(utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tk, rh, wl)
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.
Given
utc1
: UTC as a 2-part...utc2
: ...quasi Julian Date (Notes 1,2)dut1
: UT1-UTC (seconds)elong
: Longitude (radians, east +ve, Note 3)phi
: Geodetic latitude (radians, Note 3)hm
: Height above ellipsoid (m, geodetic Notes 4,6)xp
,yp
: Polar motion coordinates (radians, Note 5)phpa
: Pressure at the observer (hPa = mB, Note 6)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers, Note 7)
Returned
astrom
: Star-independent astrometry parameters:pmt
: unchangedeb
: unchangedeh
: unchangedem
: unchangedv
: unchangedbm1
: unchangedbpn
: unchangedalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Notes
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 eraDtf2d 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.
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 eraDat for further details.
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.
The geographical coordinates are with respect to the ERFA_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.
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.
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.
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).
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.
In cases where the caller wishes to supply his own Earth rotation information and refraction constants, the function eraApc can be used instead of the present function.
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 eraApcg eraApcg13 geocentric ICRS <-> GCRS eraApci eraApci13 terrestrial ICRS <-> CIRS eraApco eraApco13 terrestrial ICRS <-> observed eraApcs eraApcs13 space ICRS <-> GCRS eraAper eraAper13 terrestrial update Earth rotation eraApio eraApio13 terrestrial CIRS <-> observed Those with names ending in "13" use contemporary ERFA 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.
The context structure astrom produced by this function is used by eraAtioq and eraAtoiq.
Called
eraUtctai
: UTC to TAIeraTaitt
: TAI to TTeraUtcut1
: UTC to UT1eraSp00
: the TIO locator s', IERS 2000eraEra00
: Earth rotation angle, IAU 2000eraRefco
: refraction constants for given ambient conditionseraApio
: astrometry parameters, CIRS-observed
ERFA.atci13
— Method.atci13(rc, dc, pr, pd, px, rv, date1, date2)
Transform ICRS star data, epoch J2000.0, to CIRS.
Given
rc
: ICRS right ascension at J2000.0 (radians, Note 1)dc
: ICRS declination at J2000.0 (radians, Note 1)pr
: RA proper motion (radians/year; Note 2)pd
: Dec proper motion (radians/year)px
: Parallax (arcsec)rv
: Radial velocity (km/s, +ve if receding)date1
: TDB as a 2-part...date2
: ...Julian Date (Note 3)
Returned
ri
,di
: CIRS geocentric RA,Dec (radians)eo
: Equation of the origins (ERA-GST, Note 5)
Notes
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 eraPmsafe before use.
The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
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.
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 ERFA function eraEpv00 (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.
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 eraAnp function can then be applied, as required, to keep the result in the conventional 0-2pi range.)
Called
eraApci13
: astrometry parameters, ICRS-CIRS, 2013eraAtciq
: quick ICRS to CIRS
ERFA.atciq
— Method.atciq(rc, dc, pr, pd, px, rv, astrom)
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 eraApci[13], eraApcg[13], eraApco[13] or eraApcs[13].
If the parallax and proper motions are zero the eraAtciqz function can be used instead.
Given
rc
,dc
: ICRS RA,Dec at J2000.0 (radians)pr
: RA proper motion (radians/year; Note 3)pd
: Dec proper motion (radians/year)px
: Parallax (arcsec)rv
: Radial velocity (km/s, +ve if receding)astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Returned
ri
,di
: CIRS RA,Dec (radians)
Notes
All the vectors are with respect to BCRS axes.
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 eraPmsafe before use.
The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
Called
eraPmpx
: proper motion and parallaxeraLdsun
: light deflection by the SuneraAb
: stellar aberrationeraRxp
: product of r-matrix and pv-vectoreraC2s
: p-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
ERFA.atciqn
— Method.atciqn(rc, dc, pr, pd, px, rv, astrom, b::Vector{LDBODY})
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 eraApci[13], eraApcg[13], eraApco[13] or eraApcs[13].
If the only light-deflecting body to be taken into account is the Sun, the eraAtciq function can be used instead. If in addition the parallax and proper motions are zero, the eraAtciqz function can be used.
Given
rc
,dc
: ICRS RA,Dec at J2000.0 (radians)pr
: RA proper motion (radians/year; Note 3)pd
: Dec proper motion (radians/year)px
: Parallax (arcsec)rv
: Radial velocity (km/s, +ve if receding)EraASTROM* star-independent astrometry parameters:
pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
n
: Number of bodies (Note 3)b::Vector{LDBODY}
: Data for each of the n bodies (Notes 3,4):bm
: Mass of the body (solar masses, Note 5)dl
: Deflection limiter (Note 6)pv
: Barycentric PV of the body (au, au/day)
Returned
ri
,di
: CIRS RA,Dec (radians)
Notes
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 eraPmsafe before use.
The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
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.
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.
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.
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
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.
Called
eraPmpx
: proper motion and parallaxeraLdn
: light deflection by n bodieseraAb
: stellar aberrationeraRxp
: product of r-matrix and pv-vectoreraC2s
: p-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
ERFA.atciqz
— Method.atciqz(rc, dc, astrom)
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 eraApci[13], eraApcg[13], eraApco[13] or eraApcs[13].
The corresponding function for the case of non-zero parallax and proper motion is eraAtciq.
Given
rc
,dc
: ICRS astrometric RA,Dec (radians)astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Returned
ri
,di
: CIRS RA,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).
Called
eraS2c
: spherical coordinates to unit vectoreraLdsun
: light deflection due to SuneraAb
: stellar aberrationeraRxp
: product of r-matrix and p-vectoreraC2s
: p-vector to sphericaleraAnp
: normalize angle into range +/- pi
ERFA.atco13
— Method.atco13(rc, dc, pr, pd, px, rv, utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tk, rh, wl)
ICRS RA,Dec to observed place. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
ERFA models are used for the Earth ephemeris, bias-precession- nutation, Earth orientation and refraction.
Given
rc
,dc
: ICRS right ascension at J2000.0 (radians, Note 1)pr
: RA proper motion (radians/year; Note 2)pd
: Dec proper motion (radians/year)px
: Parallax (arcsec)rv
: Radial velocity (km/s, +ve if receding)utc1
: UTC as a 2-part...utc2
: ...quasi Julian Date (Notes 3-4)dut1
: UT1-UTC (seconds, Note 5)elong
: Longitude (radians, east +ve, Note 6)phi
: Latitude (geodetic, radians, Note 6)hm
: Height above ellipsoid (m, geodetic, Notes 6,8)xp
,yp
: Polar motion coordinates (radians, Note 7)phpa
: Pressure at the observer (hPa = mB, Note 8)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers, Note 9)
Returned
aob
: Observed azimuth (radians: N=0,E=90)zob
: Observed zenith distance (radians)hob
: Observed hour angle (radians)dob
: Observed declination (radians)rob
: Observed right ascension (CIO-based, radians)eo
: Equation of the origins (ERA-GST)
Notes
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 eraPmsafe before use.
The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
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 eraDtf2d 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.
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 eraDat for further details.
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.
The geographical coordinates are with respect to the ERFA_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.
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.
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.
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).
The accuracy of the result is limited by the corrections for refraction, which use a simple Atan(z) + Btan^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 eraAtco13 and eraAtoc13 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.
"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.
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.
Called
eraApco13
: astrometry parameters, ICRS-observed, 2013eraAtciq
: quick ICRS to CIRSeraAtioq
: quick CIRS to observed
ERFA.atic13
— Method.atic13(ri, di, date1, date2)
Transform star RA,Dec from geocentric CIRS to ICRS astrometric.
Given
ri
,di
: CIRS geocentric RA,Dec (radians)date1
: TDB as a 2-part...date2
: ...Julian Date (Note 1)
Returned
rc
,dc
: ICRS astrometric RA,Dec (radians)eo
: Equation of the origins (ERA-GST, Note 4)
Notes
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.
Iterative techniques are used for the aberration and light deflection corrections so that the functions eraAtic13 (or eraAticq) and eraAtci13 (or eraAtciq) are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond.
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 ERFA function eraEpv00 (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.
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 eraAnp function can then be applied, as required, to keep the result in the conventional 0-2pi range.)
Called
eraApci13
: astrometry parameters, ICRS-CIRS, 2013eraAticq
: quick CIRS to ICRS astrometric
ERFA.aticq
— Method.aticq(ri, di, astrom)
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 eraApci[13], eraApcg[13], eraApco[13] or eraApcs[13].
Given
ri
,di
: CIRS RA,Dec (radians)astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Returned
rc
,dc
: ICRS astrometric RA,Dec (radians)
Notes
Only the Sun is taken into account in the light deflection correction.
Iterative techniques are used for the aberration and light deflection corrections so that the functions eraAtic13 (or eraAticq) and eraAtci13 (or eraAtciq) are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond.
Called
eraS2c
: spherical coordinates to unit vectoreraTrxp
: product of transpose of r-matrix and p-vectoreraZp
: zero p-vectoreraAb
: stellar aberrationeraLdsun
: light deflection by the SuneraC2s
: p-vector to sphericaleraAnp
: normalize angle into range +/- pi
ERFA.aticqn
— Method.aticqn(ri, di, astrom, b::Array{LDBODY})
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 eraApci[13], eraApcg[13], eraApco[13] or eraApcs[13].
Given
ri
,di
: CIRS RA,Dec (radians)astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
n
: Number of bodies (Note 3)b::Vector{LDBODY}
: Data for each of the n bodies (Notes 3,4):bm
: Mass of the body (solar masses, Note 5)dl
: Deflection limiter (Note 6)pv
: Barycentric PV of the body (au, au/day)
Returned
rc
,dc
: ICRS astrometric RA,Dec (radians)
Notes
Iterative techniques are used for the aberration and light deflection corrections so that the functions eraAticqn and eraAtciqn are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond.
If the only light-deflecting body to be taken into account is the Sun, the eraAticq function can be used instead.
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.
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.
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.
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
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.
Called
eraS2c
: spherical coordinates to unit vectoreraTrxp
: product of transpose of r-matrix and p-vectoreraZp
: zero p-vectoreraAb
: stellar aberrationeraLdn
: light deflection by n bodieseraC2s
: p-vector to sphericaleraAnp
: normalize angle into range +/- pi
ERFA.atio13
— Method.atio13(ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tk, rh, wl)
CIRS RA,Dec to observed place. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
Given
ri
: CIRS right ascension (CIO-based, radians)di
: CIRS declination (radians)utc1
: UTC as a 2-part...utc2
: ...quasi Julian Date (Notes 1,2)dut1
: UT1-UTC (seconds, Note 3)elong
: Longitude (radians, east +ve, Note 4)phi
: Geodetic latitude (radians, Note 4)hm
: Height above ellipsoid (m, geodetic Notes 4,6)xp
,yp
: Polar motion coordinates (radians, Note 5)phpa
: Pressure at the observer (hPa = mB, Note 6)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers, Note 7)
Returned
aob
: Observed azimuth (radians: N=0,E=90)zob
: Observed zenith distance (radians)hob
: Observed hour angle (radians)dob
: Observed declination (radians)rob
: Observed right ascension (CIO-based, radians)
Notes
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 eraDtf2d 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.
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 eraDat for further details.
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.
The geographical coordinates are with respect to the ERFA_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.
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.
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.
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).
"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.
The accuracy of the result is limited by the corrections for refraction, which use a simple Atan(z) + Btan^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.
The complementary functions eraAtio13 and eraAtoi13 are self- consistent to better than 1 microarcsecond all over the celestial sphere.
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.
Called
eraApio13
: astrometry parameters, CIRS-observed, 2013eraAtioq
: quick CIRS to observed
ERFA.atioq
— Method.atioq(ri, di, astrom)
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 eraApio[13] or eraApco[13].
Given
ri
: CIRS right ascensiondi
: CIRS declinationastrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Returned
aob
: Observed azimuth (radians: N=0,E=90)zob
: Observed zenith distance (radians)hob
: Observed hour angle (radians)dob
: Observed declination (radians)rob
: Observed right ascension (CIO-based, radians)
Notes
This function returns zenith distance rather than altitude in order to reflect the fact that no allowance is made for depression of the horizon.
The accuracy of the result is limited by the corrections for refraction, which use a simple Atan(z) + Btan^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 eraAtioq and eraAtoiq 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.
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.
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 eraAtci13 (etc.) functions. Starting from classical "mean place" systems, additional transformations will be needed first.
"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.
The star-independent CIRS-to-observed-place parameters in ASTROM may be computed with eraApio[13] or eraApco[13]. If nothing has changed significantly except the time, eraAper[13] may be used to perform the requisite adjustment to the astrom structure.
Called
eraS2c
: spherical coordinates to unit vectoreraC2s
: p-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
ERFA.atoc13
— Method.atoc13(typeofcoordinates, ob1, ob2, utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tk, rh, wl)
Observed place at a groundbased site to to ICRS astrometric RA,Dec. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
Given
type
: Type of coordinates - "R", "H" or "A" (Notes 1,2)ob1
: Observed Az, HA or RA (radians; Az is N=0,E=90)ob2
: Observed ZD or Dec (radians)utc1
: UTC as a 2-part...utc2
: ...quasi Julian Date (Notes 3,4)dut1
: UT1-UTC (seconds, Note 5)elong
: Longitude (radians, east +ve, Note 6)phi
: Geodetic latitude (radians, Note 6)hm
: Height above ellipsoid (m, geodetic Notes 6,8)xp
,yp
: Polar motion coordinates (radians, Note 7)phpa
: Pressure at the observer (hPa = mB, Note 8)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers, Note 9)
Returned
rc
,dc
: ICRS astrometric RA,Dec (radians)
Notes
"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.
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.
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 eraDtf2d 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.
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 eraDat for further details.
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.
The geographical coordinates are with respect to the ERFA_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.
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.
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.
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).
The accuracy of the result is limited by the corrections for refraction, which use a simple Atan(z) + Btan^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 eraAtco13 and eraAtoc13 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.
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.
Called
eraApco13
: astrometry parameters, ICRS-observederaAtoiq
: quick observed to CIRSeraAticq
: quick CIRS to ICRS
ERFA.atoi13
— Method.atoi13(typeofcoordinates, ob1, ob2, utc1, utc2, dut1, elong, phi, hm, xp, yp, phpa, tk, rh, wl)
Observed place to CIRS. The caller supplies UTC, site coordinates, ambient air conditions and observing wavelength.
Given
type
: Type of coordinates - "R", "H" or "A" (Notes 1,2)ob1
: Observed Az, HA or RA (radians; Az is N=0,E=90)ob2
: Observed ZD or Dec (radians)utc1
: UTC as a 2-part...utc2
: ...quasi Julian Date (Notes 3,4)dut1
: UT1-UTC (seconds, Note 5)elong
: Longitude (radians, east +ve, Note 6)phi
: Geodetic latitude (radians, Note 6)hm
: Height above the ellipsoid (meters, Notes 6,8)xp
,yp
: Polar motion coordinates (radians, Note 7)phpa
: Pressure at the observer (hPa = mB, Note 8)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers, Note 9)
Returned
ri
: CIRS right ascension (CIO-based, radians)di
: CIRS declination (radians)
Notes
"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.
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.
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 eraDtf2d 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.
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 eraDat for further details.
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.
The geographical coordinates are with respect to the ERFA_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.
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.
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.
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).
The accuracy of the result is limited by the corrections for refraction, which use a simple Atan(z) + Btan^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 eraAtio13 and eraAtoi13 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.
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.
Called
eraApio13
: astrometry parameters, CIRS-observed, 2013eraAtoiq
: quick observed to CIRS
ERFA.atoiq
— Method.atoiq(typeofcoordinates, ob1, ob2, astrom)
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 eraApio[13] or eraApco[13].
Given
type
: Type of coordinates: "R", "H" or "A" (Note 1)ob1
: Observed Az, HA or RA (radians; Az is N=0,E=90)ob2
: Observed ZD or Dec (radians)astrom
: Star-independent astrometry parameters:pmt
: PM time interval (SSB, Julian years)eb
: SSB to observer (vector, au)eh
: Sun to observer (unit vector)em
: Distance from Sun to observer (au)v
: Barycentric observer velocity (vector, c)bm1
: $\sqrt{1-|v|^2}$ Reciprocal of Lorenz factorbpn
: Bias-precession-nutation matrixalong
: Longitude + s' (radians)xp1
: Polar motion xp wrt local meridian (radians)yp1
: Polar motion yp wrt local meridian (radians)sphi
: Sine of geodetic latitudecphi
: Cosine of geodetic latitudediurab
: Magnitude of diurnal aberration vectoreral
: "Local" Earth rotation angle (radians)refa
: Refraction constant A (radians)refb
: Refraction constant B (radians)
Returned
ri
: CIRS right ascension (CIO-based, radians)di
: CIRS declination (radians)
Notes
"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.
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.)
The accuracy of the result is limited by the corrections for refraction, which use a simple Atan(z) + Btan^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 eraAtioq and eraAtoiq 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.
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.
Called
eraS2c
: spherical coordinates to unit vectoreraC2s
: p-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
ERFA.bi00
— Method.bi00()
Frame bias components of IAU 2000 precession-nutation models (part of MHB2000 with additions).
Returned
dpsibi
,depsbi
: Longitude and obliquity correctionsdra
: The ICRS RA of the J2000.0 mean equinox
Notes
The frame bias corrections in longitude and obliquity (radians) are required in order to correct for the offset between the GCRS pole and the mean J2000.0 pole. They define, with respect to the GCRS frame, a J2000.0 mean pole that is consistent with the rest of the IAU 2000A precession-nutation model.
In addition to the displacement of the pole, the complete description of the frame bias requires also an offset in right ascension. This is not part of the IAU 2000A model, and is from Chapront et al. (2002). It is returned in radians.
This is a supplemented implementation of one aspect of the IAU 2000A nutation model, formally adopted by the IAU General Assembly in 2000, namely MHB2000 (Mathews et al. 2002).
References
Chapront, J., Chapront-Touze, M. & Francou, G., Astron. Astrophys., 387, 700, 2002.
Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation and precession New nutation series for nonrigid Earth and insights into the Earth's interior", J.Geophys.Res., 107, B4,
The MHB2000 code itself was obtained on 9th September 2002
from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
ERFA.bp00
— Function.bp00(date1, date2)
Frame bias and precession, IAU 2000.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rb
: Frame bias matrix (Note 2)rp
: Precession matrix (Note 3)rbp
: Bias-precession matrix (Note 4)
Notes
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.
The matrix rb transforms vectors from GCRS to mean J2000.0 by applying frame bias.
The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
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.
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
Called
eraBi00
: frame bias components, IAU 2000eraPr00
: IAU 2000 precession adjustmentseraIr
: initialize r-matrix to identityeraRx
: rotate around X-axiseraRy
: rotate around Y-axiseraRz
: rotate around Z-axiseraCr
: copy r-matrixeraRxr
: product of two r-matrices
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.
ERFA.bp06
— Function.bp06(date1, date2)
Frame bias and precession, IAU 2006.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rb
: Frame bias matrix (Note 2)rp
: Precession matrix (Note 3)rbp
: Bias-precession matrix (Note 4)
Notes
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.
The matrix rb transforms vectors from GCRS to mean J2000.0 by applying frame bias.
The matrix rp transforms vectors from mean J2000.0 to mean of date by applying precession.
The matrix rbp transforms vectors from GCRS to mean of date by applying frame bias then precession. It is the product rp x rb.
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
Called
eraPfw06
: bias-precession F-W angles, IAU 2006eraFw2m
: F-W angles to r-matrixeraPmat06
: PB matrix, IAU 2006eraTr
: transpose r-matrixeraRxr
: product of two r-matriceseraCr
: copy r-matrix
References
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.bpn2xy
— Method.bpn2xy(rbpn)
Extract from the bias-precession-nutation matrix the X,Y coordinates of the Celestial Intermediate Pole.
Given
rbpn
: Celestial-to-true matrix (Note 1)
Returned
x
,y
: Celestial Intermediate Pole (Note 2)
Notes
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.
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.
ERFA.c2i00a
— Function.c2i00a(a, b)
Form the celestial-to-intermediate matrix for a given date using the IAU 2000A precession-nutation model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rc2i
: Celestial-to-intermediate matrix (Note 2)
Notes
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.
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.
A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the eraC2i00b function.
Called
eraPnm00a
: classical NPB matrix, IAU 2000AeraC2ibpn
: celestial-to-intermediate matrix, given NPB matrix
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)
ERFA.c2i00b
— Function.c2i00b(a, b)
Form the celestial-to-intermediate matrix for a given date using the IAU 2000B precession-nutation model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rc2i
: Celestial-to-intermediate matrix (Note 2)
Notes
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.
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.
The present function is faster, but slightly less accurate (about 1 mas), than the eraC2i00a function.
Called
eraPnm00b
: classical NPB matrix, IAU 2000BeraC2ibpn
: celestial-to-intermediate matrix, given NPB matrix
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)
ERFA.c2i06a
— Function.c2i06a(a, b)
Form the celestial-to-intermediate matrix for a given date using the IAU 2006 precession and IAU 2000A nutation models.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rc2i
: Celestial-to-intermediate matrix (Note 2)
Notes
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.
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.
Called
eraPnm06a
: classical NPB matrix, IAU 2006/2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006eraC2ixys
: celestial-to-intermediate matrix, given X,Y and s
References
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
ERFA.c2ibpn
— Method.c2ibpn(date1, date2, rbpn)
Form the celestial-to-intermediate matrix for a given date given the bias-precession-nutation matrix. IAU 2000.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)rbpn
: Celestial-to-true matrix (Note 2)
Returned
rc2i
: Celestial-to-intermediate matrix (Note 3)
Notes
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.
The matrix rbpn transforms vectors from GCRS to true equator (and CIO or equinox) of date. Only the CIP (bottom row) is used.
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.
Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Called
eraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraC2ixy
: celestial-to-intermediate matrix, given X,Y
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)
ERFA.c2ixy
— Method.c2ixy(x, y, s, t)
Form the celestial to intermediate-frame-of-date matrix for a given date when the CIP X,Y coordinates are known. IAU 2000.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)x
,y
: Celestial Intermediate Pole (Note 2)
Returned
rc2i
: Celestial-to-intermediate matrix (Note 3)
Notes
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.
The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
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.
Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Called
eraC2ixys
: celestial-to-intermediate matrix, given X,Y and seraS00
: the CIO locator s, given X,Y, IAU 2000A
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.c2ixys
— Method.c2ixys(x, y, s)
Form the celestial to intermediate-frame-of-date matrix given the CIP X,Y and the CIO locator s.
Given
x
,y
: Celestial Intermediate Pole (Note 1)s
: The CIO locator s (Note 2)
Returned
rc2i
: Celestial-to-intermediate matrix (Note 3)
Notes
The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
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.
Called
eraIr
: initialize r-matrix to identityeraRz
: rotate around Z-axiseraRy
: rotate around Y-axis
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.c2s
— Method.c2s(p)
P-vector to spherical coordinates.
Given
p
: P-vector
Returned
theta
: Longitude angle (radians)phi
: Latitude angle (radians)
Notes
The vector p can have any magnitude; only its direction is used.
If p is null, zero theta and phi are returned.
At either pole, zero theta is returned.
ERFA.c2t00a
— Function.c2t00a(tta, ttb, uta, utb, xp, yp)
Form the celestial to terrestrial matrix given the date, the UT1 and the polar motion, using the IAU 2000A nutation model.
Given
tta
,ttb
: TT as a 2-part Julian Date (Note 1)uta
,utb
: UT1 as a 2-part Julian Date (Note 1)xp
,yp
: Coordinates of the pole (radians, Note 2)
Returned
rc2t
: Celestial-to-terrestrial matrix (Note 3)
Notes
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.
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.
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.
A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the eraC2t00b function.
Called
eraC2i00a
: celestial-to-intermediate matrix, IAU 2000AeraEra00
: Earth rotation angle, IAU 2000eraSp00
: the TIO locator s', IERS 2000eraPom00
: polar motion matrixeraC2tcio
: form CIO-based celestial-to-terrestrial matrix
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.c2t00b
— Function.c2t00b(tta, ttb, uta, utb, xp, yp)
Form the celestial to terrestrial matrix given the date, the UT1 and the polar motion, using the IAU 2000B nutation model.
Given
tta
,ttb
: TT as a 2-part Julian Date (Note 1)uta
,utb
: UT1 as a 2-part Julian Date (Note 1)xp
,yp
: Coordinates of the pole (radians, Note 2)
Returned
rc2t
: Celestial-to-terrestrial matrix (Note 3)
Notes
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.
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.
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.
The present function is faster, but slightly less accurate (about 1 mas), than the eraC2t00a function.
Called
eraC2i00b
: celestial-to-intermediate matrix, IAU 2000BeraEra00
: Earth rotation angle, IAU 2000eraPom00
: polar motion matrixeraC2tcio
: form CIO-based celestial-to-terrestrial matrix
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.c2t06a
— Function.c2t06a(tta, ttb, uta, utb, xp, yp)
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.
Given
tta
,ttb
: TT as a 2-part Julian Date (Note 1)uta
,utb
: UT1 as a 2-part Julian Date (Note 1)xp
,yp
: Coordinates of the pole (radians, Note 2)
Returned
rc2t
: Celestial-to-terrestrial matrix (Note 3)
Notes
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.
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.
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.
Called
eraC2i06a
: celestial-to-intermediate matrix, IAU 2006/2000AeraEra00
: Earth rotation angle, IAU 2000eraSp00
: the TIO locator s', IERS 2000eraPom00
: polar motion matrixeraC2tcio
: form CIO-based celestial-to-terrestrial matrix
Reference
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
ERFA.c2tcio
— Function.c2tcio(rc2i, era, rpom)
Assemble the celestial to terrestrial matrix from CIO-based components (the celestial-to-intermediate matrix, the Earth Rotation Angle and the polar motion matrix).
Given
rc2i
: Celestial-to-intermediate matrixera
: Earth rotation angle (radians)rpom
: Polar-motion matrix
Returned
rc2t
: Celestial-to-terrestrial matrix
Notes
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.
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).
Called
eraCr
: copy r-matrixeraRz
: rotate around Z-axiseraRxr
: product of two r-matrices
Reference
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
ERFA.c2teqx
— Function.c2teqx(rc2i, era, rpom)
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).
Given
rbpn
: Celestial-to-true matrixgst
: Greenwich (apparent) Sidereal Time (radians)rpom
: Polar-motion matrix
Returned
rc2t
: Celestial-to-terrestrial matrix (Note 2)
Notes
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.
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).
Called
eraCr
: copy r-matrixeraRz
: rotate around Z-axiseraRxr
: product of two r-matrices
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.c2tpe
— Function.c2tpe(tta, ttb, uta, utb, x, y, xp, yp)
Form the celestial to terrestrial matrix given the date, the UT1, the nutation and the polar motion. IAU 2000.
Given
tta
,ttb
: TT as a 2-part Julian Date (Note 1)uta
,utb
: UT1 as a 2-part Julian Date (Note 1)dpsi
,deps
: Nutation (Note 2)xp
,yp
: Coordinates of the pole (radians, Note 3)
Returned
rc2t
: Celestial-to-terrestrial matrix (Note 4)
Notes
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.
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.
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.
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.
Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Called
eraPn00
: bias/precession/nutation results, IAU 2000eraGmst00
: Greenwich mean sidereal time, IAU 2000eraSp00
: the TIO locator s', IERS 2000eraEe00
: equation of the equinoxes, IAU 2000eraPom00
: polar motion matrixeraC2teqx
: form equinox-based celestial-to-terrestrial matrix
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.c2txy
— Function.c2txy(tta, ttb, uta, utb, x, y, xp, yp)
Form the celestial to terrestrial matrix given the date, the UT1, the CIP coordinates and the polar motion. IAU 2000.
Given
tta
,ttb
: TT as a 2-part Julian Date (Note 1)uta
,utb
: UT1 as a 2-part Julian Date (Note 1)x
,y
: Celestial Intermediate Pole (Note 2)xp
,yp
: Coordinates of the pole (radians, Note 3)
Returned
rc2t
: Celestial-to-terrestrial matrix (Note 4)
Notes
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.
The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
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.
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.
Although its name does not include "00", This function is in fact specific to the IAU 2000 models.
Called
eraC2ixy
: celestial-to-intermediate matrix, given X,YeraEra00
: Earth rotation angle, IAU 2000eraSp00
: the TIO locator s', IERS 2000eraPom00
: polar motion matrixeraC2tcio
: form CIO-based celestial-to-terrestrial matrix
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.cal2jd
— Method.cal2jd(iy, imo, id)
Gregorian Calendar to Julian Date.
Given
iy
,im
,id
: Year, month, day in Gregorian calendar (Note 1)
Returned
djm0
: MJD zero-point: always 2400000.5djm
: Modified Julian Date for 0 hrs
Notes
The algorithm used is valid from -4800 March 1, but this implementation rejects dates before -4799 January 1.
The Julian Date is returned in two pieces, in the usual ERFA manner, which is designed to preserve time resolution. The Julian Date is available as a single number by adding djm0 and djm.
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).
ERFA.d2dtf
— Method.d2dtf(scale, ndp, d1, d2)
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).
Given
scale
: Time scale ID (Note 1)ndp
: Resolution (Note 2)d1
,d2
: Time as a 2-part Julian Date (Notes 3,4)
Returned
iy
,im
,id
: Year, month, day in Gregorian calendar (Note 5)ihmsf
: Hours, minutes, seconds, fraction (Note 1)
Notes
scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4).
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.
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.
JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The ERFA 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 ERFA convention.
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 eraDat for further details.
For calendar conventions and limitations, see eraCal2jd.
Called
eraJd2cal
: JD to Gregorian calendareraD2tf
: decompose days to hmseraDat
: delta(AT) = TAI-UTC
ERFA.d2tf
— Method.d2tf(ndp, a)
Decompose days to hours, minutes, seconds, fraction.
Given
ndp
: Resolution (Note 1)days
: Interval in days
Returned
sign
: '+' or '-'ihmsf
: Hours, minutes, seconds, fraction
Notes
The argument ndp is interpreted as follows:
ndp resolution : ...0000 00 00 -7 1000 00 00 -6 100 00 00 -5 10 00 00 -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 : 0 00 00.000...
The largest positive useful value for ndp is determined by the size of days, the format of double on the target platform, and the risk of overflowing ihmsf[3]. On a typical platform, for days up to 1.0, the available floating-point precision might correspond to ndp=12. However, the practical limit is typically ndp=9, set by the capacity of a 32-bit int, or ndp=4 if int is only 16 bits.
The absolute value of days may exceed 1.0. In cases where it does not, it is up to the caller to test for and handle the case where days is very nearly 1.0 and rounds up to 24 hours, by testing for ihmsf[0]=24 and setting ihmsf[0-3] to zero.
ERFA.dat
— Method.dat(iy, im, id, fd)
For a given UTC date, calculate delta(AT) = TAI-UTC.
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:
A new line must be added to the set of statements that initialize the array "changes".
The constant IYV must be set to the current year.
The "Latest leap second" comment below must be set to the new leap second date.
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: 2016 December 31
Given
iy
: UTC: year (Notes 1 and 2)im
: Month (Note 2)id
: Day (Notes 2 and 3)fd
: Fraction of day (Note 4)
Returned
deltat
: TAI minus UTC, seconds
Notes
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.
If the specified date is for a day which ends with a leap second, the TAI-UTC 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 TAI-UTC returned is for the period following the leap second.
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.
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).
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.
In cases where a valid result is not available, zero is returned.
References
For dates from 1961 January 1 onwards, the expressions from the
file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used.
The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of
the 1992 Explanatory Supplement.
Called
eraCal2jd
: Gregorian calendar to JD
ERFA.dtdb
— Method.dtdb(date1, date2, ut, elong, u, v)
An approximation to TDB-TT, the difference between barycentric dynamical time and terrestrial time, for an observer on the Earth.
The different time scales - proper, coordinate and realized - are related to each other:
TAI <- physically realized
:
offset <- observed (nominally +32.184s)
:
TT <- terrestrial time
:
rate adjustment (L_G) <- definition of TT : TCG <- time scale for GCRS : "periodic" terms <- eraDtdb is an implementation : rate adjustment (L_C) <- function of solar-system ephemeris : TCB <- time scale for BCRS : rate adjustment (-L_B) <- definition of TDB : TDB <- TCB scaled to track TT : "periodic" terms <- -eraDtdb is an approximation : TT <- terrestrial time
Adopted values for the various constants can be found in the IERS Conventions (McCarthy & Petit 2003).
Given
date1
,date2
: Date, TDB (Notes 1-3)ut
: Universal time (UT1, fraction of one day)elong
: Longitude (east positive, radians)u
: Distance from Earth spin axis (km)v
: Distance north of equatorial plane (km)
Returned
TDB-TT (seconds)
Notes
The 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.
Although the date is, formally, barycentric dynamical time (TDB), the terrestrial dynamical time (TT) can be used with no practical effect on the accuracy of the prediction.
TT can be regarded as a coordinate time that is realized as an offset of 32.184s from International Atomic Time, TAI. TT is a specific linear transformation of geocentric coordinate time TCG, which is the time scale for the Geocentric Celestial Reference System, GCRS.
TDB is a coordinate time, and is a specific linear transformation of barycentric coordinate time TCB, which is the time scale for the Barycentric Celestial Reference System, BCRS.
The difference TCG-TCB depends on the masses and positions of the bodies of the solar system and the velocity of the Earth. It is dominated by a rate difference, the residual being of a periodic character. The latter, which is modeled by the present function, comprises a main (annual) sinusoidal term of amplitude approximately 0.00166 seconds, plus planetary terms up to about 20 microseconds, and lunar and diurnal terms up to 2 microseconds. These effects come from the changing transverse Doppler effect and gravitational red-shift as the observer (on the Earth's surface) experiences variations in speed (with respect to the BCRS) and gravitational potential.
TDB can be regarded as the same as TCB but with a rate adjustment to keep it close to TT, which is convenient for many applications. The history of successive attempts to define TDB is set out in Resolution 3 adopted by the IAU General Assembly in 2006, which defines a fixed TDB(TCB) transformation that is consistent with contemporary solar-system ephemerides. Future ephemerides will imply slightly changed transformations between TCG and TCB, which could introduce a linear drift between TDB and TT; however, any such drift is unlikely to exceed 1 nanosecond per century.
The geocentric TDB-TT model used in the present function is that of Fairhead & Bretagnon (1990), in its full form. It was originally supplied by Fairhead (private communications with P.T.Wallace,
as a Fortran subroutine. The present C function contains an
adaptation of the Fairhead code. The numerical results are essentially unaffected by the changes, the differences with respect to the Fairhead & Bretagnon original being at the 1e-20 s level.
The topocentric part of the model is from Moyer (1981) and Murray (1983), with fundamental arguments adapted from Simon et al. 1994. It is an approximation to the expression ( v / c ) . ( r / c ), where v is the barycentric velocity of the Earth, r is the geocentric position of the observer and c is the speed of light.
By supplying zeroes for u and v, the topocentric part of the model can be nullified, and the function will return the Fairhead & Bretagnon result alone.
During the interval 1950-2050, the absolute accuracy is better than +/- 3 nanoseconds relative to time ephemerides obtained by direct numerical integrations based on the JPL DE405 solar system ephemeris.
It must be stressed that the present function is merely a model, and that numerical integration of solar-system ephemerides is the definitive method for predicting the relationship between TCG and TCB and hence between TT and TDB.
References
Fairhead, L., & Bretagnon, P., Astron.Astrophys., 229, 240-247 (1990).
IAU 2006 Resolution 3.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Moyer, T.D., Cel.Mech., 23, 33 (1981).
Murray, C.A., Vectorial Astrometry, Adam Hilger (1983).
Seidelmann, P.K. et al., Explanatory Supplement to the Astronomical Almanac, Chapter 2, University Science Books (1992).
Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G. & Laskar, J., Astron.Astrophys., 282, 663-683 (1994).
ERFA.dtf2d
— Method.dtf2d(scale, iy, imo, id, ih, imi, sec)
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).
Given
scale
: Time scale ID (Note 1)iy
,im
,id
: Year, month, day in Gregorian calendar (Note 2)ihr
,imn
: Hour, minutesec
: Seconds
Returned
d1
,d2
: 2-part Julian Date (Notes 3,4)
Notes
scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4).
For calendar conventions and limitations, see eraCal2jd.
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.
JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The ERFA 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 ERFA convention.
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).
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 eraDat for further details.
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.
Called
eraCal2jd
: Gregorian calendar to JDeraDat
: delta(AT) = TAI-UTCeraJd2cal
: JD to Gregorian calendar
ERFA.eceq06
— Function.eceq06(date1, date2, dl, db)
Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using the IAU 2006 precession model.
Given
date1
,date2
: TT as a 2-part Julian date (Note 1)dl
,db
: Ecliptic longitude and latitude (radians)
Returned
dr
,dd
: ICRS right ascension and declination (radians)
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.
No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
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.
Called
eraS2c
: spherical coordinates to unit vectoreraEcm06
: J2000.0 to ecliptic rotation matrix, IAU 2006eraTrxp
: product of transpose of r-matrix and p-vectoreraC2s
: unit vector to spherical coordinateseraAnp
: normalize angle into range 0 to 2pieraAnpm
: normalize angle into range +/- pi
ERFA.ecm06
— Method.ecm06(date1, date2)
ICRS equatorial to ecliptic rotation matrix, IAU 2006.
Given
date1
,date2
: TT as a 2-part Julian date (Note 1)
Returned
rm
: ICRS to ecliptic rotation matrix
Notes
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.
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.
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.
Called
eraObl06
: mean obliquity, IAU 2006eraPmat06
: PB matrix, IAU 2006eraIr
: initialize r-matrix to identityeraRx
: rotate around X-axiseraRxr
: product of two r-matrices
ERFA.ee00
— Method.ee00(date1, date2, epsa, dpsi)
The equation of the equinoxes, compatible with IAU 2000 resolutions, given the nutation in longitude and the mean obliquity.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)epsa
: Mean obliquity (Note 2)dpsi
: Nutation in longitude (Note 3)
Returned
Equation of the equinoxes (Note 4)
Notes
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.
The obliquity, in radians, is mean of date.
The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
The result is compatible with the IAU 2000 resolutions. For further details, see IERS Conventions 2003 and Capitaine et al. (2002).
Called
eraEect00
: equation of the equinoxes complementary terms
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)
ERFA.ee00a
— Function.ee00a(dj1, dj2)
Equation of the equinoxes, compatible with IAU 2000 resolutions.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Equation of the equinoxes (Note 2)
Notes
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.
The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
The result is compatible with the IAU 2000 resolutions. For further details, see IERS Conventions 2003 and Capitaine et al. (2002).
Called
eraPr00
: IAU 2000 precession adjustmentseraObl80
: mean obliquity, IAU 1980eraNut00a
: nutation, IAU 2000AeraEe00
: equation of the equinoxes, IAU 2000
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).
ERFA.ee00b
— Function.ee00b(dj1, dj2)
Equation of the equinoxes, compatible with IAU 2000 resolutions but using the truncated nutation model IAU 2000B.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Equation of the equinoxes (Note 2)
Notes
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.
The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
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).
Called
eraPr00
: IAU 2000 precession adjustmentseraObl80
: mean obliquity, IAU 1980eraNut00b
: nutation, IAU 2000BeraEe00
: equation of the equinoxes, IAU 2000
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)
ERFA.ee06a
— Function.ee06a(dj1, dj2)
Equation of the equinoxes, compatible with IAU 2000 resolutions and IAU 2006/2000A precession-nutation.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Equation of the equinoxes (Note 2)
Notes
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.
The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
Called
eraAnpm
: normalize angle into range +/- pieraGst06a
: Greenwich apparent sidereal time, IAU 2006/2000AeraGmst06
: Greenwich mean sidereal time, IAU 2006
Reference
McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
ERFA.eect00
— Function.eect00(date1, date2)
Equation of the equinoxes complementary terms, consistent with IAU 2000 resolutions.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Complementary terms (Note 2)
Notes
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.
The "complementary terms" are part of the equation of the equinoxes (EE), classically the difference between apparent and mean Sidereal Time:
GAST = GMST + EE
with:
EE = dpsi * cos(eps)
where dpsi is the nutation in longitude and eps is the obliquity of date. However, if the rotation of the Earth were constant in an inertial frame the classical formulation would lead to apparent irregularities in the UT1 timescale traceable to side- effects of precession-nutation. In order to eliminate these effects from UT1, "complementary terms" were introduced in 1994 (IAU, 1994) and took effect from 1997 (Capitaine and Gontier, 1993):
GAST = GMST + CT + EE
By convention, the complementary terms are included as part of the equation of the equinoxes rather than as part of the mean Sidereal Time. This slightly compromises the "geometrical" interpretation of mean sidereal time but is otherwise inconsequential.
The present function computes CT in the above expression, compatible with IAU 2000 resolutions (Capitaine et al., 2002, and IERS Conventions 2003).
Called
eraFal03
: mean anomaly of the MooneraFalp03
: mean anomaly of the SuneraFaf03
: mean argument of the latitude of the MooneraFad03
: mean elongation of the Moon from the SuneraFaom03
: mean longitude of the Moon's ascending nodeeraFave03
: mean longitude of VenuseraFae03
: mean longitude of EartheraFapa03
: general accumulated precession in longitude
References
Capitaine, N. & Gontier, A.-M., Astron. Astrophys., 275, 645-650 (1993)
Capitaine, N., Wallace, P.T. and McCarthy, D.D., "Expressions to implement the IAU 2000 definition of UT1", Astronomy & Astrophysics, 406, 1135-1149 (2003)
IAU Resolution C7, Recommendation 3 (1994)
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.eform
— Method.eform(n::Ellipsoid)
Earth reference ellipsoids.
Given
n
: Ellipsoid identifier (Note 1)
Returned
a
: Equatorial radius (meters, Note 2)f
: Flattening (Note 2)
Notes
The identifier n is a number that specifies the choice of reference ellipsoid. The following are supported:
- `WGS84` - `GRS80` - `WGS72`
The ellipsoid parameters are returned in the form of equatorial radius in meters (a) and flattening (f). The latter is a number around 0.00335, i.e. around 1/298.
For the case where an unsupported n value is supplied, zero a and f are returned, as well as error status.
References
Department of Defense World Geodetic System 1984, National Imagery and Mapping Agency Technical Report 8350.2, Third Edition, p3-2.
Moritz, H., Bull. Geodesique 66-2, 187 (1992).
The Department of Defense World Geodetic System 1972, World Geodetic System Committee, May 1974.
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), p220.
ERFA.eo06a
— Function.eo06a(date1, date2)
Equation of the origins, IAU 2006 precession and IAU 2000A nutation.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Equation of the origins in radians
Notes
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.
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).
Called
eraPnm06a
: classical NPB matrix, IAU 2006/2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006eraEors
: equation of the origins, given NPB matrix and s
References
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.eors
— Method.eors(rnpb, s)
Equation of the origins, given the classical NPB matrix and the quantity s.
Given
rnpb
: Classical nutation x precession x bias matrixs
: The quantity s (the CIO locator)
Returned
The equation of the origins in radians.
Notes
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).
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
ERFA.epb
— Function.epb(dj1, dj2)
Julian Date to Besselian Epoch.
Given
dj1
,dj2
: Julian Date (see note)
Returned
Besselian Epoch.
Note
The Julian Date is supplied in two pieces, in the usual ERFA 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.
ERFA.epb2jd
— Function.epb2jd(epj)
Besselian Epoch to Julian Date.
Given
epb
: Besselian Epoch (e.g. 1957.3)
Returned
djm0
: MJD zero-point: always 2400000.5djm
: Modified Julian Date
Note
The Julian Date is returned in two pieces, in the usual ERFA 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.
ERFA.epj
— Function.epj(dj1, dj2)
Julian Date to Julian Epoch.
Given
dj1
,dj2
: Julian Date (see note)
Returned
Julian Epoch
Note
The Julian Date is supplied in two pieces, in the usual ERFA 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.
ERFA.epj2jd
— Function.epj2jd(epj)
Julian Epoch to Julian Date.
Given
epj
: Julian Epoch (e.g. 1996.8)
Returned
djm0
: MJD zero-point: always 2400000.5djm
: Modified Julian Date
Note
The Julian Date is returned in two pieces, in the usual ERFA 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.
ERFA.epv00
— Method.epv00(date1, date2)
Earth position and velocity, heliocentric and barycentric, with respect to the Barycentric Celestial Reference System.
Given
date1
,date2
: TDB date (Note 1)
Returned
pvh
: Heliocentric Earth position/velocitypvb
: Barycentric Earth position/velocity
Notes
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.
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.
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).
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.
It is permissible to use the same array for pvh and pvb, which will receive the barycentric values.
ERFA.eqec06
— Function.eqec06(date1, date2, dr, dd)
Transformation from ICRS equatorial coordinates to ecliptic coordinates (mean equinox and ecliptic of date) using IAU 2006 precession model.
Given
date1
,date2
: TT as a 2-part Julian date (Note 1)dr
,dd
: ICRS right ascension and declination (radians)
Returned
dl
,db
: Ecliptic longitude and latitude (radians)
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.
No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
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.
Called
eraS2c
: spherical coordinates to unit vectoreraEcm06
: J2000.0 to ecliptic rotation matrix, IAU 2006eraRxp
: product of r-matrix and p-vectoreraC2s
: unit vector to spherical coordinateseraAnp
: normalize angle into range 0 to 2pieraAnpm
: normalize angle into range +/- pi
ERFA.eqeq94
— Function.eqeq94(date1, date2)
Equation of the equinoxes, IAU 1994 model.
Given
date1
,date2
: TDB date (Note 1)
Returned
Equation of the equinoxes (Note 2)
Notes
The 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.
The result, which is in radians, operates in the following sense:
Greenwich apparent ST = GMST + equation of the equinoxes
Called
eraAnpm
: normalize angle into range +/- pieraNut80
: nutation, IAU 1980eraObl80
: mean obliquity, IAU 1980
References
IAU Resolution C7, Recommendation 3 (1994).
Capitaine, N. & Gontier, A.-M., 1993, Astron. Astrophys., 275, 645-650.
ERFA.era00
— Function.era00(dj1, dj2)
Earth rotation angle (IAU 2000 model).
Given
dj1
,dj2
: UT1 as a 2-part Julian Date (see note)
Returned
Earth rotation angle (radians), range 0-2pi
Notes
The UT1 date dj1+dj2 is a Julian Date, apportioned in any convenient way between the arguments dj1 and dj2. For example, JD(UT1)=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)
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 dj1 argument is for 0hrs UT1 on the day in question and the dj2 argument lies in the range 0 to 1, or vice versa.
The algorithm is adapted from Expression 22 of Capitaine et al.
The time argument has been expressed in days directly,
and, to retain precision, integer contributions have been eliminated. The same formulation is given in IERS Conventions (2003), Chap. 5, Eq. 14.
Called
eraAnp
: normalize angle into range 0 to 2pi
References
Capitaine N., Guinot B. and McCarthy D.D, 2000, Astron. Astrophys., 355, 398-405.
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.fad03
— Function.fad03(t)
Fundamental argument, IERS Conventions (2003):
mean elongation of the Moon from the Sun.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
D
, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.fae03
— Function.fae03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Earth.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Earth, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and comes from Souchay et al. (1999) after Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
ERFA.faf03
— Function.faf03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of the Moon minus mean longitude of the ascending node.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
F
, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.faju03
— Function.faju03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Jupiter.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Jupiter, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and comes from Souchay et al. (1999) after Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
ERFA.fal03
— Function.fal03(t)
Fundamental argument, IERS Conventions (2003):
mean anomaly of the Moon.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
l
, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.falp03
— Function.falp03(t)
Fundamental argument, IERS Conventions (2003):
mean anomaly of the Sun.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
l'
, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.fama03
— Function.fama03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Mars.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Mars, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and comes from Souchay et al. (1999) after Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
ERFA.fame03
— Function.fame03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Mercury.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Mercury, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and comes from Souchay et al. (1999) after Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
ERFA.fane03
— Function.fane03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Neptune.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Neptune, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is adapted from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.faom03
— Function.faom03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of the Moon's ascending node.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Omega
, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.fapa03
— Function.fapa03(t)
Fundamental argument, IERS Conventions (2003):
general accumulated precession in longitude.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
General precession in longitude, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003). It is taken from Kinoshita & Souchay (1990) and comes originally from Lieske et al. (1977).
References
Kinoshita, H. and Souchay J. 1990, Celest.Mech. and Dyn.Astron. 48, 187
Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, Astron.Astrophys. 58, 1-16
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.fasa03
— Function.fasa03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Saturn.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Saturn, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and comes from Souchay et al. (1999) after Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
ERFA.faur03
— Function.faur03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Uranus.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Uranus, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and is adapted from Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
ERFA.fave03
— Function.fave03(t)
Fundamental argument, IERS Conventions (2003): Mean longitude of Venus.
Given
t
: TDB, Julian centuries since J2000.0 (Note 1)
Returned
Mean longitude of Venus, radians (Note 2)
Notes
Though t is strictly TDB, it is usually more convenient to use TT, which makes no significant difference.
The expression used is as adopted in IERS Conventions (2003) and comes from Souchay et al. (1999) after Simon et al. (1994).
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
ERFA.fk52h
— Method.fk52h(ra, dec, dra, ddec, px, rv)
Transform FK5 (J2000.0) star data into the Hipparcos system.
Given (all FK5, equinox J2000.0, epoch J2000.0)
r5
: RA (radians)d5
: Dec (radians)dr5
: Proper motion in RA (dRA/dt, rad/Jyear)dd5
: Proper motion in Dec (dDec/dt, rad/Jyear)px5
: Parallax (arcsec)rv5
: Radial velocity (km/s, positive = receding)
Returned (all Hipparcos, epoch J2000.0)
rh
: RA (radians)dh
: Dec (radians)drh
: proper motion in RA (dRA/dt, rad/Jyear)ddh
: proper motion in Dec (dDec/dt, rad/Jyear)pxh
: parallax (arcsec)rvh
: radial velocity (km/s, positive = receding)
Notes
This function transforms FK5 star positions and proper motions into the system of the Hipparcos catalog.
The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, and are per year rather than per century.
The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalog are not taken into account.
See also eraH2fk5, eraFk5hz, eraHfk5z.
Called
eraStarpv
: star catalog data to space motion pv-vectoreraFk5hip
: FK5 to Hipparcos rotation and spineraRxp
: product of r-matrix and p-vectoreraPxp
: vector product of two p-vectorseraPpp
: p-vector plus p-vectoreraPvstar
: space motion pv-vector to star catalog data
Reference
F.Mignard & M.Froeschle, Astron. Astrophys. 354, 732-739 (2000).
ERFA.fk5hip
— Method.fk5hip()
FK5 to Hipparcos rotation and spin.
Returned
r5h
: R-matrix: FK5 rotation wrt Hipparcos (Note 2)s5h
: R-vector: FK5 spin wrt Hipparcos (Note 3)
Notes
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.
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.
The r-vector s5h represents the time derivative of the FK5 to Hipparcos rotation. The units are radians per year (Julian, TDB).
Called
eraRv2m
: r-vector to r-matrix
Reference
F.Mignard & M.Froeschle, Astron. Astrophys. 354, 732-739 (2000).
ERFA.fk5hz
— Method.fk5hz(r5, d5, date1, date2)
Transform an FK5 (J2000.0) star position into the system of the Hipparcos catalogue, assuming zero Hipparcos proper motion.
Given
r5
: FK5 RA (radians), equinox J2000.0, at dated5
: FK5 Dec (radians), equinox J2000.0, at datedate1
,date2
: TDB date (Notes 1,2)
Returned
rh
: Hipparcos RA (radians)dh
: Hipparcos Dec (radians)
Notes
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.
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.
The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalogue are not taken into account.
The position returned by this function is in the Hipparcos reference system but at date date1+date2.
See also eraFk52h, eraH2fk5, eraHfk5z.
Called
eraS2c
: spherical coordinates to unit vectoreraFk5hip
: FK5 to Hipparcos rotation and spineraSxp
: multiply p-vector by scalareraRv2m
: r-vector to r-matrixeraTrxp
: product of transpose of r-matrix and p-vectoreraPxp
: vector product of two p-vectorseraC2s
: p-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
Reference
F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739.
ERFA.fw2m
— Method.fw2m(x, y, s, t)
Form rotation matrix given the Fukushima-Williams angles.
Given
gamb
: F-W angle gamma_bar (radians)phib
: F-W angle phi_bar (radians)psi
: F-W angle psi (radians)eps
: F-W angle epsilon (radians)
Returned
r
: Rotation matrix
Notes
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
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)
Three different matrices can be constructed, depending on the supplied angles:
o To obtain the nutation x precession x frame bias matrix, generate the four precession angles, generate the nutation components and add them to the psi_bar and epsilon_A angles, and call the present function.
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.
Called
eraIr
: initialize r-matrix to identityeraRz
: rotate around Z-axiseraRx
: rotate around X-axis
Reference
Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
ERFA.fw2xy
— Method.fw2xy(gamb, phib, psi, eps)
CIP X,Y given Fukushima-Williams bias-precession-nutation angles.
Given
gamb
: F-W angle gamma_bar (radians)phib
: F-W angle phi_bar (radians)psi
: F-W angle psi (radians)eps
: F-W angle epsilon (radians)
Returned
x
,y
: CIP unit vector X,Y
Notes
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
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.
Called
eraFw2m
: F-W angles to r-matrixeraBpn2xy
: extract CIP X,Y coordinates from NPB matrix
Reference
Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
ERFA.g2icrs
— Method.g2icrs(dl, db)
Transformation from Galactic Coordinates to ICRS.
Given
dl
: Galactic longitude (radians)db
: Galactic latitude (radians)
Returned
dr
: ICRS right ascension (radians)dd
: ICRS declination (radians)
Notes
The IAU 1958 system of Galactic coordinates was defined with respect to the now obsolete reference system FK4 B1950.0. When interpreting the system in a modern context, several factors have to be taken into account:
. The inclusion in FK4 positions of the E-terms of aberration.
. The distortion of the FK4 proper motion system by differential Galactic rotation.
. The use of the B1950.0 equinox rather than the now-standard J2000.0.
. The frame bias between ICRS and the J2000.0 mean place system.
The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation matrix that transforms directly between ICRS and Galactic coordinates with the above factors taken into account. The matrix is derived from three angles, namely the ICRS coordinates of the Galactic pole and the longitude of the ascending node of the galactic equator on the ICRS equator. They are given in degrees to five decimal places and for canonical purposes are regarded as exact. In the Hipparcos Catalogue the matrix elements are given to 10 decimal places (about 20 microarcsec). In the present ERFA function the matrix elements have been recomputed from the canonical three angles and are given to 30 decimal places.
The inverse transformation is performed by the function eraIcrs2g.
Called
eraAnp
: normalize angle into range 0 to 2pieraAnpm
: normalize angle into range +/- pieraS2c
: spherical coordinates to unit vectoreraTrxp
: product of transpose of r-matrix and p-vectoreraC2s
: p-vector to spherical
Reference
Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho catalogues. Astrometric and photometric star catalogues derived from the ESA Hipparcos Space Astrometry Mission. ESA Publications Division, Noordwijk, Netherlands.
ERFA.gc2gd
— Method.gc2gd(n, xyz)
Transform geocentric coordinates to geodetic using the specified reference ellipsoid.
Given
n
: Ellipsoid identifier (Note 1)xyz
: Geocentric vector (Note 2)
Returned
elong
: Longitude (radians, east +ve, Note 3)phi
: Latitude (geodetic, radians, Note 3)height
: Height above ellipsoid (geodetic, Notes 2,3)
Notes
The identifier n is a number that specifies the choice of reference ellipsoid. The following are supported:
- `WGS84` - `GRS80` - `WGS72`
The geocentric vector (xyz, given) and height (height, returned) are in meters.
An error status -1 means that the identifier n is illegal. An error status -2 is theoretically impossible. In all error cases, all three results are set to -1e9.
The inverse transformation is performed in the function eraGd2gc.
Called
eraEform
: Earth reference ellipsoidseraGc2gde
: geocentric to geodetic transformation, general
ERFA.gc2gde
— Method.gc2gde(a, f, xyz)
Transform geocentric coordinates to geodetic for a reference ellipsoid of specified form.
Given
a
: Equatorial radius (Notes 2,4)f
: Flattening (Note 3)xyz
: Geocentric vector (Note 4)
Returned
elong
: Longitude (radians, east +ve)phi
: Latitude (geodetic, radians)height
: Height above ellipsoid (geodetic, Note 4)
Notes
This function is based on the GCONV2H Fortran subroutine by Toshio Fukushima (see reference).
The equatorial radius, a, can be in any units, but meters is the conventional choice.
The flattening, f, is (for the Earth) a value around 0.00335, i.e. around 1/298.
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.
If an error occurs (status < 0), elong, phi and height are unchanged.
The inverse transformation is performed in the function eraGd2gce.
The transformation for a standard ellipsoid (such as ERFA_WGS84) can more conveniently be performed by calling eraGc2gd, 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
ERFA.gd2gc
— Method.gd2gc(n, elong, phi, height)
Transform geodetic coordinates to geocentric using the specified reference ellipsoid.
Given
n
: Ellipsoid identifier (Note 1)elong
: Longitude (radians, east +ve)phi
: Latitude (geodetic, radians, Note 3)height
: Height above ellipsoid (geodetic, Notes 2,3)
Returned
xyz
: Geocentric vector (Note 2)
Notes
The identifier n is a number that specifies the choice of reference ellipsoid. The following are supported:
n ellipsoid
1 ERFA_WGS84 2 ERFA_GRS80 3 ERFA_WGS72
The n value has no significance outside the ERFA software. For convenience, symbols ERFA_WGS84 etc. are defined in erfam.h.
The height (height, given) and the geocentric vector (xyz, returned) are in meters.
No validation is performed on the arguments elong, phi and height. An error status -1 means that the identifier n is illegal. An error status -2 protects against cases that would lead to arithmetic exceptions. In all error cases, xyz is set to zeros.
The inverse transformation is performed in the function eraGc2gd.
Called
eraEform
: Earth reference ellipsoidseraGd2gce
: geodetic to geocentric transformation, generaleraZp
: zero p-vector
ERFA.gd2gce
— Method.gd2gce(a, f, elong, phi, height)
Transform geodetic coordinates to geocentric for a reference ellipsoid of specified form.
Given
a
: Equatorial radius (Notes 1,4)f
: Flattening (Notes 2,4)elong
: Longitude (radians, east +ve)phi
: Latitude (geodetic, radians, Note 4)height
: Height above ellipsoid (geodetic, Notes 3,4)
Returned
xyz
: Geocentric vector (Note 3)
Notes
The equatorial radius, a, can be in any units, but meters is the conventional choice.
The flattening, f, is (for the Earth) a value around 0.00335, i.e. around 1/298.
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.
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.
The inverse transformation is performed in the function eraGc2gde.
The transformation for a standard ellipsoid (such as ERFA_WGS84) can more conveniently be performed by calling eraGd2gc, 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.
ERFA.gmst00
— Function.gmst00(uta, utb, tta, ttb)
Greenwich mean sidereal time (model consistent with IAU 2000 resolutions).
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)tta
,ttb
: TT as a 2-part Julian Date (Notes 1,2)
Returned
Greenwich mean sidereal time (radians)
Notes
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.
Both UT1 and TT are required, UT1 to predict the Earth rotation and TT to predict the effects of precession. If UT1 is used for both purposes, errors of order 100 microarcseconds result.
This GMST is compatible with the IAU 2000 resolutions and must be used only in conjunction with other IAU 2000 compatible components such as precession-nutation and equation of the equinoxes.
The result is returned in the range 0 to 2pi.
The algorithm is from Capitaine et al. (2003) and IERS Conventions 2003.
Called
eraEra00
: Earth rotation angle, IAU 2000eraAnp
: normalize angle into range 0 to 2pi
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)
ERFA.gmst06
— Function.gmst06(uta, utb, tta, ttb)
Greenwich mean sidereal time (consistent with IAU 2006 precession).
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)tta
,ttb
: TT as a 2-part Julian Date (Notes 1,2)
Returned
Greenwich mean sidereal time (radians)
Notes
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.
Both UT1 and TT are required, UT1 to predict the Earth rotation and TT to predict the effects of precession. If UT1 is used for both purposes, errors of order 100 microarcseconds result.
This GMST is compatible with the IAU 2006 precession and must not be used with other precession models.
The result is returned in the range 0 to 2pi.
Called
eraEra00
: Earth rotation angle, IAU 2000eraAnp
: normalize angle into range 0 to 2pi
Reference
Capitaine, N., Wallace, P.T. & Chapront, J., 2005, Astron.Astrophys. 432, 355
ERFA.gmst82
— Function.gmst82(dj1, dj2)
Universal Time to Greenwich mean sidereal time (IAU 1982 model).
Given
dj1
,dj2
: UT1 Julian Date (see note)
Returned
Greenwich mean sidereal time (radians)
Notes
The UT1 date dj1+dj2 is a Julian Date, apportioned in any convenient way between the arguments dj1 and dj2. For example, JD(UT1)=2450123.7 could be expressed in any of these ways, among others:
dj1 dj2 2450123.7 0 (JD method) 2451545 -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 accuracy (or, at least, minimum noise) is delivered when the dj1 argument is for 0hrs UT1 on the day in question and the dj2 argument lies in the range 0 to 1, or vice versa.
The algorithm is based on the IAU 1982 expression. This is always described as giving the GMST at 0 hours UT1. In fact, it gives the difference between the GMST and the UT, the steady 4-minutes-per-day drawing-ahead of ST with respect to UT. When whole days are ignored, the expression happens to equal the GMST at 0 hours UT1 each day.
In this function, the entire UT1 (the sum of the two arguments dj1 and dj2) is used directly as the argument for the standard formula, the constant term of which is adjusted by 12 hours to take account of the noon phasing of Julian Date. The UT1 is then added, but omitting whole days to conserve accuracy.
Called
eraAnp
: normalize angle into range 0 to 2pi
References
Transactions of the International Astronomical Union, XVIII B, 67 (1983).
Aoki et al., Astron. Astrophys. 105, 359-361 (1982).
ERFA.gst00a
— Function.gst00a(uta, utb, tta, ttb)
Greenwich apparent sidereal time (consistent with IAU 2000 resolutions).
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)tta
,ttb
: TT as a 2-part Julian Date (Notes 1,2)
Returned
Greenwich apparent sidereal time (radians)
Notes
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.
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.
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.
The result is returned in the range 0 to 2pi.
The algorithm is from Capitaine et al. (2003) and IERS Conventions 2003.
Called
eraGmst00
: Greenwich mean sidereal time, IAU 2000eraEe00a
: equation of the equinoxes, IAU 2000AeraAnp
: normalize angle into range 0 to 2pi
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)
ERFA.gst00b
— Function.gst00b(dr, dd)
Greenwich apparent sidereal time (consistent with IAU 2000 resolutions but using the truncated nutation model IAU 2000B).
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)
Returned
Greenwich apparent sidereal time (radians)
Notes
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.
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.
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.
The result is returned in the range 0 to 2pi.
The algorithm is from Capitaine et al. (2003) and IERS Conventions 2003.
Called
eraGmst00
: Greenwich mean sidereal time, IAU 2000eraEe00b
: equation of the equinoxes, IAU 2000BeraAnp
: normalize angle into range 0 to 2pi
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)
ERFA.gst06
— Method.gst06(uta, utb, tta, ttb, rnpb)
Greenwich apparent sidereal time, IAU 2006, given the NPB matrix.
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)tta
,ttb
: TT as a 2-part Julian Date (Notes 1,2)rnpb
: Nutation x precession x bias matrix
Returned
Greenwich apparent sidereal time (radians)
Notes
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.
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.
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.
The result is returned in the range 0 to 2pi.
Called
eraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006eraAnp
: normalize angle into range 0 to 2pieraEra00
: Earth rotation angle, IAU 2000eraEors
: equation of the origins, given NPB matrix and s
Reference
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.gst06a
— Function.gst06a(uta, utb, tta, ttb)
Greenwich apparent sidereal time (consistent with IAU 2000 and 2006 resolutions).
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)tta
,ttb
: TT as a 2-part Julian Date (Notes 1,2)
Returned
Greenwich apparent sidereal time (radians)
Notes
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.
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.
This GAST is compatible with the IAU 2000/2006 resolutions and must be used only in conjunction with IAU 2006 precession and IAU 2000A nutation.
The result is returned in the range 0 to 2pi.
Called
eraPnm06a
: classical NPB matrix, IAU 2006/2000AeraGst06
: Greenwich apparent ST, IAU 2006, given NPB matrix
Reference
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.gst94
— Function.gst94(dr, dd)
Greenwich apparent sidereal time (consistent with IAU 1982/94 resolutions).
Given
uta
,utb
: UT1 as a 2-part Julian Date (Notes 1,2)
Returned
Greenwich apparent sidereal time (radians)
Notes
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.
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.
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.
The result is returned in the range 0 to 2pi.
Called
eraGmst82
: Greenwich mean sidereal time, IAU 1982eraEqeq94
: equation of the equinoxes, IAU 1994eraAnp
: normalize angle into 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)
ERFA.h2fk5
— Method.h2fk5(ra, dec, dra, ddec, px, rv)
Transform Hipparcos star data into the FK5 (J2000.0) system.
Given (all Hipparcos, epoch J2000.0)
rh
: RA (radians)dh
: Dec (radians)drh
: Proper motion in RA (dRA/dt, rad/Jyear)ddh
: Proper motion in Dec (dDec/dt, rad/Jyear)pxh
: Parallax (arcsec)rvh
: Radial velocity (km/s, positive = receding)
Returned (all FK5, equinox J2000.0, epoch J2000.0)
r5
: RA (radians)d5
: Dec (radians)dr5
: Proper motion in RA (dRA/dt, rad/Jyear)dd5
: Proper motion in Dec (dDec/dt, rad/Jyear)px5
: Parallax (arcsec)rv5
: Radial velocity (km/s, positive = receding)
Notes
This function transforms Hipparcos star positions and proper motions into FK5 J2000.0.
The proper motions in RA are dRA/dt rather than cos(Dec)*dRA/dt, and are per year rather than per century.
The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalog are not taken into account.
See also eraFk52h, eraFk5hz, eraHfk5z.
Called
eraStarpv
: star catalog data to space motion pv-vectoreraFk5hip
: FK5 to Hipparcos rotation and spineraRv2m
: r-vector to r-matrixeraRxp
: product of r-matrix and p-vectoreraTrxp
: product of transpose of r-matrix and p-vectoreraPxp
: vector product of two p-vectorseraPmp
: p-vector minus p-vectoreraPvstar
: space motion pv-vector to star catalog data
Reference
F.Mignard & M.Froeschle, Astron. Astrophys. 354, 732-739 (2000).
ERFA.hfk5z
— Method.hfk5z(rh, dh, date1, date2)
Transform a Hipparcos star position into FK5 J2000.0, assuming zero Hipparcos proper motion.
Given
rh
: Hipparcos RA (radians)dh
: Hipparcos Dec (radians)date1
,date2
: TDB date (Note 1)
Returned (all FK5, equinox J2000.0, date date1+date2)
r5
: RA (radians)d5
: Dec (radians)dr5
: FK5 RA proper motion (rad/year, Note 4)dd5
: Dec proper motion (rad/year, Note 4)
Notes
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.
The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
The FK5 to Hipparcos transformation is modeled as a pure rotation and spin; zonal errors in the FK5 catalogue are not taken into account.
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.
The position returned by this function is in the FK5 J2000.0 reference system but at date date1+date2.
See also eraFk52h, eraH2fk5, eraFk5zhz.
Called
eraS2c
: spherical coordinates to unit vectoreraFk5hip
: FK5 to Hipparcos rotation and spineraRxp
: product of r-matrix and p-vectoreraSxp
: multiply p-vector by scalareraRxr
: product of two r-matriceseraTrxp
: product of transpose of r-matrix and p-vectoreraPxp
: vector product of two p-vectorseraPv2s
: pv-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
Reference
F.Mignard & M.Froeschle, 2000, Astron.Astrophys. 354, 732-739.
ERFA.icrs2g
— Method.icrs2g(dr, dd)
Transformation from ICRS to Galactic Coordinates.
Given
dr
: ICRS right ascension (radians)dd
: ICRS declination (radians)
Returned
dl
: Galactic longitude (radians)db
: Galactic latitude (radians)
Notes
The IAU 1958 system of Galactic coordinates was defined with respect to the now obsolete reference system FK4 B1950.0. When interpreting the system in a modern context, several factors have to be taken into account:
. The inclusion in FK4 positions of the E-terms of aberration.
. The distortion of the FK4 proper motion system by differential Galactic rotation.
. The use of the B1950.0 equinox rather than the now-standard J2000.0.
. The frame bias between ICRS and the J2000.0 mean place system.
The Hipparcos Catalogue (Perryman & ESA 1997) provides a rotation matrix that transforms directly between ICRS and Galactic coordinates with the above factors taken into account. The matrix is derived from three angles, namely the ICRS coordinates of the Galactic pole and the longitude of the ascending node of the galactic equator on the ICRS equator. They are given in degrees to five decimal places and for canonical purposes are regarded as exact. In the Hipparcos Catalogue the matrix elements are given to 10 decimal places (about 20 microarcsec). In the present ERFA function the matrix elements have been recomputed from the canonical three angles and are given to 30 decimal places.
The inverse transformation is performed by the function eraG2icrs.
Called
eraAnp
: normalize angle into range 0 to 2pieraAnpm
: normalize angle into range +/- pieraS2c
: spherical coordinates to unit vectoreraRxp
: product of r-matrix and p-vectoreraC2s
: p-vector to spherical
Reference
Perryman M.A.C. & ESA, 1997, ESA SP-1200, The Hipparcos and Tycho catalogues. Astrometric and photometric star catalogues derived from the ESA Hipparcos Space Astrometry Mission. ESA Publications Division, Noordwijk, Netherlands.
ERFA.jd2cal
— Method.jd2cal(dj1, dj2)
Julian Date to Gregorian year, month, day, and fraction of a day.
Given
dj1
,dj2
: Julian Date (Notes 1, 2)
Returned
iy
: Yearim
: Monthid
: Dayfd
: Fraction of day
Notes
The earliest valid date is -68569.5 (-4900 March 1). The largest value accepted is 1e9.
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)
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).
ERFA.jdcalf
— Method.jdcalf(ndp, dj1, dj2)
Julian Date to Gregorian Calendar, expressed in a form convenient for formatting messages: rounded to a specified precision.
Given
ndp
: Number of decimal places of days in fractiondj1
,dj2
: Dj1+dj2 = Julian Date (Note 1)
Returned
iymdf
: Year, month, day, fraction in Gregorian calendar
Notes
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)
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.
Refer to the function eraJd2cal.
NDP should be 4 or less if internal overflows are to be avoided on machines which use 16-bit integers.
Called
eraJd2cal
: JD to Gregorian calendar
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 12.92 (p604).
ERFA.ld
— Method.ld(bm, p, q, e, em, dlim)
Apply light deflection by a solar-system body, as part of transforming coordinate direction into natural direction.
Given
bm
: Mass of the gravitating body (solar masses)p
: Direction from observer to source (unit vector)q
: Direction from body to source (unit vector)e
: Direction from body to observer (unit vector)em
: Distance from body to observer (au)dlim
: Deflection limiter (Note 4)
Returned
p1
: Observer to deflected source (unit vector)
Notes
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.
The mass parameter bm can, as required, be adjusted in order to allow for such effects as quadrupole field.
The barycentric position of the deflecting body should ideally correspond to the time of closest approach of the light ray to the body.
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.
The returned vector p1 is not normalized, but the consequential departure from unit magnitude is always negligible.
The arguments p and p1 can be the same array.
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.
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).
Called
eraPdp
: scalar product of two p-vectorseraPxp
: vector product of two p-vectors
ERFA.ldn
— Method.ldn(l::Vector{LDBODY}, ob, sc)
For a star, apply light deflection by multiple solar-system bodies, as part of transforming coordinate direction into natural direction.
Given
n
: Number of bodies (note 1)b
: Data for each of the n bodies (Notes 1,2):bm
: Mass of the body (solar masses, Note 3)dl
: Deflection limiter (Note 4)pv
: Barycentric PV of the body (au, au/day)
ob
: Barycentric position of the observer (au)sc
: Observer to star coord direction (unit vector)
Returned
sn
: Observer to deflected star (unit vector)
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.
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.
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.
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
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 eraLd function. Similarly, eraLd can be used for cases where the source is nearby, not a star.
The returned vector sn is not normalized, but the consequential departure from unit magnitude is always negligible.
The arguments sc and sn can be the same array.
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.
Called
eraCp
: copy p-vectoreraPdp
: scalar product of two p-vectorseraPmp
: p-vector minus p-vectoreraPpsp
: p-vector plus scaled p-vectoreraPn
: decompose p-vector into modulus and directioneraLd
: light deflection by a solar-system body
ERFA.ldsun
— Method.ldsun(p, e, em)
Deflection of starlight by the Sun.
Given
p
: Direction from observer to star (unit vector)e
: Direction from Sun to observer (unit vector)em
: Distance from Sun to observer (au)
Returned
p1
: Observer to deflected star (unit vector)
Notes
The source is presumed to be sufficiently distant that its directions seen from the Sun and the observer are essentially the same.
The deflection is restrained when the angle between the star and the center of the Sun is less than a threshold value, falling to zero deflection for zero separation. The chosen threshold value is within the solar limb for all solar-system applications, and is about 5 arcminutes for the case of a terrestrial observer.
The arguments p and p1 can be the same array.
Called
eraLd
: light deflection by a solar-system body
ERFA.lteceq
— Function.lteceq(epj, dr, dd)
Transformation from ecliptic coordinates (mean equinox and ecliptic of date) to ICRS RA,Dec, using a long-term precession model.
Given
epj
: Julian epoch (TT)dl
,db
: Ecliptic longitude and latitude (radians)
Returned
dr
,dd
: ICRS right ascension and declination (radians)
No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
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.
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.
Called
eraS2c
: spherical coordinates to unit vectoreraLtecm
: J2000.0 to ecliptic rotation matrix, long termeraTrxp
: product of transpose of r-matrix and p-vectoreraC2s
: unit vector to spherical coordinateseraAnp
: normalize angle into range 0 to 2pieraAnpm
: normalize angle into range +/- pi
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
ERFA.ltecm
— Function.ltecm(dr, dd)
ICRS equatorial to ecliptic rotation matrix, long-term.
Given
epj
: Julian epoch (TT)
Returned
rm
: ICRS to ecliptic rotation matrix
Notes
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.
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.
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.
Called
eraLtpequ
: equator pole, long termeraLtpecl
: ecliptic pole, long termeraPxp
: vector producteraPn
: normalize vector
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
ERFA.lteqec
— Function.lteqec(epj, dr, dd)
Transformation from ICRS equatorial coordinates to ecliptic coordinates (mean equinox and ecliptic of date) using a long-term precession model.
Given
epj
: Julian epoch (TT)dr
,dd
: ICRS right ascension and declination (radians)
Returned
dl
,db
: Ecliptic longitude and latitude (radians)
No assumptions are made about whether the coordinates represent starlight and embody astrometric effects such as parallax or aberration.
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.
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.
Called
eraS2c
: spherical coordinates to unit vectoreraLtecm
: J2000.0 to ecliptic rotation matrix, long termeraRxp
: product of r-matrix and p-vectoreraC2s
: unit vector to spherical coordinateseraAnp
: normalize angle into range 0 to 2pieraAnpm
: normalize angle into range +/- pi
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
ERFA.ltp
— Function.ltp(dr, dd)
Long-term precession matrix.
Given
epj
: Julian epoch (TT)
Returned
rp
: Precession matrix, J2000.0 to date
Notes
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.
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.
Called
eraLtpequ
: equator pole, long termeraLtpecl
: ecliptic pole, long termeraPxp
: vector producteraPn
: normalize vector
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
ERFA.ltpb
— Function.ltpb(dr, dd)
Long-term precession matrix, including ICRS frame bias.
Given
epj
: Julian epoch (TT)
Returned
rpb
: Precession-bias matrix, J2000.0 to date
Notes
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.
A first order frame bias formulation is used, of sub- microarcsecond accuracy compared with a full 3D rotation.
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
ERFA.ltpecl
— Function.ltpecl(epj)
Long-term precession of the ecliptic.
Given
epj
: Julian epoch (TT)
Returned
vec
: Ecliptic pole unit vector
Notes
The returned vector is with respect to the J2000.0 mean equator and equinox.
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
ERFA.ltpequ
— Function.ltpequ(epj)
Long-term precession of the equator.
Given
epj
: Julian epoch (TT)
Returned
veq
: Equator pole unit vector
Notes
The returned vector is with respect to the J2000.0 mean equator and equinox.
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
ERFA.num00a
— Function.num00a(date1, date2)
Form the matrix of nutation for a given date, IAU 2000A model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rmatn
: Nutation matrix
Notes
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.
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.
A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the eraNum00b function.
Called
eraPn00a
: bias/precession/nutation, IAU 2000A
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
ERFA.num00b
— Function.num00b(date1, date2)
Form the matrix of nutation for a given date, IAU 2000B model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rmatn
: Nutation matrix
Notes
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.
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.
The present function is faster, but slightly less accurate (about 1 mas), than the eraNum00a function.
Called
eraPn00b
: bias/precession/nutation, IAU 2000B
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
ERFA.num06a
— Function.num06a(date1, date2)
Form the matrix of nutation for a given date, IAU 2006/2000A model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rmatn
: Nutation matrix
Notes
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.
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.
Called
eraObl06
: mean obliquity, IAU 2006eraNut06a
: nutation, IAU 2006/2000AeraNumat
: form nutation matrix
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
ERFA.numat
— Method.numat(epsa, dpsi, deps)
Form the matrix of nutation.
Given
epsa
: Mean obliquity of date (Note 1)dpsi
,deps
: Nutation (Note 2)
Returned
rmatn
: Nutation matrix (Note 3)
Notes
The supplied mean obliquity epsa, must be consistent with the precession-nutation models from which dpsi and deps were obtained.
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.
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.
Called
eraIr
: initialize r-matrix to identityeraRx
: rotate around X-axiseraRz
: rotate around Z-axis
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222-3 (p114).
ERFA.nut00a
— Function.nut00a(date1, date2)
Nutation, IAU 2000A model (MHB2000 luni-solar and planetary nutation with free core nutation omitted).
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
,deps
: Nutation, luni-solar + planetary (Note 2)
Notes
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.
The nutation components in longitude and obliquity are in radians and with respect to the equinox and ecliptic of date. The obliquity at J2000.0 is assumed to be the Lieske et al. (1977) value of 84381.448 arcsec.
Both the luni-solar and planetary nutations are included. The latter are due to direct planetary nutations and the perturbations of the lunar and terrestrial orbits.
The function computes the MHB2000 nutation series with the associated corrections for planetary nutations. It is an implementation of the nutation part of the IAU 2000A precession- nutation model, formally adopted by the IAU General Assembly in 2000, namely MHB2000 (Mathews et al. 2002), but with the free core nutation (FCN - see Note 4) omitted.
The full MHB2000 model also contains contributions to the nutations in longitude and obliquity due to the free-excitation of the free-core-nutation during the period 1979-2000. These FCN terms, which are time-dependent and unpredictable, are NOT included in the present function and, if required, must be independently computed. With the FCN corrections included, the present function delivers a pole which is at current epochs accurate to a few hundred microarcseconds. The omission of FCN introduces further errors of about that size.
The present function provides classical nutation. The MHB2000 algorithm, from which it is adapted, deals also with (i) the offsets between the GCRS and mean poles and (ii) the adjustments in longitude and obliquity due to the changed precession rates. These additional functions, namely frame bias and precession adjustments, are supported by the ERFA functions eraBi00 and eraPr00.
The MHB2000 algorithm also provides "total" nutations, comprising the arithmetic sum of the frame bias, precession adjustments, luni-solar nutation and planetary nutation. These total nutations can be used in combination with an existing IAU 1976 precession implementation, such as eraPmat76, to deliver GCRS- to-true predictions of sub-mas accuracy at current dates. However, there are three shortcomings in the MHB2000 model that must be taken into account if more accurate or definitive results are required (see Wallace 2002):
(i) The MHB2000 total nutations are simply arithmetic sums, yet in reality the various components are successive Euler rotations. This slight lack of rigor leads to cross terms that exceed 1 mas after a century. The rigorous procedure is to form the GCRS-to-true rotation matrix by applying the bias, precession and nutation in that order.
(ii) Although the precession adjustments are stated to be with respect to Lieske et al. (1977), the MHB2000 model does not specify which set of Euler angles are to be used and how the adjustments are to be applied. The most literal and straightforward procedure is to adopt the 4-rotation epsilon_0, psi_A, omega_A, xi_A option, and to add DPSIPR to psi_A and DEPSPR to both omega_A and eps_A.
(iii) The MHB2000 model predates the determination by Chapront et al. (2002) of a 14.6 mas displacement between the J2000.0 mean equinox and the origin of the ICRS frame. It should, however, be noted that neglecting this displacement when calculating star coordinates does not lead to a 14.6 mas change in right ascension, only a small second- order distortion in the pattern of the precession-nutation effect.
For these reasons, the ERFA functions do not generate the "total nutations" directly, though they can of course easily be generated by calling eraBi00, eraPr00 and the present function and adding the results.
The MHB2000 model contains 41 instances where the same frequency appears multiple times, of which 38 are duplicates and three are triplicates. To keep the present code close to the original MHB algorithm, this small inefficiency has not been corrected.
Called
eraFal03
: mean anomaly of the MooneraFaf03
: mean argument of the latitude of the MooneraFaom03
: mean longitude of the Moon's ascending nodeeraFame03
: mean longitude of MercuryeraFave03
: mean longitude of VenuseraFae03
: mean longitude of EartheraFama03
: mean longitude of MarseraFaju03
: mean longitude of JupitereraFasa03
: mean longitude of SaturneraFaur03
: mean longitude of UranuseraFapa03
: general accumulated precession in longitude
References
Chapront, J., Chapront-Touze, M. & Francou, G. 2002, Astron.Astrophys. 387, 700
Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, Astron.Astrophys. 58, 1-16
Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. 107, B4. The MHB_2000 code itself was obtained on 9th September 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
Wallace, P.T., "Software for Implementing the IAU 2000 Resolutions", in IERS Workshop 5.1 (2002)
ERFA.nut00b
— Function.nut00b(date1, date2)
Nutation, IAU 2000B model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
,deps
: Nutation, luni-solar + planetary (Note 2)
Notes
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.
The nutation components in longitude and obliquity are in radians and with respect to the equinox and ecliptic of date. The obliquity at J2000.0 is assumed to be the Lieske et al. (1977) value of 84381.448 arcsec. (The errors that result from using this function with the IAU 2006 value of 84381.406 arcsec can be neglected.)
The nutation model consists only of luni-solar terms, but includes also a fixed offset which compensates for certain long- period planetary terms (Note 7).
This function is an implementation of the IAU 2000B abridged nutation model formally adopted by the IAU General Assembly in
The function computes the MHB_2000_SHORT luni-solar
nutation series (Luzum 2001), but without the associated corrections for the precession rate adjustments and the offset between the GCRS and J2000.0 mean poles.
The full IAU 2000A (MHB2000) nutation model contains nearly 1400 terms. The IAU 2000B model (McCarthy & Luzum 2003) contains only 77 terms, plus additional simplifications, yet still delivers results of 1 mas accuracy at present epochs. This combination of accuracy and size makes the IAU 2000B abridged nutation model suitable for most practical applications.
The function delivers a pole accurate to 1 mas from 1900 to 2100 (usually better than 1 mas, very occasionally just outside 1 mas). The full IAU 2000A model, which is implemented in the function eraNut00a (q.v.), delivers considerably greater accuracy at current dates; however, to realize this improved accuracy, corrections for the essentially unpredictable free-core-nutation (FCN) must also be included.
The present function provides classical nutation. The MHB_2000_SHORT algorithm, from which it is adapted, deals also with (i) the offsets between the GCRS and mean poles and (ii) the adjustments in longitude and obliquity due to the changed precession rates. These additional functions, namely frame bias and precession adjustments, are supported by the ERFA functions eraBi00 and eraPr00.
The MHB_2000_SHORT algorithm also provides "total" nutations, comprising the arithmetic sum of the frame bias, precession adjustments, and nutation (luni-solar + planetary). These total nutations can be used in combination with an existing IAU 1976 precession implementation, such as eraPmat76, to deliver GCRS- to-true predictions of mas accuracy at current epochs. However, for symmetry with the eraNut00a function (q.v. for the reasons), the ERFA functions do not generate the "total nutations" directly. Should they be required, they could of course easily be generated by calling eraBi00, eraPr00 and the present function and adding the results.
The IAU 2000B model includes "planetary bias" terms that are fixed in size but compensate for long-period nutations. The amplitudes quoted in McCarthy & Luzum (2003), namely Dpsi = -1.5835 mas and Depsilon = +1.6339 mas, are optimized for the "total nutations" method described in Note 6. The Luzum (2001) values used in this ERFA implementation, namely -0.135 mas and +0.388 mas, are optimized for the "rigorous" method, where frame bias, precession and nutation are applied separately and in that order. During the interval 1995-2050, the ERFA implementation delivers a maximum error of 1.001 mas (not including FCN).
References
Lieske, J.H., Lederle, T., Fricke, W., Morando, B., "Expressions for the precession quantities based upon the IAU /1976/ system of astronomical constants", Astron.Astrophys. 58, 1-2, 1-16. (1977)
Luzum, B., private communication, 2001 (Fortran code MHB_2000_SHORT)
McCarthy, D.D. & Luzum, B.J., "An abridged model of the precession-nutation of the celestial pole", Cel.Mech.Dyn.Astron. 85, 37-49 (2003)
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J., Astron.Astrophys. 282, 663-683 (1994)
ERFA.nut06a
— Function.nut06a(date1, date2)
IAU 2000A nutation with adjustments to match the IAU 2006 precession.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
,deps
: Nutation, luni-solar + planetary (Note 2)
Notes
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.
The nutation components in longitude and obliquity are in radians and with respect to the mean equinox and ecliptic of date, IAU 2006 precession model (Hilton et al. 2006, Capitaine et al. 2005).
The function first computes the IAU 2000A nutation, then applies adjustments for (i) the consequences of the change in obliquity from the IAU 1980 ecliptic to the IAU 2006 ecliptic and (ii) the secular variation in the Earth's dynamical form factor J2.
The present function provides classical nutation, complementing the IAU 2000 frame bias and IAU 2006 precession. It delivers a pole which is at current epochs accurate to a few tens of microarcseconds, apart from the free core nutation.
Called
eraNut00a
: nutation, IAU 2000A
References
Chapront, J., Chapront-Touze, M. & Francou, G. 2002, Astron.Astrophys. 387, 700
Lieske, J.H., Lederle, T., Fricke, W. & Morando, B. 1977, Astron.Astrophys. 58, 1-16
Mathews, P.M., Herring, T.A., Buffet, B.A. 2002, J.Geophys.Res. 107, B4. The MHB_2000 code itself was obtained on 9th September 2002 from ftp//maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
Simon, J.-L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., Laskar, J. 1994, Astron.Astrophys. 282, 663-683
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M. 1999, Astron.Astrophys.Supp.Ser. 135, 111
Wallace, P.T., "Software for Implementing the IAU 2000 Resolutions", in IERS Workshop 5.1 (2002)
ERFA.nut80
— Function.nut80(date1, date2)
Nutation, IAU 1980 model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
: Nutation in longitude (radians)deps
: Nutation in obliquity (radians)
Notes
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.
The nutation components are with respect to the ecliptic of date.
Called
eraAnpm
: normalize angle into range +/- pi
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.222 (p111).
ERFA.nutm80
— Function.nutm80(date1, date2)
Form the matrix of nutation for a given date, IAU 1980 model.
Given
date1
,date2
: TDB date (Note 1)
Returned
rmatn
: Nutation matrix
Notes
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.
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.
Called
eraNut80
: nutation, IAU 1980eraObl80
: mean obliquity, IAU 1980eraNumat
: form nutation matrix
ERFA.obl06
— Function.obl06(date1, date2)
Mean obliquity of the ecliptic, IAU 2006 precession model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Obliquity of the ecliptic (radians, Note 2)
Notes
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.
The result is the angle between the ecliptic and mean equator of date date1+date2.
Reference
Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
ERFA.obl80
— Function.obl80(date1, date2)
Mean obliquity of the ecliptic, IAU 1980 model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
Obliquity of the ecliptic (radians, Note 2)
Notes
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.
The result is the angle between the ecliptic and mean equator of date date1+date2.
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Expression 3.222-1 (p114).
ERFA.p06e
— Method.p06e(date1, date2)
Precession angles, IAU 2006, equinox based.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned (see Note 2)
eps0
: epsilon_0psia
: psi_Aoma
: omega_Abpa
: P_Abqa
: Q_Apia
: pi_Abpia
: Pi_Aepsa
: obliquity epsilon_Achia
: chi_Aza
: z_Azetaa
: zeta_Athetaa
: theta_Apa
: p_Agam
: F-W angle gamma_J2000phi
: F-W angle phi_J2000psi
: F-W angle psi_J2000
Notes
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.
This function returns the set of equinox based angles for the Capitaine et al. "P03" precession theory, adopted by the IAU in
The angles are set out in Table 1 of Hilton et al. (2006):
eps0 epsilon_0 obliquity at J2000.0 psia psi_A luni-solar precession oma omega_A inclination of equator wrt J2000.0 ecliptic bpa P_A ecliptic pole x, J2000.0 ecliptic triad bqa Q_A ecliptic pole -y, J2000.0 ecliptic triad pia pi_A angle between moving and J2000.0 ecliptics bpia Pi_A longitude of ascending node of the ecliptic epsa epsilon_A obliquity of the ecliptic chia chi_A planetary precession za z_A equatorial precession: -3rd 323 Euler angle zetaa zeta_A equatorial precession: -1st 323 Euler angle thetaa theta_A equatorial precession: 2nd 323 Euler angle pa p_A general precession gam gamma_J2000 J2000.0 RA difference of ecliptic poles phi phi_J2000 J2000.0 codeclination of ecliptic pole psi psi_J2000 longitude difference of equator poles, J2000.0
The returned values are all radians.
Hilton et al. (2006) Table 1 also contains angles that depend on models distinct from the P03 precession theory itself, namely the IAU 2000A frame bias and nutation. The quoted polynomials are used in other ERFA functions:
. eraXy06 contains the polynomial parts of the X and Y series.
. eraS06 contains the polynomial part of the s+XY/2 series.
. eraPfw06 implements the series for the Fukushima-Williams angles that are with respect to the GCRS pole (i.e. the variants that include frame bias).
The IAU resolution stipulated that the choice of parameterization was left to the user, and so an IAU compliant precession implementation can be constructed using various combinations of the angles returned by the present function.
The parameterization used by ERFA is the version of the Fukushima- Williams angles that refers directly to the GCRS pole. These angles may be calculated by calling the function eraPfw06. ERFA also supports the direct computation of the CIP GCRS X,Y by series, available by calling eraXy06.
The agreement between the different parameterizations is at the 1 microarcsecond level in the present era.
When constructing a precession formulation that refers to the GCRS pole rather than the dynamical pole, it may (depending on the choice of angles) be necessary to introduce the frame bias explicitly.
It is permissible to re-use the same variable in the returned arguments. The quantities are stored in the stated order.
Reference
Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
Called
eraObl06
: mean obliquity, IAU 2006
ERFA.p2pv
— Method.p2pv(p)
Extend a p-vector to a pv-vector by appending a zero velocity.
Given
p
: P-vector
Returned
pv
: Pv-vector
Called
eraCp
: copy p-vectoreraZp
: zero p-vector
ERFA.p2s
— Method.p2s(p)
P-vector to spherical polar coordinates.
Given
p
: P-vector
Returned
theta
: Longitude angle (radians)phi
: Latitude angle (radians)r
: Radial distance
Notes
If P is null, zero theta, phi and r are returned.
At either pole, zero theta is returned.
Called
eraC2s
: p-vector to sphericaleraPm
: modulus of p-vector
ERFA.pap
— Function.pap(a, b)
Position-angle from two p-vectors.
Given
a
: Direction of reference pointb
: Direction of point whose PA is required
Returned
Position angle of b with respect to a (radians)
Notes
The result is the position angle, in radians, of direction b with respect to direction a. It is in the range -pi to +pi. The sense is such that if b is a small distance "north" of a the position angle is approximately zero, and if b is a small distance "east" of a the position angle is approximately +pi/2.
The vectors a and b need not be of unit length.
Zero is returned if the two directions are the same or if either vector is null.
If vector a is at a pole, the result is ill-defined.
Called
eraPn
: decompose p-vector into modulus and directioneraPm
: modulus of p-vectoreraPxp
: vector product of two p-vectorseraPmp
: p-vector minus p-vectoreraPdp
: scalar product of two p-vectors
ERFA.pas
— Method.pas(al, ap, bl, bp)
Position-angle from spherical coordinates.
Given
al
: Longitude of point A (e.g. RA) in radiansap
: Latitude of point A (e.g. Dec) in radiansbl
: Longitude of point Bbp
: Latitude of point B
Returned
Position angle of B with respect to A
Notes
The result is the bearing (position angle), in radians, of point B with respect to point A. It is in the range -pi to +pi. The sense is such that if B is a small distance "east" of point A, the bearing is approximately +pi/2.
Zero is returned if the two points are coincident.
ERFA.pb06
— Method.pb06(date1, date2)
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.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
bzeta
: 1st rotation: radians cw around zbz
: 3rd rotation: radians cw around zbtheta
: 2nd rotation: radians ccw around y
Notes
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.
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.
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).
Should zeta_A, z_A, theta_A angles be required that do not contain frame bias, they are available by calling the ERFA function eraP06e.
Called
eraPmat06
: PB matrix, IAU 2006eraRz
: rotate around Z-axis
ERFA.pdp
— Function.pdp(a, b)
p-vector inner (=scalar=dot) product.
Given
a
: First p-vectorb
: Second p-vector
Returned
$a \cdot b$
ERFA.pfw06
— Method.pfw06(date1, date2)
Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation).
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
gamb
: F-W angle gamma_bar (radians)phib
: F-W angle phi_bar (radians)psib
: F-W angle psi_bar (radians)epsa
: F-W angle epsilon_A (radians)
Notes
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.
Naming the following points:
e = J2000.0 ecliptic pole, p = GCRS pole, E = mean ecliptic pole of date,
and P = mean pole of date,
the four Fukushima-Williams angles are as follows:
gamb = gamma_bar = epE phib = phi_bar = pE psib = psi_bar = pEP epsa = epsilon_A = EP
The matrix representing the combined effects of frame bias and precession is:
PxB = R_1(-epsa).R_3(-psib).R_1(phib).R_3(gamb)
The matrix representing the combined effects of frame bias, precession and nutation is simply:
NxPxB = R_1(-epsa-dE).R_3(-psib-dP).R_1(phib).R_3(gamb)
where dP and dE are the nutation components with respect to the ecliptic of date.
Reference
Hilton, J. et al., 2006, Celest.Mech.Dyn.Astron. 94, 351
Called
eraObl06
: mean obliquity, IAU 2006
ERFA.plan94
— Method.plan94(date1, date2, np)
Approximate heliocentric position and velocity of a nominated major planet: Mercury, Venus, EMB, Mars, Jupiter, Saturn, Uranus or Neptune (but not the Earth itself).
Given
date1
: TDB date part A (Note 1)date2
: TDB date part B (Note 1)np
: Planet (1=Mercury, 2=Venus, 3=EMB, 4=Mars, 5=Jupiter, 6=Saturn, 7=Uranus, 8=Neptune)
Returned (argument)
Planet p,v (heliocentric, J2000.0, au,au/d)
Notes
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.
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.
For np=3 the result is for the Earth-Moon Barycenter. To obtain the heliocentric position and velocity of the Earth, use instead the ERFA function eraEpv00.
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.
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
The present ERFA re-implementation of the original Simon et al. Fortran code differs from the original in the following respects:
C instead of Fortran.
The date is supplied in two parts.
The result is returned only in equatorial Cartesian form; the ecliptic longitude, latitude and radius vector are not returned.
The result is in the J2000.0 equatorial frame, not ecliptic.
More is done in-line: there are fewer calls to subroutines.
Different error/warning status values are used.
A different Kepler's-equation-solver is used (avoiding use of double precision complex).
Polynomials in t are nested to minimize rounding errors.
Explicit double constants are used to avoid mixed-mode expressions.
None of the above changes affects the result significantly.
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.
Called
eraAnp
: normalize angle into range 0 to 2pi
Reference: Simon, J.L, Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G., and Laskar, J., Astron. Astrophys. 282, 663 (1994).
ERFA.pm
— Method.pm(p)
Modulus of p-vector.
Given
p
: P-vector
Returned
Modulus
ERFA.pmat00
— Function.pmat00(date1, date2)
Precession matrix (including frame bias) from GCRS to a specified date, IAU 2000 model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rbp
: Bias-precession matrix (Note 2)
Notes
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.
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.
Called
eraBp00
: frame bias and precession matrices, IAU 2000
Reference
IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. (2000)
ERFA.pmat06
— Function.pmat06(date1, date2)
Precession matrix (including frame bias) from GCRS to a specified date, IAU 2006 model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rbp
: Bias-precession matrix (Note 2)
Notes
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.
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.
Called
eraPfw06
: bias-precession F-W angles, IAU 2006eraFw2m
: F-W angles to r-matrix
References
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.pmat76
— Function.pmat76(date1, date2)
Precession matrix from J2000.0 to a specified date, IAU 1976 model.
Given
date1
,date2
: Ending date, TT (Note 1)
Returned
rmatp
: Precession matrix, J2000.0 -> date1+date2
Notes
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.
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.
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.
Called
eraPrec76
: accumulated precession angles, IAU 1976eraIr
: initialize r-matrix to identityeraRz
: rotate around Z-axiseraRy
: rotate around Y-axiseraCr
: copy r-matrix
References
Lieske, J.H., 1979, Astron.Astrophys. 73, 282. equations (6) & (7), p283.
Kaplan,G.H., 1981. USNO circular no. 163, pA2.
ERFA.pmp
— Function.pmp(a, b)
P-vector subtraction.
Given
a
: First p-vectorb
: Second p-vector
Returned
amb
: A - b
Note
It is permissible to re-use the same array for any of the arguments.
ERFA.pmpx
— Method.pmpx(rc, dc, pr, pd, px, rv, pmt, vob)
Proper motion and parallax.
Given
rc
,dc
: ICRS RA,Dec at catalog epoch (radians)pr
: RA proper motion (radians/year; Note 1)pd
: Dec proper motion (radians/year)px
: Parallax (arcsec)rv
: Radial velocity (km/s, +ve if receding)pmt
: Proper motion time interval (SSB, Julian years)pob
: SSB to observer vector (au)
Returned
pco
: Coordinate direction (BCRS unit vector)
Notes
The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
The proper motion time interval is for when the starlight reaches the solar system barycenter.
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.
Called
eraPdp
: scalar product of two p-vectorseraPn
: decompose p-vector into modulus and direction
ERFA.pmsafe
— Method.pmsafe(ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b)
Star proper motion: update star catalog data for space motion, with special handling to handle the zero parallax case.
Given
ra1
: Right ascension (radians), beforedec1
: Declination (radians), beforepmr1
: RA proper motion (radians/year), beforepmd1
: Dec proper motion (radians/year), beforepx1
: Parallax (arcseconds), beforerv1
: Radial velocity (km/s, +ve = receding), beforeep1a
: "before" epoch, part A (Note 1)ep1b
: "before" epoch, part B (Note 1)ep2a
: "after" epoch, part A (Note 1)ep2b
: "after" epoch, part B (Note 1)
Returned
ra2
: Right ascension (radians), afterdec2
: Declination (radians), afterpmr2
: RA proper motion (radians/year), afterpmd2
: Dec proper motion (radians/year), afterpx2
: Parallax (arcseconds), afterrv2
: Radial velocity (km/s, +ve = receding), after
Notes
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.
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.
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 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.
Straight-line motion at constant speed, in the inertial frame, is assumed.
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.
If the space velocity is a significant fraction of c (see the constant VMAX in the function eraStarpv), it is arbitrarily set to zero. When this action occurs, 2 is added to the status.
The relativistic adjustment carried out in the eraStarpv function involves an iterative calculation. If the process fails to converge within a set number of iterations, 4 is added to the status.
Called
eraSeps
: angle between two pointseraStarpm
: update star catalog data for space motion
ERFA.pn
— Method.pn(p)
Convert a p-vector into modulus and unit vector.
Given
p
: P-vector
Returned
r
: Modulusu
: Unit vector
Notes
If p is null, the result is null. Otherwise the result is a unit vector.
It is permissible to re-use the same array for any of the arguments.
Called
eraPm
: modulus of p-vectoreraZp
: zero p-vectoreraSxp
: multiply p-vector by scalar
ERFA.pn00
— Function.pn00(date1, date2, dpsi, deps)
Precession-nutation, IAU 2000 model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)dpsi
,deps
: Nutation (Note 2)
Returned
epsa
: Mean obliquity (Note 3)rb
: Frame bias matrix (Note 4)rp
: Precession matrix (Note 5)rbp
: Bias-precession matrix (Note 6)rn
: Nutation matrix (Note 7)rbpn
: GCRS-to-true matrix (Note 8)
Notes
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.
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.
The returned mean obliquity is consistent with the IAU 2000 precession-nutation models.
The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
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.
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).
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.
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
Called
eraPr00
: IAU 2000 precession adjustmentseraObl80
: mean obliquity, IAU 1980eraBp00
: frame bias and precession matrices, IAU 2000eraCr
: copy r-matrixeraNumat
: form nutation matrixeraRxr
: product of two r-matrices
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.
ERFA.pn00a
— Function.pn00a(date1, date2)
Precession-nutation, IAU 2000A model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
,deps
: Nutation (Note 2)epsa
: Mean obliquity (Note 3)rb
: Frame bias matrix (Note 4)rp
: Precession matrix (Note 5)rbp
: Bias-precession matrix (Note 6)rn
: Nutation matrix (Note 7)rbpn
: GCRS-to-true matrix (Notes 8,9)
Notes
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.
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 eraPn00 function, where the nutation components are caller-specified. For faster but slightly less accurate results, use the eraPn00b function.
The mean obliquity is consistent with the IAU 2000 precession.
The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
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.
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).
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.
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].
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the order given.
Called
eraNut00a
: nutation, IAU 2000AeraPn00
: bias/precession/nutation results, IAU 2000
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.
ERFA.pn00b
— Function.pn00b(date1, date2)
Precession-nutation, IAU 2000B model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
,deps
: Nutation (Note 2)epsa
: Mean obliquity (Note 3)rb
: Frame bias matrix (Note 4)rp
: Precession matrix (Note 5)rbp
: Bias-precession matrix (Note 6)rn
: Nutation matrix (Note 7)rbpn
: GCRS-to-true matrix (Notes 8,9)
Notes
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.
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 eraPn00a function. For the utmost accuracy, use the eraPn00 function, where the nutation components are caller-specified.
The mean obliquity is consistent with the IAU 2000 precession.
The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
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.
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).
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.
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].
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the stated order.
Called
eraNut00b
: nutation, IAU 2000BeraPn00
: bias/precession/nutation results, IAU 2000
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.
ERFA.pn06
— Function.pn06(date1, date2, dpsi, deps)
Precession-nutation, IAU 2006 model: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)dpsi
,deps
: Nutation (Note 2)
Returned
epsa
: Mean obliquity (Note 3)rb
: Frame bias matrix (Note 4)rp
: Precession matrix (Note 5)rbp
: Bias-precession matrix (Note 6)rn
: Nutation matrix (Note 7)rbpn
: GCRS-to-true matrix (Note 8)
Notes
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.
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.
The returned mean obliquity is consistent with the IAU 2006 precession.
The matrix rb transforms vectors from GCRS to J2000.0 mean equator and equinox by applying frame bias.
The matrix rp transforms vectors from J2000.0 mean equator and equinox to mean equator and equinox of date by applying precession.
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.
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).
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.
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].
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the stated order.
Called
eraPfw06
: bias-precession F-W angles, IAU 2006eraFw2m
: F-W angles to r-matrixeraCr
: copy r-matrixeraTr
: transpose r-matrixeraRxr
: product of two r-matrices
References
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.pn06a
— Function.pn06a(date1, date2)
Precession-nutation, IAU 2006/2000A models: a multi-purpose function, supporting classical (equinox-based) use directly and CIO-based use indirectly.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsi
,deps
: Nutation (Note 2)epsa
: Mean obliquity (Note 3)rb
: Frame bias matrix (Note 4)rp
: Precession matrix (Note 5)rbp
: Bias-precession matrix (Note 6)rn
: Nutation matrix (Note 7)rbpn
: GCRS-to-true matrix (Notes 8,9)
Notes
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.
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 eraPn06 function, where the nutation components are caller-specified.
The mean obliquity is consistent with the IAU 2006 precession.
The matrix rb transforms vectors from GCRS to mean J2000.0 by applying frame bias.
The matrix rp transforms vectors from mean J2000.0 to mean of date by applying precession.
The matrix rbp transforms vectors from GCRS to mean of date by applying frame bias then precession. It is the product rp x rb.
The matrix rn transforms vectors from mean of date to true of date by applying the nutation (luni-solar + planetary).
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.
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].
It is permissible to re-use the same array in the returned arguments. The arrays are filled in the stated order.
Called
eraNut06a
: nutation, IAU 2006/2000AeraPn06
: bias/precession/nutation results, IAU 2006
Reference
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
ERFA.pnm00a
— Function.pnm00a(date1, date2)
Form the matrix of precession-nutation for a given date (including frame bias), equinox-based, IAU 2000A model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rbpn
: Classical NPB matrix (Note 2)
Notes
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.
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).
A faster, but slightly less accurate result (about 1 mas), can be obtained by using instead the eraPnm00b function.
Called
eraPn00a
: bias/precession/nutation, IAU 2000A
Reference
IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. (2000)
ERFA.pnm00b
— Function.pnm00b(date1, date2)
Form the matrix of precession-nutation for a given date (including frame bias), equinox-based, IAU 2000B model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rbpn
: Bias-precession-nutation matrix (Note 2)
Notes
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.
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).
The present function is faster, but slightly less accurate (about 1 mas), than the eraPnm00a function.
Called
eraPn00b
: bias/precession/nutation, IAU 2000B
Reference
IAU: Trans. International Astronomical Union, Vol. XXIVB; Proc. 24th General Assembly, Manchester, UK. Resolutions B1.3, B1.6. (2000)
ERFA.pnm06a
— Function.pnm06a(date1, date2)
Form the matrix of precession-nutation for a given date (including frame bias), IAU 2006 precession and IAU 2000A nutation models.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
rnpb
: Bias-precession-nutation matrix (Note 2)
Notes
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.
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).
Called
eraPfw06
: bias-precession F-W angles, IAU 2006eraNut06a
: nutation, IAU 2006/2000AeraFw2m
: F-W angles to r-matrix
Reference
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855.
ERFA.pnm80
— Function.pnm80(date1, date2)
Form the matrix of precession/nutation for a given date, IAU 1976 precession model, IAU 1980 nutation model.
Given
date1
,date2
: TDB date (Note 1)
Returned
rmatpn
: Combined precession/nutation matrix
Notes
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.
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.
Called
eraPmat76
: precession matrix, IAU 1976eraNutm80
: nutation matrix, IAU 1980eraRxr
: product of two r-matrices
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992), Section 3.3 (p145).
ERFA.pom00
— Method.pom00(xp, yp, sp)
Form the matrix of polar motion for a given date, IAU 2000.
Given
xp
,yp
: Coordinates of the pole (radians, Note 1)sp
: The TIO locator s' (radians, Note 2)
Returned
rpom
: Polar-motion matrix (Note 3)
Notes
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.
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 eraSp00 implements this approximation.
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.
Called
eraIr
: initialize r-matrix to identityeraRz
: rotate around Z-axiseraRy
: rotate around Y-axiseraRx
: rotate around X-axis
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.ppp
— Function.ppp(a, b)
P-vector addition.
Given
a
: First p-vectorb
: Second p-vector
Returned
apb
: A + b
Note
It is permissible to re-use the same array for any of the arguments.
ERFA.ppsp
— Method.ppsp(a, s, b)
P-vector plus scaled p-vector.
Given
a
: First p-vectors
: Scalar (multiplier for b)b
: Second p-vector
Returned
apsb
: A + s*b
Note
It is permissible for any of a, b and apsb to be the same array.
Called
eraSxp
: multiply p-vector by scalareraPpp
: p-vector plus p-vector
ERFA.pr00
— Method.pr00(date1, date2)
Precession-rate part of the IAU 2000 precession-nutation models (part of MHB2000).
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
dpsipr
,depspr
: Precession corrections (Notes 2,3)
Notes
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.
The precession adjustments are expressed as "nutation components", corrections in longitude and obliquity with respect to the J2000.0 equinox and ecliptic.
Although the precession adjustments are stated to be with respect to Lieske et al. (1977), the MHB2000 model does not specify which set of Euler angles are to be used and how the adjustments are to be applied. The most literal and straightforward procedure is to adopt the 4-rotation epsilon_0, psi_A, omega_A, xi_A option, and to add dpsipr to psi_A and depspr to both omega_A and eps_A.
This is an implementation of one aspect of the IAU 2000A nutation model, formally adopted by the IAU General Assembly in 2000, namely MHB2000 (Mathews et al. 2002).
References
Lieske, J.H., Lederle, T., Fricke, W. & Morando, B., "Expressions for the precession quantities based upon the IAU (1976) System of Astronomical Constants", Astron.Astrophys., 58, 1-16 (1977)
Mathews, P.M., Herring, T.A., Buffet, B.A., "Modeling of nutation and precession New nutation series for nonrigid Earth and insights into the Earth's interior", J.Geophys.Res., 107, B4,
The MHB2000 code itself was obtained on 9th September 2002
from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
Wallace, P.T., "Software for Implementing the IAU 2000 Resolutions", in IERS Workshop 5.1 (2002).
ERFA.prec76
— Method.prec76(date01, date02, date11, date12)
IAU 1976 precession model.
This function forms the three Euler angles which implement general precession between two dates, using the IAU 1976 model (as for the FK5 catalog).
Given
date01
,date02
: TDB starting date (Note 1)date11
,date12
: TDB ending date (Note 1)
Returned
zeta
: 1st rotation: radians cw around zz
: 3rd rotation: radians cw around ztheta
: 2nd rotation: radians ccw around y
Notes
The dates date01+date02 and date11+date12 are Julian Dates, apportioned in any convenient way between the arguments daten1 and daten2. For example, JD(TDB)=2450123.7 could be expressed in any of these ways, among others:
daten1 daten2 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 optimum resolution. The MJD method and the date & time methods are both good compromises between resolution and convenience. The two dates may be expressed using different methods, but at the risk of losing some resolution.
The accumulated precession angles zeta, z, theta 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.
The three angles are returned in the conventional order, which is not the same as the order of the corresponding Euler rotations. The precession matrix is R_3(-z) x R_2(+theta) x R_3(-zeta).
Reference
Lieske, J.H., 1979, Astron.Astrophys. 73, 282, equations (6) & (7), p283.
ERFA.pv2p
— Method.pv2p(pv)
Discard velocity component of a pv-vector.
Given
pv
: Pv-vector
Returned
p
: P-vector
Called
eraCp
: copy p-vector
ERFA.pv2s
— Method.pv2s(pv)
Convert position/velocity from Cartesian to spherical coordinates.
Given
pv
: Pv-vector
Returned
theta
: Longitude angle (radians)phi
: Latitude angle (radians)r
: Radial distancetd
: Rate of change of thetapd
: Rate of change of phird
: Rate of change of r
Notes
If the position part of pv is null, theta, phi, td and pd are indeterminate. This is handled by extrapolating the position through unit time by using the velocity part of pv. This moves the origin without changing the direction of the velocity component. If the position and velocity components of pv are both null, zeroes are returned for all six results.
If the position is a pole, theta, td and pd are indeterminate. In such cases zeroes are returned for all three.
ERFA.pvdpv
— Method.pvdpv(a, b)
Inner (=scalar=dot) product of two pv-vectors.
Given
a
: First pv-vectorb
: Second pv-vector
Returned
adb
: A . b (see note)
Note
If the position and velocity components of the two pv-vectors are ( ap, av ) and ( bp, bv ), the result, a . b, is the pair of numbers ( ap . bp , ap . bv + av . bp ). The two numbers are the dot-product of the two p-vectors and its derivative.
Called
eraPdp
: scalar product of two p-vectors
ERFA.pvm
— Method.pvm(pv)
Modulus of pv-vector.
Given
pv
: Pv-vector
Returned
r
: Modulus of position components
: Modulus of velocity component
Called
eraPm
: modulus of p-vector
ERFA.pvmpv
— Function.pvmpv(a, b)
Subtract one pv-vector from another.
Given
a
: First pv-vectorb
: Second pv-vector
Returned
amb
: A - b
Note
It is permissible to re-use the same array for any of the arguments.
Called
eraPmp
: p-vector minus p-vector
ERFA.pvppv
— Function.pvppv(a, b)
Add one pv-vector to another.
Given
a
: First pv-vectorb
: Second pv-vector
Returned
apb
: A + b
Note
It is permissible to re-use the same array for any of the arguments.
Called
eraPpp
: p-vector plus p-vector
ERFA.pvstar
— Method.pvstar(pv)
Convert star position+velocity vector to catalog coordinates.
Given (Note 1)
pv
: pv-vector (au, au/day)
Returned (Note 2)
ra
: Right ascension (radians)dec
: Declination (radians)pmr
: RA proper motion (radians/year)pmd
: Dec proper motion (radians/year)px
: Parallax (arcsec)rv
: Radial velocity (km/s, positive = receding)
Notes
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.
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 eraStarpv), 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.
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.
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.
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.
The inverse transformation is performed by the function eraStarpv.
Called
eraPn
: decompose p-vector into modulus and directioneraPdp
: scalar product of two p-vectorseraSxp
: multiply p-vector by scalareraPmp
: p-vector minus p-vectoreraPm
: modulus of p-vectoreraPpp
: p-vector plus p-vectoreraPv2s
: pv-vector to sphericaleraAnp
: normalize angle into range 0 to 2pi
Reference
Stumpff, P., 1985, Astron.Astrophys. 144, 232-240.
ERFA.pvtob
— Method.pvtob(elong, phi, height, xp, yp, sp, theta)
Position and velocity of a terrestrial observing station.
Given
elong
: Longitude (radians, east +ve, Note 1)phi
: Latitude (geodetic, radians, Note 1)hm
: Height above ref. ellipsoid (geodetic, m)xp
,yp
: Coordinates of the pole (radians, Note 2)sp
: The TIO locator s' (radians, Note 2)theta
: Earth rotation angle (radians, Note 3)
Returned
pv
: Position/velocity vector (m, m/s, CIRS)
Notes
The terrestrial coordinates are with respect to the ERFA_WGS84 reference ellipsoid.
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.
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.
The velocity units are meters per UT1 second, not per SI second. This is unlikely to have any practical consequences in the modern era.
No validation is performed on the arguments. Error cases that could lead to arithmetic exceptions are trapped by the eraGd2gc 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.
Called
eraGd2gc
: geodetic to geocentric transformationeraPom00
: polar motion matrixeraTrxp
: product of transpose of r-matrix and p-vector
ERFA.pvu
— Method.pvu(dt, pv)
Update a pv-vector.
Given
dt
: Time intervalpv
: Pv-vector
Returned
upv
: P updated, v unchanged
Notes
"Update" means "refer the position component of the vector to a new date dt time units from the existing date".
The time units of dt must match those of the velocity.
It is permissible for pv and upv to be the same array.
Called
eraPpsp
: p-vector plus scaled p-vectoreraCp
: copy p-vector
ERFA.pvup
— Method.pvup(dt, pv)
Update a pv-vector, discarding the velocity component.
Given
dt
: Time intervalpv
: Pv-vector
Returned
p
: P-vector
Notes
"Update" means "refer the position component of the vector to a new date dt time units from the existing date".
The time units of dt must match those of the velocity.
ERFA.pvxpv
— Function.pvxpv(a, b)
Outer (=vector=cross) product of two pv-vectors.
Given
a
: First pv-vectorb
: Second pv-vector
Returned
axb
: A x b
Notes
If the position and velocity components of the two pv-vectors are ( ap, av ) and ( bp, bv ), the result, a x b, is the pair of vectors ( ap x bp, ap x bv + av x bp ). The two vectors are the cross-product of the two p-vectors and its derivative.
It is permissible to re-use the same array for any of the arguments.
Called
eraCpv
: copy pv-vectoreraPxp
: vector product of two p-vectorseraPpp
: p-vector plus p-vector
ERFA.pxp
— Function.pxp(a, b)
p-vector outer (=vector=cross) product.
Given
a
: First p-vectorb
: Second p-vector
Returned
axb
: A x b
Note
It is permissible to re-use the same array for any of the arguments.
ERFA.refco
— Method.refco(phpa, tc, rh, wl)
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.
Given
phpa
: Pressure at the observer (hPa = millibar)tc
: Ambient temperature at the observer (deg C)rh
: Relative humidity at the observer (range 0-1)wl
: Wavelength (micrometers)
Returned
refa
: tan Z coefficient (radians)refb
: tan^3 Z coefficient (radians)
Notes
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.
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 eraRefco 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).
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.
Outlandish input parameters are silently limited to mathematically safe values. Zero pressure is permissible, and causes zeroes to be returned.
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,
Green, R.M., "Spherical Astronomy", Cambridge University Press,
Hohenkerk, C.Y., & Sinclair, A.T., NAO Technical Note No. 63,
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.
ERFA.rm2v
— Method.rm2v(r)
Express an r-matrix as an r-vector.
Given
r
: Rotation matrix
Returned
w
: Rotation vector (Note 1)
Notes
A rotation matrix describes a rotation through some angle about some arbitrary axis called the Euler axis. The "rotation vector" returned by this function has the same direction as the Euler axis, and its magnitude is the angle in radians. (The magnitude and direction can be separated by means of the function eraPn.)
If r is null, so is the result. If r is not a rotation matrix the result is undefined; r must be proper (i.e. have a positive determinant) and real orthogonal (inverse = transpose).
The reference frame rotates clockwise as seen looking along the rotation vector from the origin.
ERFA.rv2m
— Method.rv2m(w)
Form the r-matrix corresponding to a given r-vector.
Given
w
: Rotation vector (Note 1)
Returned
r
: Rotation matrix
Notes
A rotation matrix describes a rotation through some angle about some arbitrary axis called the Euler axis. The "rotation vector" supplied to This function has the same direction as the Euler axis, and its magnitude is the angle in radians.
If w is null, the unit matrix is returned.
The reference frame rotates clockwise as seen looking along the rotation vector from the origin.
ERFA.rx
— Function.rx(phi, r)
Rotate an r-matrix about the x-axis.
Given
phi
: Angle (radians)
Given and returned
r
: r-matrix, rotated
Notes
Calling this function with positive phi incorporates in the supplied r-matrix r an additional rotation, about the x-axis, anticlockwise as seen looking towards the origin from positive x.
The additional rotation can be represented by this matrix:
( 1 0 0 ) ( ) ( 0 + cos(phi) + sin(phi) ) ( ) ( 0 - sin(phi) + cos(phi) )
ERFA.rxp
— Method.rxp(r, p)
Multiply a p-vector by an r-matrix.
Given
r
: R-matrixp
: P-vector
Returned
rp
: R * p
Note
It is permissible for p and rp to be the same array.
Called
eraCp
: copy p-vector
ERFA.rxpv
— Method.rxpv(r, pv)
Multiply a pv-vector by an r-matrix.
Given
r
: R-matrixpv
: Pv-vector
Returned
rpv
: R * pv
Note
It is permissible for pv and rpv to be the same array.
Called
eraRxp
: product of r-matrix and p-vector
ERFA.rxr
— Method.rxr(a, b)
Multiply two r-matrices.
Given
a
: First r-matrixb
: Second r-matrix
Returned
atb
: A * b
Note
It is permissible to re-use the same array for any of the arguments.
Called
eraCr
: copy r-matrix
ERFA.ry
— Function.ry(phi, r)
Rotate an r-matrix about the y-axis.
Given
theta
: Angle (radians)
Given and returned
r
: r-matrix, rotated
Notes
Calling this function with positive theta incorporates in the supplied r-matrix r an additional rotation, about the y-axis, anticlockwise as seen looking towards the origin from positive y.
The additional rotation can be represented by this matrix:
( + cos(theta) 0 - sin(theta) ) ( ) ( 0 1 0 ) ( ) ( + sin(theta) 0 + cos(theta) )
ERFA.rz
— Function.rz(phi, r)
Rotate an r-matrix about the z-axis.
Given
psi
: Angle (radians)
Given and returned
r
: r-matrix, rotated
Notes
Calling this function with positive psi incorporates in the supplied r-matrix r an additional rotation, about the z-axis, anticlockwise as seen looking towards the origin from positive z.
The additional rotation can be represented by this matrix:
( + cos(psi) + sin(psi) 0 ) ( ) ( - sin(psi) + cos(psi) 0 ) ( ) ( 0 0 1 )
ERFA.s00
— Function.s00(date1, date2, x, y)
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, given the CIP's X,Y coordinates. Compatible with IAU 2000A precession-nutation.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)x
,y
: CIP coordinates (Note 3)
Returned
The CIO locator s in radians (Note 2)
Notes
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.
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 quantity s remains below 0.1 arcsecond throughout 1900-2100.
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. This function requires X,Y to be supplied by the caller, who is responsible for providing values that are consistent with the supplied date.
The model is consistent with the IAU 2000A precession-nutation.
Called
eraFal03
: mean anomaly of the MooneraFalp03
: mean anomaly of the SuneraFaf03
: mean argument of the latitude of the MooneraFad03
: mean elongation of the Moon from the SuneraFaom03
: mean longitude of the Moon's ascending nodeeraFave03
: mean longitude of VenuseraFae03
: mean longitude of EartheraFapa03
: general accumulated precession in longitude
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)
ERFA.s00a
— Function.s00a(date1, date2)
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, using the IAU 2000A precession-nutation model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
The CIO locator s in radians (Note 2)
Notes
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.
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.
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 eraS00b, which uses instead the IAU 2000B truncated model.
Called
eraPnm00a
: classical NPB matrix, IAU 2000AeraBnp2xy
: extract CIP X,Y from the BPN matrixeraS00
: the CIO locator s, given X,Y, IAU 2000A
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)
ERFA.s00b
— Function.s00b(date1, date2)
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, using the IAU 2000B precession-nutation model.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
The CIO locator s in radians (Note 2)
Notes
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.
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.
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 eraS00a uses instead the full IAU 2000A model, but with no significant increase in accuracy and at some cost in speed.
Called
eraPnm00b
: classical NPB matrix, IAU 2000BeraBnp2xy
: extract CIP X,Y from the BPN matrixeraS00
: the CIO locator s, given X,Y, IAU 2000A
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)
ERFA.s06
— Function.s06(date1, date2, x, y)
The CIO locator s, positioning the Celestial Intermediate Origin on the equator of the Celestial Intermediate Pole, given the CIP's X,Y coordinates. Compatible with IAU 2006/2000A precession-nutation.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)x
,y
: CIP coordinates (Note 3)
Returned
The CIO locator s in radians (Note 2)
Notes
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.
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 quantity s remains below 0.1 arcsecond throughout 1900-2100.
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. This function requires X,Y to be supplied by the caller, who is responsible for providing values that are consistent with the supplied date.
The model is consistent with the "P03" precession (Capitaine et al. 2003), adopted by IAU 2006 Resolution 1, 2006, and the IAU 2000A nutation (with P03 adjustments).
Called
eraFal03
: mean anomaly of the MooneraFalp03
: mean anomaly of the SuneraFaf03
: mean argument of the latitude of the MooneraFad03
: mean elongation of the Moon from the SuneraFaom03
: mean longitude of the Moon's ascending nodeeraFave03
: mean longitude of VenuseraFae03
: mean longitude of EartheraFapa03
: general accumulated precession in longitude
References
Capitaine, N., Wallace, P.T. & Chapront, J., 2003, Astron. Astrophys. 432, 355
McCarthy, D.D., Petit, G. (eds.) 2004, IERS Conventions (2003), IERS Technical Note No. 32, BKG
ERFA.s06a
— Function.s06a(date1, date2)
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.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
The CIO locator s in radians (Note 2)
Notes
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.
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.
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.
Called
eraPnm06a
: classical NPB matrix, IAU 2006/2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006
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
ERFA.s2c
— Method.s2c(theta, phi)
Convert spherical coordinates to Cartesian.
Given
theta
: Longitude angle (radians)phi
: Latitude angle (radians)
Returned
c
: Direction cosines
ERFA.s2p
— Method.s2p(theta, phi, r)
Convert spherical polar coordinates to p-vector.
Given
theta
: Longitude angle (radians)phi
: Latitude angle (radians)r
: Radial distance
Returned
p
: Cartesian coordinates
Called
eraS2c
: spherical coordinates to unit vectoreraSxp
: multiply p-vector by scalar
ERFA.s2pv
— Method.s2pv(theta, phi, r, td, pd, rd)
Convert position/velocity from spherical to Cartesian coordinates.
Given
theta
: Longitude angle (radians)phi
: Latitude angle (radians)r
: Radial distancetd
: Rate of change of thetapd
: Rate of change of phird
: Rate of change of r
Returned
pv
: Pv-vector
ERFA.s2xpv
— Method.s2xpv(s1, s2, pv)
Multiply a pv-vector by two scalars.
Given
s1
: Scalar to multiply position component bys2
: Scalar to multiply velocity component bypv
: Pv-vector
Returned
spv
: Pv-vector: p scaled by s1, v scaled by s2
Note
It is permissible for pv and spv to be the same array.
Called
eraSxp
: multiply p-vector by scalar
ERFA.sepp
— Method.sepp(a, b)
Angular separation between two p-vectors.
Given
a
: First p-vector (not necessarily unit length)b
: Second p-vector (not necessarily unit length)
Returned
Angular separation (radians, always positive)
Notes
If either vector is null, a zero result is returned.
The angular separation is most simply formulated in terms of scalar product. However, this gives poor accuracy for angles near zero and pi. The present algorithm uses both cross product and dot product, to deliver full accuracy whatever the size of the angle.
Called
eraPxp
: vector product of two p-vectorseraPm
: modulus of p-vectoreraPdp
: scalar product of two p-vectors
ERFA.seps
— Method.seps(al, ap, bl, bp)
Angular separation between two sets of spherical coordinates.
Given
al
: First longitude (radians)ap
: First latitude (radians)bl
: Second longitude (radians)bp
: Second latitude (radians)
Returned
Angular separation (radians)
Called
eraS2c
: spherical coordinates to unit vectoreraSepp
: angular separation between two p-vectors
ERFA.sp00
— Function.sp00(date1, date2)
The TIO locator s', positioning the Terrestrial Intermediate Origin on the equator of the Celestial Intermediate Pole.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
The TIO locator s' in radians (Note 2)
Notes
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.
The TIO locator s' 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, which is the approximation evaluated by the present function.
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.starpm
— Method.starpm(ra1, dec1, pmr1, pmd1, px1, rv1, ep1a, ep1b, ep2a, ep2b)
Star proper motion: update star catalog data for space motion.
Given
ra1
: Right ascension (radians), beforedec1
: Declination (radians), beforepmr1
: RA proper motion (radians/year), beforepmd1
: Dec proper motion (radians/year), beforepx1
: Parallax (arcseconds), beforerv1
: Radial velocity (km/s, +ve = receding), beforeep1a
: "before" epoch, part A (Note 1)ep1b
: "before" epoch, part B (Note 1)ep2a
: "after" epoch, part A (Note 1)ep2b
: "after" epoch, part B (Note 1)
Returned
ra2
: Right ascension (radians), afterdec2
: Declination (radians), afterpmr2
: RA proper motion (radians/year), afterpmd2
: Dec proper motion (radians/year), afterpx2
: Parallax (arcseconds), afterrv2
: Radial velocity (km/s, +ve = receding), after
Notes
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.
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.
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 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.
Straight-line motion at constant speed, in the inertial frame, is assumed.
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 eraStarpv function for the value used). When the distance is overridden in this way, the status, initially zero, has 1 added to it.
If the space velocity is a significant fraction of c (see the constant VMAX in the function eraStarpv), it is arbitrarily set to zero. When this action occurs, 2 is added to the status.
The relativistic adjustment carried out in the eraStarpv function involves an iterative calculation. If the process fails to converge within a set number of iterations, 4 is added to the status.
Called
eraStarpv
: star catalog data to space motion pv-vectoreraPvu
: update a pv-vectoreraPdp
: scalar product of two p-vectorseraPvstar
: space motion pv-vector to star catalog data
ERFA.starpv
— Method.starpv(ra, dec, pmr, pmd, px, rv)
Convert star catalog coordinates to position+velocity vector.
Given (Note 1)
ra
: Right ascension (radians)dec
: Declination (radians)pmr
: RA proper motion (radians/year)pmd
: Dec proper motion (radians/year)px
: Parallax (arcseconds)rv
: Radial velocity (km/s, positive = receding)
Returned (Note 2)
pv
: pv-vector (au, au/day)
Notes
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.
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.
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.
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.
Straight-line motion at constant speed, in the inertial frame, is assumed.
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.
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.
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.
The inverse transformation is performed by the function eraPvstar.
Called
eraS2pv
: spherical coordinates to pv-vectoreraPm
: modulus of p-vectoreraZp
: zero p-vectoreraPn
: decompose p-vector into modulus and directioneraPdp
: scalar product of two p-vectorseraSxp
: multiply p-vector by scalareraPmp
: p-vector minus p-vectoreraPpp
: p-vector plus p-vector
Reference
Stumpff, P., 1985, Astron.Astrophys. 144, 232-240.
ERFA.sxp
— Method.sxp(s, p)
Multiply a p-vector by a scalar.
Given
s
: Scalarp
: P-vector
Returned
sp
: S * p
Note
It is permissible for p and sp to be the same array.
ERFA.sxpv
— Method.sxpv(s, pv)
Multiply a pv-vector by a scalar.
Given
s
: Scalarpv
: Pv-vector
Returned
spv
: S * pv
Note
It is permissible for pv and spv to be the same array
Called
eraS2xpv
: multiply pv-vector by two scalars
ERFA.taitt
— Function.taitt(tai1, tai2)
Time scale transformation: International Atomic Time, TAI, to Terrestrial Time, TT.
Given
tai1
,tai2
: TAI as a 2-part Julian Date
Returned
tt1
,tt2
: TT as a 2-part Julian Date
Note
tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned tt1,tt2 follow suit.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.taiut1
— Function.taiut1(tai1, tai2, dta)
Time scale transformation: International Atomic Time, TAI, to Universal Time, UT1.
Given
tai1
,tai2
: TAI as a 2-part Julian Datedta
: UT1-TAI in seconds
Returned
ut11
,ut12
: UT1 as a 2-part Julian Date
Notes
tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned UT11,UT12 follow suit.
The argument dta, i.e. UT1-TAI, is an observed quantity, and is available from IERS tabulations.
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.taiutc
— Function.taiutc(tai1, tai2)
Time scale transformation: International Atomic Time, TAI, to Coordinated Universal Time, UTC.
Given
tai1
,tai2
: TAI as a 2-part Julian Date (Note 1)
Returned
utc1
,utc2
: UTC as a 2-part quasi Julian Date (Notes 1-3)
Notes
tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned utc1 and utc2 form an analogous pair, except that a special convention is used, to deal with the problem of leap seconds - see the next note.
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. 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 ERFA convention.
The function eraD2dtf can be used to transform the UTC quasi-JD into calendar date and clock time, including UTC leap second handling.
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 eraDat for further details.
Called
eraUtctai
: UTC to TAI
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.tcbtdb
— Function.tcbtdb(tcb1, tcb2)
Time scale transformation: Barycentric Coordinate Time, TCB, to Barycentric Dynamical Time, TDB.
Given
tcb1
,tcb2
: TCB as a 2-part Julian Date
Returned
tdb1
,tdb2
: TDB as a 2-part Julian Date
Notes
tcb1+tcb2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tcb1 is the Julian Day Number and tcb2 is the fraction of a day. The returned tdb1,tdb2 follow suit.
The 2006 IAU General Assembly introduced a conventional linear transformation between TDB and TCB. This transformation compensates for the drift between TCB and terrestrial time TT, and keeps TDB approximately centered on TT. Because the relationship between TT and TCB depends on the adopted solar system ephemeris, the degree of alignment between TDB and TT over long intervals will vary according to which ephemeris is used. Former definitions of TDB attempted to avoid this problem by stipulating that TDB and TT should differ only by periodic effects. This is a good description of the nature of the relationship but eluded precise mathematical formulation. The conventional linear relationship adopted in 2006 sidestepped these difficulties whilst delivering a TDB that in practice was consistent with values before that date.
TDB is essentially the same as Teph, the time argument for the JPL solar system ephemerides.
Reference
IAU 2006 Resolution B3
ERFA.tcgtt
— Function.tcgtt(tcg1, tcg2)
Time scale transformation: Geocentric Coordinate Time, TCG, to Terrestrial Time, TT.
Given
tcg1
,tcg2
: TCG as a 2-part Julian Date
Returned
tt1
,tt2
: TT as a 2-part Julian Date
Note
tcg1+tcg2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tcg1 is the Julian Day Number and tcg22 is the fraction of a day. The returned tt1,tt2 follow suit.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),. IERS Technical Note No. 32, BKG (2004)
IAU 2000 Resolution B1.9
ERFA.tdbtcb
— Function.tdbtcb(tdb1, tdb2)
Time scale transformation: Barycentric Dynamical Time, TDB, to Barycentric Coordinate Time, TCB.
Given
tdb1
,tdb2
: TDB as a 2-part Julian Date
Returned
tcb1
,tcb2
: TCB as a 2-part Julian Date
Notes
tdb1+tdb2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tdb1 is the Julian Day Number and tdb2 is the fraction of a day. The returned tcb1,tcb2 follow suit.
The 2006 IAU General Assembly introduced a conventional linear transformation between TDB and TCB. This transformation compensates for the drift between TCB and terrestrial time TT, and keeps TDB approximately centered on TT. Because the relationship between TT and TCB depends on the adopted solar system ephemeris, the degree of alignment between TDB and TT over long intervals will vary according to which ephemeris is used. Former definitions of TDB attempted to avoid this problem by stipulating that TDB and TT should differ only by periodic effects. This is a good description of the nature of the relationship but eluded precise mathematical formulation. The conventional linear relationship adopted in 2006 sidestepped these difficulties whilst delivering a TDB that in practice was consistent with values before that date.
TDB is essentially the same as Teph, the time argument for the JPL solar system ephemerides.
Reference
IAU 2006 Resolution B3
ERFA.tdbtt
— Function.tdbtt(tdb1, tdb2, dtr)
Time scale transformation: Barycentric Dynamical Time, TDB, to Terrestrial Time, TT.
Given
tdb1
,tdb2
: TDB as a 2-part Julian Datedtr
: TDB-TT in seconds
Returned
tt1
,tt2
: TT as a 2-part Julian Date
Notes
tdb1+tdb2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tdb1 is the Julian Day Number and tdb2 is the fraction of a day. The returned tt1,tt2 follow suit.
The argument dtr represents the quasi-periodic component of the GR transformation between TT and TCB. It is dependent upon the adopted solar-system ephemeris, and can be obtained by numerical integration, by interrogating a precomputed time ephemeris or by evaluating a model such as that implemented in the ERFA function eraDtdb. The quantity is dominated by an annual term of 1.7 ms amplitude.
TDB is essentially the same as Teph, the time argument for the JPL solar system ephemerides.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
IAU 2006 Resolution 3
ERFA.tf2a
— Function.tf2a(s, ihour, imin, sec)
Convert hours, minutes, seconds to radians.
Given
s
: Sign: '-' = negative, otherwise positiveihour
: Hoursimin
: Minutessec
: Seconds
Returned
rad
: Angle in radians
Notes
The result is computed even if any of the range checks fail.
Negative ihour, imin and/or sec produce a warning status, but the absolute value is used in the conversion.
If there are multiple errors, the status value reflects only the first, the smallest taking precedence.
ERFA.tf2d
— Function.tf2d(s, ihour, imin, sec)
Convert hours, minutes, seconds to days.
Given
s
: Sign: '-' = negative, otherwise positiveihour
: Hoursimin
: Minutessec
: Seconds
Returned
days
: Interval in days
Notes
The result is computed even if any of the range checks fail.
Negative ihour, imin and/or sec produce a warning status, but the absolute value is used in the conversion.
If there are multiple errors, the status value reflects only the first, the smallest taking precedence.
ERFA.tr
— Method.tr(r)
Transpose an r-matrix.
Given
r
: R-matrix
Returned
rt
: Transpose
Note
It is permissible for r and rt to be the same array.
Called
eraCr
: copy r-matrix
ERFA.trxp
— Method.trxp(r, p)
Multiply a p-vector by the transpose of an r-matrix.
Given
r
: R-matrixp
: P-vector
Returned
trp
: R * p
Note
It is permissible for p and trp to be the same array.
Called
eraTr
: transpose r-matrixeraRxp
: product of r-matrix and p-vector
ERFA.trxpv
— Method.trxpv(r, pv)
Multiply a pv-vector by the transpose of an r-matrix.
Given
r
: R-matrixpv
: Pv-vector
Returned
trpv
: R * pv
Note
It is permissible for pv and trpv to be the same array.
Called
eraTr
: transpose r-matrixeraRxpv
: product of r-matrix and pv-vector
ERFA.tttai
— Function.tttai(tt1, tt2)
Time scale transformation: Terrestrial Time, TT, to International Atomic Time, TAI.
Given
tt1
,tt2
: TT as a 2-part Julian Date
Returned
tai1
,tai2
: TAI as a 2-part Julian Date
Note
tt1+tt2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tt1 is the Julian Day Number and tt2 is the fraction of a day. The returned tai1,tai2 follow suit.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.tttcg
— Function.tttcg(tt1, tt2)
Time scale transformation: Terrestrial Time, TT, to Geocentric Coordinate Time, TCG.
Given
tt1
,tt2
: TT as a 2-part Julian Date
Returned
tcg1
,tcg2
: TCG as a 2-part Julian Date
Note
tt1+tt2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tt1 is the Julian Day Number and tt2 is the fraction of a day. The returned tcg1,tcg2 follow suit.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
IAU 2000 Resolution B1.9
ERFA.tttdb
— Function.tttdb(tt1, tt2, dtr)
Time scale transformation: Terrestrial Time, TT, to Barycentric Dynamical Time, TDB.
Given
tt1
,tt2
: TT as a 2-part Julian Datedtr
: TDB-TT in seconds
Returned
tdb1
,tdb2
: TDB as a 2-part Julian Date
Notes
tt1+tt2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tt1 is the Julian Day Number and tt2 is the fraction of a day. The returned tdb1,tdb2 follow suit.
The argument dtr represents the quasi-periodic component of the GR transformation between TT and TCB. It is dependent upon the adopted solar-system ephemeris, and can be obtained by numerical integration, by interrogating a precomputed time ephemeris or by evaluating a model such as that implemented in the ERFA function eraDtdb. The quantity is dominated by an annual term of 1.7 ms amplitude.
TDB is essentially the same as Teph, the time argument for the JPL solar system ephemerides.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
IAU 2006 Resolution 3
ERFA.ttut1
— Function.ttut1(tt1, tt2, dt)
Time scale transformation: Terrestrial Time, TT, to Universal Time, UT1.
Given
tt1
,tt2
: TT as a 2-part Julian Datedt
: TT-UT1 in seconds
Returned
ut11
,ut12
: UT1 as a 2-part Julian Date
Notes
tt1+tt2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tt1 is the Julian Day Number and tt2 is the fraction of a day. The returned ut11,ut12 follow suit.
The argument dt is classical Delta T.
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.ut1tai
— Function.ut1tai(ut11, ut12, dta)
Time scale transformation: Universal Time, UT1, to International Atomic Time, TAI.
Given
ut11
,ut12
: UT1 as a 2-part Julian Datedta
: UT1-TAI in seconds
Returned
tai1
,tai2
: TAI as a 2-part Julian Date
Notes
ut11+ut12 is Julian Date, apportioned in any convenient way between the two arguments, for example where ut11 is the Julian Day Number and ut12 is the fraction of a day. The returned tai1,tai2 follow suit.
The argument dta, i.e. UT1-TAI, is an observed quantity, and is available from IERS tabulations.
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.ut1tt
— Function.ut1tt(ut11, ut12, dt)
Time scale transformation: Universal Time, UT1, to Terrestrial Time, TT.
Given
ut11
,ut12
: UT1 as a 2-part Julian Datedt
: TT-UT1 in seconds
Returned
tt1
,tt2
: TT as a 2-part Julian Date
Notes
ut11+ut12 is Julian Date, apportioned in any convenient way between the two arguments, for example where ut11 is the Julian Day Number and ut12 is the fraction of a day. The returned tt1,tt2 follow suit.
The argument dt is classical Delta T.
Reference
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.ut1utc
— Function.ut1utc(ut11, ut12, dut1)
Time scale transformation: Universal Time, UT1, to Coordinated Universal Time, UTC.
Given
ut11
,ut12
: UT1 as a 2-part Julian Date (Note 1)dut1
: Delta UT1: UT1-UTC in seconds (Note 2)
Returned
utc1
,utc2
: UTC as a 2-part quasi Julian Date (Notes 3,4)
Notes
ut11+ut12 is Julian Date, apportioned in any convenient way between the two arguments, for example where ut11 is the Julian Day Number and ut12 is the fraction of a day. The returned utc1 and utc2 form an analogous pair, except that a special convention is used, to deal with the problem of leap seconds - see Note 3.
Delta UT1 can be obtained from tabulations provided by the International Earth Rotation and Reference Systems Service. The value changes abruptly by 1s at a leap second; however, close to a leap second the algorithm used here is tolerant of the "wrong" choice of value being made.
JD cannot unambiguously represent UTC during a leap second unless special measures are taken. The convention in the present function is that the returned quasi JD day UTC1+UTC2 represents UTC days whether the length is 86399, 86400 or 86401 SI seconds.
The function eraD2dtf can be used to transform the UTC quasi-JD into calendar date and clock time, including UTC leap second handling.
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 eraDat for further details.
Called
eraJd2cal
: JD to Gregorian calendareraDat
: delta(AT) = TAI-UTCeraCal2jd
: Gregorian calendar to JD
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.utctai
— Method.utctai(utc1, utc2)
Time scale transformation: Coordinated Universal Time, UTC, to International Atomic Time, TAI.
Given
utc1
,utc2
: UTC as a 2-part quasi Julian Date (Notes 1-4)
Returned
tai1
,tai2
: TAI as a 2-part Julian Date (Note 5)
Notes
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.
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. 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 ERFA convention.
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 eraDat for further details.
The function eraDtf2d converts from calendar date and time of day into 2-part Julian Date, and in the case of UTC implements the leap-second-ambiguity convention described above.
The returned TAI1,TAI2 are such that their sum is the TAI Julian Date.
Called
eraJd2cal
: JD to Gregorian calendareraDat
: delta(AT) = TAI-UTCeraCal2jd
: Gregorian calendar to JD
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
ERFA.utcut1
— Function.utcut1(utc1, utc2, dut1)
Time scale transformation: Coordinated Universal Time, UTC, to Universal Time, UT1.
Given
utc1
,utc2
: UTC as a 2-part quasi Julian Date (Notes 1-4)dut1
: Delta UT1 = UT1-UTC in seconds (Note 5)
Returned
ut11
,ut12
: UT1 as a 2-part Julian Date (Note 6)
Notes
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.
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.
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 eraDat for further details.
The function eraDtf2d converts from calendar date and time of day into 2-part Julian Date, and in the case of UTC implements the leap-second-ambiguity convention described above.
Delta UT1 can be obtained from tabulations provided by the International Earth Rotation and Reference Systems Service. It is the caller's responsibility to supply a dut1 argument containing the UT1-UTC value that matches the given UTC.
The returned ut11,ut12 are such that their sum is the UT1 Julian Date.
References
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
Explanatory Supplement to the Astronomical Almanac, P. Kenneth Seidelmann (ed), University Science Books (1992)
Called
eraJd2cal
: JD to Gregorian calendareraDat
: delta(AT) = TAI-UTCeraUtctai
: UTC to TAIeraTaiut1
: TAI to UT1
ERFA.xy06
— Method.xy06(date1, date2)
X,Y coordinates of celestial intermediate pole from series based on IAU 2006 precession and IAU 2000A nutation.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
x
,y
: CIP X,Y coordinates (Note 2)
Notes
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.
The X,Y coordinates are those of the unit vector towards the celestial intermediate pole. They represent the combined effects of frame bias, precession and nutation.
The fundamental arguments used are as adopted in IERS Conventions (2003) and are from Simon et al. (1994) and Souchay et al. (1999).
This is an alternative to the angles-based method, via the ERFA function eraFw2xy and as used in eraXys06a for example. The two methods agree at the 1 microarcsecond level (at present), a negligible amount compared with the intrinsic accuracy of the models. However, it would be unwise to mix the two methods (angles-based and series-based) in a single application.
Called
eraFal03
: mean anomaly of the MooneraFalp03
: mean anomaly of the SuneraFaf03
: mean argument of the latitude of the MooneraFad03
: mean elongation of the Moon from the SuneraFaom03
: mean longitude of the Moon's ascending nodeeraFame03
: mean longitude of MercuryeraFave03
: mean longitude of VenuseraFae03
: mean longitude of EartheraFama03
: mean longitude of MarseraFaju03
: mean longitude of JupitereraFasa03
: mean longitude of SaturneraFaur03
: mean longitude of UranuseraFane03
: mean longitude of NeptuneeraFapa03
: general accumulated precession in longitude
References
Capitaine, N., Wallace, P.T. & Chapront, J., 2003, Astron.Astrophys., 412, 567
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
Simon, J.L., Bretagnon, P., Chapront, J., Chapront-Touze, M., Francou, G. & Laskar, J., Astron.Astrophys., 1994, 282, 663
Souchay, J., Loysel, B., Kinoshita, H., Folgueira, M., 1999, Astron.Astrophys.Supp.Ser. 135, 111
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
ERFA.xys00a
— Function.xys00a(date1, date2)
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.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
x
,y
: Celestial Intermediate Pole (Note 2)s
: The CIO locator s (Note 2)
Notes
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.
The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
A faster, but slightly less accurate result (about 1 mas for X,Y), can be obtained by using instead the eraXys00b function.
Called
eraPnm00a
: classical NPB matrix, IAU 2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS00
: the CIO locator s, given X,Y, IAU 2000A
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.xys00b
— Function.xys00b(date1, date2)
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.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
x
,y
: Celestial Intermediate Pole (Note 2)s
: The CIO locator s (Note 2)
Notes
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.
The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
The present function is faster, but slightly less accurate (about 1 mas in X,Y), than the eraXys00a function.
Called
eraPnm00b
: classical NPB matrix, IAU 2000BeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS00
: the CIO locator s, given X,Y, IAU 2000A
Reference
McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003), IERS Technical Note No. 32, BKG (2004)
ERFA.xys06a
— Function.xys06a(date1, date2)
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.
Given
date1
,date2
: TT as a 2-part Julian Date (Note 1)
Returned
x
,y
: Celestial Intermediate Pole (Note 2)s
: The CIO locator s (Note 2)
Notes
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.
The Celestial Intermediate Pole coordinates are the x,y components of the unit vector in the Geocentric Celestial Reference System.
The CIO locator s (in radians) positions the Celestial Intermediate Origin on the equator of the CIP.
Series-based solutions for generating X and Y are also available: see Capitaine & Wallace (2006) and eraXy06.
Called
eraPnm06a
: classical NPB matrix, IAU 2006/2000AeraBpn2xy
: extract CIP X,Y coordinates from NPB matrixeraS06
: the CIO locator s, given X,Y, IAU 2006
References
Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981