diff options
author | William Joye <wjoye@cfa.harvard.edu> | 2017-12-08 18:57:06 (GMT) |
---|---|---|
committer | William Joye <wjoye@cfa.harvard.edu> | 2017-12-08 18:57:06 (GMT) |
commit | 90a861b642f765d5657ab827aedabe3920ff9333 (patch) | |
tree | 88b93d468ca1feed91ef2958f46f3f74f1418aac /ast/erfa/pmsafe.c | |
parent | fba23129f50db253ed3fbbaa23d6e342bf86068e (diff) | |
download | blt-90a861b642f765d5657ab827aedabe3920ff9333.zip blt-90a861b642f765d5657ab827aedabe3920ff9333.tar.gz blt-90a861b642f765d5657ab827aedabe3920ff9333.tar.bz2 |
upgrade AST
Diffstat (limited to 'ast/erfa/pmsafe.c')
-rw-r--r-- | ast/erfa/pmsafe.c | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/ast/erfa/pmsafe.c b/ast/erfa/pmsafe.c deleted file mode 100644 index 02e5824..0000000 --- a/ast/erfa/pmsafe.c +++ /dev/null @@ -1,206 +0,0 @@ -#include "erfa.h" - -int eraPmsafe(double ra1, double dec1, double pmr1, double pmd1, - double px1, double rv1, - double ep1a, double ep1b, double ep2a, double ep2b, - double *ra2, double *dec2, double *pmr2, double *pmd2, - double *px2, double *rv2) -/* -** - - - - - - - - - - -** e r a P m s a f e -** - - - - - - - - - - -** -** Star proper motion: update star catalog data for space motion, with -** special handling to handle the zero parallax case. -** -** Given: -** ra1 double right ascension (radians), before -** dec1 double declination (radians), before -** pmr1 double RA proper motion (radians/year), before -** pmd1 double Dec proper motion (radians/year), before -** px1 double parallax (arcseconds), before -** rv1 double radial velocity (km/s, +ve = receding), before -** ep1a double "before" epoch, part A (Note 1) -** ep1b double "before" epoch, part B (Note 1) -** ep2a double "after" epoch, part A (Note 1) -** ep2b double "after" epoch, part B (Note 1) -** -** Returned: -** ra2 double right ascension (radians), after -** dec2 double declination (radians), after -** pmr2 double RA proper motion (radians/year), after -** pmd2 double Dec proper motion (radians/year), after -** px2 double parallax (arcseconds), after -** rv2 double radial velocity (km/s, +ve = receding), after -** -** Returned (function value): -** int status: -** -1 = system error (should not occur) -** 0 = no warnings or errors -** 1 = distance overridden (Note 6) -** 2 = excessive velocity (Note 7) -** 4 = solution didn't converge (Note 8) -** else = binary logical OR of the above warnings -** -** Notes: -** -** 1) The starting and ending TDB epochs ep1a+ep1b and ep2a+ep2b are -** Julian Dates, apportioned in any convenient way between the two -** parts (A and B). For example, JD(TDB)=2450123.7 could be -** expressed in any of these ways, among others: -** -** epNa epNb -** -** 2450123.7 0.0 (JD method) -** 2451545.0 -1421.3 (J2000 method) -** 2400000.5 50123.2 (MJD method) -** 2450123.5 0.2 (date & time method) -** -** The JD method is the most natural and convenient to use in cases -** where the loss of several decimal digits of resolution is -** acceptable. The J2000 method is best matched to the way the -** argument is handled internally and will deliver the optimum -** resolution. The MJD method and the date & time methods are both -** good compromises between resolution and convenience. -** -** 2) In accordance with normal star-catalog conventions, the object's -** right ascension and declination are freed from the effects of -** secular aberration. The frame, which is aligned to the catalog -** equator and equinox, is Lorentzian and centered on the SSB. -** -** The proper motions are the rate of change of the right ascension -** and declination at the catalog epoch and are in radians per TDB -** Julian year. -** -** The parallax and radial velocity are in the same frame. -** -** 3) Care is needed with units. The star coordinates are in radians -** and the proper motions in radians per Julian year, but the -** parallax is in arcseconds. -** -** 4) The RA proper motion is in terms of coordinate angle, not true -** angle. If the catalog uses arcseconds for both RA and Dec proper -** motions, the RA proper motion will need to be divided by cos(Dec) -** before use. -** -** 5) Straight-line motion at constant speed, in the inertial frame, is -** assumed. -** -** 6) An extremely small (or zero or negative) parallax is overridden -** to ensure that the object is at a finite but very large distance, -** but not so large that the proper motion is equivalent to a large -** but safe speed (about 0.1c using the chosen constant). A warning -** status of 1 is added to the status if this action has been taken. -** -** 7) If the space velocity is a significant fraction of c (see the -** constant VMAX in the function eraStarpv), it is arbitrarily set -** to zero. When this action occurs, 2 is added to the status. -** -** 8) 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 points -** eraStarpm update star catalog data for space motion -** -** Copyright (C) 2013-2016, NumFOCUS Foundation. -** Derived, with permission, from the SOFA library. See notes at end of file. -*/ -{ - -/* Minimum allowed parallax (arcsec) */ - const double PXMIN = 5e-7; - -/* Factor giving maximum allowed transverse speed of about 1% c */ - const double F = 326.0; - - int jpx, j; - double pm, px1a; - - -/* Proper motion in one year (radians). */ - pm = eraSeps(ra1, dec1, ra1+pmr1, dec1+pmd1); - -/* Override the parallax to reduce the chances of a warning status. */ - jpx = 0; - px1a = px1; - pm *= F; - if (px1a < pm) {jpx = 1; px1a = pm;} - if (px1a < PXMIN) {jpx = 1; px1a = PXMIN;} - -/* Carry out the transformation using the modified parallax. */ - j = eraStarpm(ra1, dec1, pmr1, pmd1, px1a, rv1, - ep1a, ep1b, ep2a, ep2b, - ra2, dec2, pmr2, pmd2, px2, rv2); - -/* Revise and return the status. */ - if ( !(j%2) ) j += jpx; - return j; - -/* Finished. */ - -} -/*---------------------------------------------------------------------- -** -** -** 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. -** -*/ |