view release on metacpan or search on metacpan
erfasrc/src/eect00.c view on Meta::CPAN
** 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
erfasrc/src/era00.c view on Meta::CPAN
** 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.
**
** 2) The algorithm is adapted from Expression 22 of Capitaine et al.
** 2000. 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.
**
erfasrc/src/gmst82.c view on Meta::CPAN
**
** 2) 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.
**
** 3) 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).
erfasrc/src/ltpb.c view on Meta::CPAN
**
** 1) The matrix is in the sense
**
** P_date = rpb x P_ICRS,
**
** where P_ICRS is a vector in the Geocentric Celestial Reference
** System, and P_date is the vector with respect to the Celestial
** Intermediate Reference System at that date but with nutation
** neglected.
**
** 2) A first order frame bias formulation is used, of sub-
** microarcsecond accuracy compared with a full 3D rotation.
**
** 3) The Vondrak et al. (2011, 2012) 400 millennia precession model
** agrees with the IAU 2006 precession at J2000.0 and stays within
** 100 microarcseconds during the 20th and 21st centuries. It is
** accurate to a few arcseconds throughout the historical period,
** worsening to a few tenths of a degree at the end of the
** +/- 200,000 year time span.
**
** References:
erfasrc/src/p06e.c view on Meta::CPAN
**
** 5) 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.
**
** 6) The agreement between the different parameterizations is at the
** 1 microarcsecond level in the present era.
**
** 7) 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.
**
** 8) It is permissible to re-use the same variable in the returned
** arguments. The quantities are stored in the stated order.
**
** References:
**
** Capitaine, N., Wallace, P.T. & Chapront, J., 2003,
erfasrc/src/pb06.c view on Meta::CPAN
** are both good compromises between resolution and convenience.
**
** 2) The traditional accumulated precession angles zeta_A, z_A,
** theta_A cannot be obtained in the usual way, namely through
** polynomial expressions, because of the frame bias. The latter
** means that two of the angles undergo rapid changes near this
** date. They are instead the results of decomposing the
** precession-bias matrix obtained by using the Fukushima-Williams
** method, which does not suffer from the problem. The
** decomposition returns values which can be used in the
** conventional formulation and which include frame bias.
**
** 3) The three angles are returned in the conventional order, which
** is not the same as the order of the corresponding Euler
** rotations. The precession-bias matrix is
** R_3(-z) x R_2(+theta) x R_3(-zeta).
**
** 4) Should zeta_A, z_A, theta_A angles be required that do not
** contain frame bias, they are available by calling the ERFA
** function eraP06e.
**
erfasrc/src/pfw06.c view on Meta::CPAN
#include "erfa.h"
void eraPfw06(double date1, double date2,
double *gamb, double *phib, double *psib, double *epsa)
/*
** - - - - - - - - -
** e r a P f w 0 6
** - - - - - - - - -
**
** Precession angles, IAU 2006 (Fukushima-Williams 4-angle formulation).
**
** Given:
** date1,date2 double TT as a 2-part Julian Date (Note 1)
**
** Returned:
** gamb double F-W angle gamma_bar (radians)
** phib double F-W angle phi_bar (radians)
** psib double F-W angle psi_bar (radians)
** epsa double F-W angle epsilon_A (radians)
**
erfasrc/src/pmat76.c view on Meta::CPAN
** 2) The matrix operates in the sense V(date) = RMATP * V(J2000),
** where the p-vector V(J2000) is with respect to the mean
** equatorial triad of epoch J2000.0 and the p-vector V(date)
** is with respect to the mean equatorial triad of the given
** date.
**
** 3) Though the matrix method itself is rigorous, the precession
** angles are expressed through canonical polynomials which are
** valid only for a limited time span. In addition, the IAU 1976
** precession rate is known to be imperfect. The absolute accuracy
** of the present formulation is better than 0.1 arcsec from
** 1960AD to 2040AD, better than 1 arcsec from 1640AD to 2360AD,
** and remains below 3 arcsec for the whole of the period
** 500BC to 3000AD. The errors exceed 10 arcsec outside the
** range 1200BC to 3900AD, exceed 100 arcsec outside 4200BC to
** 5600AD and exceed 1000 arcsec outside 6800BC to 8200AD.
**
** Called:
** eraPrec76 accumulated precession angles, IAU 1976
** eraIr initialize r-matrix to identity
** eraRz rotate around Z-axis
erfasrc/src/prec76.c view on Meta::CPAN
** 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.
**
** 2) 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.
**
** 3) The three angles are returned in the conventional order, which
** is not the same as the order of the corresponding Euler
** rotations. The precession matrix is
erfasrc/src/refco.c view on Meta::CPAN
** 65 124.23 124.26 124.20
** 70 158.63 158.68 158.61
** 72 177.32 177.37 177.31
** 74 200.35 200.38 200.32
** 76 229.45 229.43 229.42
** 78 267.44 267.29 267.41
** 80 319.13 318.55 319.10
**
** deg arcsec arcsec arcsec
**
** The values for Saastamoinen's formula (which includes terms
** up to tan^5) are taken from Hohenkerk and Sinclair (1985).
**
** 3) A wl value in the range 0-100 selects the optical/IR case and is
** wavelength in micrometers. Any value outside this range selects
** the radio case.
**
** 4) Outlandish input parameters are silently limited to
** mathematically safe values. Zero pressure is permissible, and
** causes zeroes to be returned.
**
** 5) The algorithm draws on several sources, as follows:
**
** a) The formula for the saturation vapour pressure of water as
** a function of temperature and temperature is taken from
** Equations (A4.5-A4.7) of Gill (1982).
**
** b) The formula for the water vapour pressure, given the
** saturation pressure and the relative humidity, is from
** Crane (1976), Equation (2.5.5).
**
** c) The refractivity of air is a function of temperature,
** total pressure, water-vapour pressure and, in the case
** of optical/IR, wavelength. The formulae for the two cases are
** developed from Hohenkerk & Sinclair (1985) and Rueger (2002).
**
** d) The formula for beta, the ratio of the scale height of the
** atmosphere to the geocentric distance of the observer, is
** an adaption of Equation (9) from Stone (1996). The
** adaptations, arrived at empirically, consist of (i) a small
** adjustment to the coefficient and (ii) a humidity term for the
** radio case only.
**
** e) The formulae for the refraction constants as a function of
** n-1 and beta are from Green (1987), Equation (4.31).
**
** References:
**
** Crane, R.K., Meeks, M.L. (ed), "Refraction Effects in the Neutral
** Atmosphere", Methods of Experimental Physics: Astrophysics 12B,
** Academic Press, 1976.
**
** Gill, Adrian E., "Atmosphere-Ocean Dynamics", Academic Press,
** 1982.
erfasrc/src/sepp.c view on Meta::CPAN
** a double[3] first p-vector (not necessarily unit length)
** b double[3] second p-vector (not necessarily unit length)
**
** Returned (function value):
** double angular separation (radians, always positive)
**
** Notes:
**
** 1) If either vector is null, a zero result is returned.
**
** 2) 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-vectors
** eraPm modulus of p-vector
** eraPdp scalar product of two p-vectors
**
erfasrc/src/tcbtdb.c view on Meta::CPAN
** 2) 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.
**
** 3) TDB is essentially the same as Teph, the time argument for the
** JPL solar system ephemerides.
**
** Reference:
**
** IAU 2006 Resolution B3
erfasrc/src/tdbtcb.c view on Meta::CPAN
** 2) 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.
**
** 3) TDB is essentially the same as Teph, the time argument for the
** JPL solar system ephemerides.
**
** Reference:
**
** IAU 2006 Resolution B3
palsrc/palPolmo.c view on Meta::CPAN
* Pole, and can therefore be called "celestial azimuths".
* However, a telescope fixed to the Earth measures azimuth
* essentially with respect to due north as defined by the
* IERS Reference Pole, and can therefore be called "terrestrial
* azimuth". Uncorrected, this would manifest itself as a
* changing "azimuth zero-point error". The value DAZ is the
* correction to be added to a celestial azimuth to produce
* a terrestrial azimuth.
*
* - The present routine is rigorous. For most practical
* purposes, the following simplified formulae provide an
* adequate approximation:
*
* elong = elongm+xp*cos(elongm)-yp*sin(elongm)
* phi = phim+(xp*sin(elongm)+yp*cos(elongm))*tan(phim)
* daz = -sqrt(xp*xp+yp*yp)*cos(elongm-atan2(xp,yp))/cos(phim)
*
* An alternative formulation for DAZ is:
*
* x = cos(elongm)*cos(phim)
* y = sin(elongm)*cos(phim)
* daz = atan2(-x*yp-y*xp,x*x+y*y)
*
* - Reference: Seidelmann, P.K. (ed), 1992. "Explanatory Supplement
* to the Astronomical Almanac", ISBN 0-935702-68-7,
* sections 3.27, 4.25, 4.52.
* History:
palsrc/palPrebn.c view on Meta::CPAN
* bep0 = double (Given)
* Beginning Besselian epoch.
* bep1 = double (Given)
* Ending Besselian epoch
* rmatp = double[3][3] (Returned)
* precession matrix in the sense V(BEP1) = RMATP * V(BEP0)
* Description:
* Generate the matrix of precession between two epochs,
* using the old, pre-IAU1976, Bessel-Newcomb model, using
* Kinoshita's formulation
* Authors:
* PTW: Pat Wallace (STFC)
* TIMJ: Tim Jenness (JAC, Hawaii)
* {enter_new_authors_here}
* See Also:
* Kinoshita, H. (1975) 'Formulas for precession', SAO Special
* Report No. 364, Smithsonian Institution Astrophysical
* Observatory, Cambridge, Massachusetts.
palsrc/palRefro.c view on Meta::CPAN
*
* . The numerical integration phase has been rearranged for
* extra clarity.
*
* . A better model for Ps(T) has been adopted (taken from
* Gill, Atmosphere-Ocean Dynamics, Academic Press, 1982).
*
* . More accurate expressions for Pwo have been adopted
* (again from Gill 1982).
*
* . The formula for the water vapour pressure, given the
* saturation pressure and the relative humidity, is from
* Crane (1976), expression 2.5.5.
* . Provision for radio wavelengths has been added using
* expressions devised by A.T.Sinclair, RGO (private
* communication 1989). The refractivity model currently
* used is from J.M.Rueger, "Refractive Index Formulae for
* Electronic Distance Measurement with Radio and Millimetre
* Waves", in Unisurv Report S-68 (2002), School of Surveying
* and Spatial Information Systems, University of New South
palsrc/palRefv.c view on Meta::CPAN
* Notes:
* - This routine applies the adjustment for refraction in the
* opposite sense to the usual one - it takes an unrefracted
* (in vacuo) position and produces an observed (refracted)
* position, whereas the A tan Z + B tan**3 Z model strictly
* applies to the case where an observed position is to have the
* refraction removed. The unrefracted to refracted case is
* harder, and requires an inverted form of the text-book
* refraction models; the algorithm used here is equivalent to
* one iteration of the Newton-Raphson method applied to the above
* formula.
*
* - Though optimized for speed rather than precision, the present
* routine achieves consistency with the refracted-to-unrefracted
* A tan Z + B tan**3 Z model at better than 1 microarcsecond within
* 30 degrees of the zenith and remains within 1 milliarcsecond to
* beyond ZD 70 degrees. The inherent accuracy of the model is, of
* course, far worse than this - see the documentation for palRefco
* for more information.
*
* - At low elevations (below about 3 degrees) the refraction
palsrc/palRefz.c view on Meta::CPAN
* {enter_new_authors_here}
* Notes:
* - This routine applies the adjustment for refraction in the
* opposite sense to the usual one - it takes an unrefracted
* (in vacuo) position and produces an observed (refracted)
* position, whereas the A tan Z + B tan**3 Z model strictly
* applies to the case where an observed position is to have the
* refraction removed. The unrefracted to refracted case is
* harder, and requires an inverted form of the text-book
* refraction models; the formula used here is based on the
* Newton-Raphson method. For the utmost numerical consistency
* with the refracted to unrefracted model, two iterations are
* carried out, achieving agreement at the 1D-11 arcseconds level
* for a ZD of 80 degrees. The inherent accuracy of the model
* is, of course, far worse than this - see the documentation for
* palRefco for more information.
*
* - At ZD 83 degrees, the rapidly-worsening A tan Z + B tan^3 Z
* model is abandoned and an empirical formula takes over. For
* optical/IR wavelengths, over a wide range of observer heights and
* corresponding temperatures and pressures, the following levels of
* accuracy (arcsec, worst case) are achieved, relative to numerical
* integration through a model atmosphere:
*
* ZR error
*
* 80 0.7
* 81 1.3
* 82 2.4