diff options
Diffstat (limited to 'ast/erfa/pvstar.c')
-rw-r--r-- | ast/erfa/pvstar.c | 216 |
1 files changed, 0 insertions, 216 deletions
diff --git a/ast/erfa/pvstar.c b/ast/erfa/pvstar.c deleted file mode 100644 index 3a4e00b..0000000 --- a/ast/erfa/pvstar.c +++ /dev/null @@ -1,216 +0,0 @@ -#include "erfa.h" - -int eraPvstar(double pv[2][3], double *ra, double *dec, - double *pmr, double *pmd, double *px, double *rv) -/* -** - - - - - - - - - - -** e r a P v s t a r -** - - - - - - - - - - -** -** Convert star position+velocity vector to catalog coordinates. -** -** Given (Note 1): -** pv double[2][3] pv-vector (AU, AU/day) -** -** Returned (Note 2): -** ra double right ascension (radians) -** dec double declination (radians) -** pmr double RA proper motion (radians/year) -** pmd double Dec proper motion (radians/year) -** px double parallax (arcsec) -** rv double radial velocity (km/s, positive = receding) -** -** Returned (function value): -** int status: -** 0 = OK -** -1 = superluminal speed (Note 5) -** -2 = null position vector -** -** Notes: -** -** 1) The specified pv-vector is the coordinate direction (and its rate -** of change) for the date at which the light leaving the star -** reached the solar-system barycenter. -** -** 2) The star data returned by this function are "observables" for an -** imaginary observer at the solar-system barycenter. Proper motion -** and radial velocity are, strictly, in terms of barycentric -** coordinate time, TCB. For most practical applications, it is -** permissible to neglect the distinction between TCB and ordinary -** "proper" time on Earth (TT/TAI). The result will, as a rule, be -** limited by the intrinsic accuracy of the proper-motion and -** radial-velocity data; moreover, the supplied pv-vector is likely -** to be merely an intermediate result (for example generated by the -** function 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. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds; the radial velocity is in km/s, but -** the pv-vector result is in AU and AU/day. -** -** 4) The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per Julian -** year. The RA proper motion is in terms of coordinate angle, not -** true angle, and will thus be numerically larger at high -** declinations. -** -** 5) Straight-line motion at constant speed in the inertial frame is -** assumed. If the speed is greater than or equal to the speed of -** light, the function aborts with an error status. -** -** 6) The inverse transformation is performed by the function eraStarpv. -** -** Called: -** eraPn decompose p-vector into modulus and direction -** eraPdp scalar product of two p-vectors -** eraSxp multiply p-vector by scalar -** eraPmp p-vector minus p-vector -** eraPm modulus of p-vector -** eraPpp p-vector plus p-vector -** eraPv2s pv-vector to spherical -** eraAnp normalize angle into range 0 to 2pi -** -** Reference: -** -** Stumpff, P., 1985, Astron.Astrophys. 144, 232-240. -** -** Copyright (C) 2013-2016, NumFOCUS Foundation. -** Derived, with permission, from the SOFA library. See notes at end of file. -*/ -{ - double r, x[3], vr, ur[3], vt, ut[3], bett, betr, d, w, del, - usr[3], ust[3], a, rad, decd, rd; - - -/* Isolate the radial component of the velocity (AU/day, inertial). */ - eraPn(pv[0], &r, x); - vr = eraPdp(x, pv[1]); - eraSxp(vr, x, ur); - -/* Isolate the transverse component of the velocity (AU/day, inertial). */ - eraPmp(pv[1], ur, ut); - vt = eraPm(ut); - -/* Special-relativity dimensionless parameters. */ - bett = vt / ERFA_DC; - betr = vr / ERFA_DC; - -/* The inertial-to-observed correction terms. */ - d = 1.0 + betr; - w = 1.0 - betr*betr - bett*bett; - if (d == 0.0 || w < 0) return -1; - del = sqrt(w) - 1.0; - -/* Apply relativistic correction factor to radial velocity component. */ - w = (betr != 0) ? (betr - del) / (betr * d) : 1.0; - eraSxp(w, ur, usr); - -/* Apply relativistic correction factor to tangential velocity */ -/* component. */ - eraSxp(1.0/d, ut, ust); - -/* Combine the two to obtain the observed velocity vector (AU/day). */ - eraPpp(usr, ust, pv[1]); - -/* Cartesian to spherical. */ - eraPv2s(pv, &a, dec, &r, &rad, &decd, &rd); - if (r == 0.0) return -2; - -/* Return RA in range 0 to 2pi. */ - *ra = eraAnp(a); - -/* Return proper motions in radians per year. */ - *pmr = rad * ERFA_DJY; - *pmd = decd * ERFA_DJY; - -/* Return parallax in arcsec. */ - *px = ERFA_DR2AS / r; - -/* Return radial velocity in km/s. */ - *rv = 1e-3 * rd * ERFA_DAU / ERFA_DAYSEC; - -/* OK status. */ - return 0; - -} -/*---------------------------------------------------------------------- -** -** -** Copyright (C) 2013-2016, NumFOCUS Foundation. -** All rights reserved. -** -** This library is derived, with permission, from the International -** Astronomical Union's "Standards of Fundamental Astronomy" library, -** available from http://www.iausofa.org. -** -** The ERFA version is intended to retain identical functionality to -** the SOFA library, but made distinct through different function and -** file names, as set out in the SOFA license conditions. The SOFA -** original has a role as a reference standard for the IAU and IERS, -** and consequently redistribution is permitted only in its unaltered -** state. The ERFA version is not subject to this restriction and -** therefore can be included in distributions which do not support the -** concept of "read only" software. -** -** Although the intent is to replicate the SOFA API (other than -** replacement of prefix names) and results (with the exception of -** bugs; any that are discovered will be fixed), SOFA is not -** responsible for any errors found in this version of the library. -** -** If you wish to acknowledge the SOFA heritage, please acknowledge -** that you are using a library derived from SOFA, rather than SOFA -** itself. -** -** -** TERMS AND CONDITIONS -** -** Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions -** are met: -** -** 1 Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** -** 2 Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** -** 3 Neither the name of the Standards Of Fundamental Astronomy Board, -** the International Astronomical Union nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS -** FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE -** COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, -** INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -** BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -** LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT -** LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN -** ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE -** POSSIBILITY OF SUCH DAMAGE. -** -*/ |