Initial commit
This commit is contained in:
49
20200721/c/00READ.ME
Normal file
49
20200721/c/00READ.ME
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
|
||||||
|
SOFA-Issue: 2020-07-21
|
||||||
|
|
||||||
|
This is the IAU Standards of Fundamental Astronomy (SOFA) Libraries product,
|
||||||
|
issued on 2020-07-21. The tag `SOFA-Issue' above defines this release and
|
||||||
|
differentiates it from previous or subsequent releases of the SOFA product.
|
||||||
|
The 00READ.ME file must remain with this distribution set.
|
||||||
|
|
||||||
|
Changes made since the previous release are noted in the file changes.lis.
|
||||||
|
|
||||||
|
Notes:
|
||||||
|
|
||||||
|
1/ Unix users: The distribution set contains a simple makefile which
|
||||||
|
can be used to create a single object library for the SOFA Libraries.
|
||||||
|
To build the object library:
|
||||||
|
|
||||||
|
a/ Examine the makefile to be sure definition of the C compiler
|
||||||
|
is correct for your system. You need an ANSI standard compliant
|
||||||
|
C compiler. Edit the CCOMPC macro in the makefile as necessary.
|
||||||
|
|
||||||
|
b/ To create libsofa.a, execute make:
|
||||||
|
|
||||||
|
% make
|
||||||
|
|
||||||
|
(where % is the shell prompt).
|
||||||
|
|
||||||
|
c/ To remove the object files:
|
||||||
|
|
||||||
|
% make clean
|
||||||
|
|
||||||
|
To link with the SOFA library, include the library in the compile/link
|
||||||
|
command in the normal Unix fashion, eg:
|
||||||
|
|
||||||
|
% gcc myprog.c -o myprog libsofa.a
|
||||||
|
|
||||||
|
You should specify the appropriate C compiler name for `gcc'
|
||||||
|
in the above command sequence.
|
||||||
|
|
||||||
|
|
||||||
|
2/ Windows/DOS/Mac users: There is no `build' procedure to create a linkable
|
||||||
|
object library or DLL for the SOFA Libraries. This is due to the many
|
||||||
|
different C compilers and development environments available on
|
||||||
|
Windows/DOS and Mac machines.
|
||||||
|
|
||||||
|
To use the SOFA routines with your program(s), you must use your preferred
|
||||||
|
development environment to create the appropriate library or DLL.
|
||||||
|
|
||||||
|
IAU SOFA Center
|
||||||
|
2020/07/21
|
||||||
39
20200721/c/doc/board.lis
Normal file
39
20200721/c/doc/board.lis
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
board.lis 2020 June 2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
IAU STANDARDS OF FUNDAMENTAL ASTRONOMY BOARD
|
||||||
|
|
||||||
|
|
||||||
|
Current Membership
|
||||||
|
|
||||||
|
John Bangert - United States Naval Observatory, retired
|
||||||
|
Steven Bell - Her Majesty's Nautical Almanac Office (HMNAO)
|
||||||
|
Nicole Capitaine - Paris Observatory
|
||||||
|
Mickael Gastineau - Paris Observatory, IMCCE
|
||||||
|
Catherine Hohenkerk - HMNAO (Chair, retired)
|
||||||
|
Li Jinling - Shanghai Astronomical Observatory
|
||||||
|
Brian Luzum - United States Naval Observatory (IERS)
|
||||||
|
Zinovy Malkin - Pulkovo Observatory, St Petersburg
|
||||||
|
Jeffrey Percival - University of Wisconsin
|
||||||
|
Wendy Puatua - United States Naval Observatory
|
||||||
|
Scott Ransom - National Radio Astronomy Observatory
|
||||||
|
Nick Stamatakos - United States Naval Observatory
|
||||||
|
Patrick Wallace - RAL Space, retired
|
||||||
|
Toni Wilmot - Her Majesty's Nautical Almanac Office (Trainee)
|
||||||
|
|
||||||
|
|
||||||
|
Past Members
|
||||||
|
|
||||||
|
Wim Brouw University of Groningen
|
||||||
|
Mark Calabretta Australia Telescope National Facility
|
||||||
|
William Folkner Jet Propulsion Laboratory
|
||||||
|
Anne-Marie Gontier Paris Observatory
|
||||||
|
George Hobbs Australia Telescope National Facility
|
||||||
|
George Kaplan United States Naval Observatory
|
||||||
|
Dennis McCarthy United States Naval Observatory
|
||||||
|
Skip Newhall Jet Propulsion Laboratory
|
||||||
|
Jin Wen-Jing Shanghai Astronomical Observatory
|
||||||
|
|
||||||
|
|
||||||
|
The email address for the Board chair is catherine.hohenkerk@gmail.com
|
||||||
BIN
20200721/c/doc/board.pdf
Normal file
BIN
20200721/c/doc/board.pdf
Normal file
Binary file not shown.
101
20200721/c/doc/changes.lis
Normal file
101
20200721/c/doc/changes.lis
Normal file
@@ -0,0 +1,101 @@
|
|||||||
|
Updates for SOFA Release 16 : 2020 July 21
|
||||||
|
- - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
|
||||||
|
Summary of Changes
|
||||||
|
------------------
|
||||||
|
The changes fall into the following categories:
|
||||||
|
|
||||||
|
1. Correction of a sign in routine P06E.
|
||||||
|
|
||||||
|
2. Correction in the ANSI C macro function dnint in the include file
|
||||||
|
sofam.h, to improve rounding.
|
||||||
|
|
||||||
|
3. Improvements in precision and rounding (see 2 and 3 below).
|
||||||
|
|
||||||
|
4. Miscellaneous typographical corrections and improvements to
|
||||||
|
various other documents.
|
||||||
|
|
||||||
|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|
||||||
|
|
||||||
|
FORTRAN 77 Library
|
||||||
|
------------------
|
||||||
|
|
||||||
|
1. iau_P06E Correction. The series are taken from Table 1 of
|
||||||
|
Hilton, J. et al., 2006, Celest. Mech. Dyn. Astron.
|
||||||
|
94, 351., and it has been discovered that the one
|
||||||
|
for general precession, p_A, had the wrong sign for
|
||||||
|
the t^5 coefficient. The error in the paper has
|
||||||
|
been corrected in the SOFA code. The correct value
|
||||||
|
is -0.0000000383 arcsec. (Even after five centuries
|
||||||
|
the error would be lower than 250 microarcsec.)
|
||||||
|
|
||||||
|
2. iau_PB06 Improvements in the method of decomposing the rotation
|
||||||
|
matrix by ensuring that angles near zero are preferred.
|
||||||
|
|
||||||
|
3. iau_JD2CAL Improvements by ensuring precision is not lost when
|
||||||
|
iau_JDCALF splitting date and time.
|
||||||
|
|
||||||
|
4. iau_DAT Release year updated.
|
||||||
|
|
||||||
|
5. t_sofa_f.for Updated due to the correction in iau_P06E.
|
||||||
|
|
||||||
|
6. iau_FK524 Minor corrections/improvements to the documentation.
|
||||||
|
iau_FW2M
|
||||||
|
iau_GMST82
|
||||||
|
iau_TRXP
|
||||||
|
iau_XYS00A
|
||||||
|
|
||||||
|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|
||||||
|
|
||||||
|
ANSI C Library
|
||||||
|
--------------
|
||||||
|
|
||||||
|
1. iauP06e Correction. The series are taken from Table 1 of
|
||||||
|
Hilton, J. et al., 2006, Celest. Mech. Dyn. Astron.
|
||||||
|
94, 351., and it has been discovered that the one
|
||||||
|
for general precession, p_A, had the wrong sign for
|
||||||
|
the t^5 coefficient. The error in the paper has
|
||||||
|
been corrected in the SOFA code. The correct value
|
||||||
|
is -0.0000000383 arcsec. (Even after five centuries
|
||||||
|
the error would be lower than 250 microarcsec.)
|
||||||
|
|
||||||
|
2. sofam.h Correction to dnint(A).
|
||||||
|
|
||||||
|
The existing dnint macro could incorrectly round
|
||||||
|
numbers just over -0.5 and just under +0.5 due to
|
||||||
|
the loss of precision when calculating ceil(A-0.5)
|
||||||
|
or floor(A+0.5). A preliminary test for |A|<0.5
|
||||||
|
has been added to ensure that such numbers always
|
||||||
|
round to zero. As none of the SOFA C functions
|
||||||
|
depend critically on perfect rounding, the change
|
||||||
|
is unlikely to affect user applications noticeably,
|
||||||
|
though critical round-trip tests may see an
|
||||||
|
improvement.
|
||||||
|
|
||||||
|
3. iauPb06 Improvements in the method of decomposing the rotation
|
||||||
|
matrix by ensuring that angles near zero are preferred.
|
||||||
|
|
||||||
|
4. iauJd2cal Improvements by ensuring precision is not lost when
|
||||||
|
iauJdcalf splitting date and time.
|
||||||
|
|
||||||
|
5. iauDat Release year updated.
|
||||||
|
|
||||||
|
6. t_sofa_c.c Updated due to the correction in iauP06e.
|
||||||
|
|
||||||
|
7. iauA2af Minor corrections/improvements to the documentation.
|
||||||
|
iauA2tf
|
||||||
|
iauD2tf
|
||||||
|
iauFk524
|
||||||
|
iauFw2m
|
||||||
|
iauGmst82
|
||||||
|
iauTrxp
|
||||||
|
iauXys00a
|
||||||
|
|
||||||
|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|
||||||
|
+ SOFA thanks all those who have reported the various issues that go
|
||||||
|
+ to ensuring the libraries and documentation are kept up-to-date and
|
||||||
|
+ relevant.
|
||||||
|
+
|
||||||
|
+ End of updates
|
||||||
|
+ 2020 June 22
|
||||||
|
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
|
||||||
BIN
20200721/c/doc/changes.pdf
Normal file
BIN
20200721/c/doc/changes.pdf
Normal file
Binary file not shown.
54
20200721/c/doc/consts.lis
Normal file
54
20200721/c/doc/consts.lis
Normal file
@@ -0,0 +1,54 @@
|
|||||||
|
consts.lis 2008 September 30
|
||||||
|
|
||||||
|
|
||||||
|
SOFA Fortran constants
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
These must be used exactly as presented below.
|
||||||
|
|
||||||
|
* Pi
|
||||||
|
DOUBLE PRECISION DPI
|
||||||
|
PARAMETER ( DPI = 3.141592653589793238462643D0 )
|
||||||
|
|
||||||
|
* 2Pi
|
||||||
|
DOUBLE PRECISION D2PI
|
||||||
|
PARAMETER ( D2PI = 6.283185307179586476925287D0 )
|
||||||
|
|
||||||
|
* Radians to hours
|
||||||
|
DOUBLE PRECISION DR2H
|
||||||
|
PARAMETER ( DR2H = 3.819718634205488058453210D0 )
|
||||||
|
|
||||||
|
* Radians to seconds
|
||||||
|
DOUBLE PRECISION DR2S
|
||||||
|
PARAMETER ( DR2S = 13750.98708313975701043156D0 )
|
||||||
|
|
||||||
|
* Radians to degrees
|
||||||
|
DOUBLE PRECISION DR2D
|
||||||
|
PARAMETER ( DR2D = 57.29577951308232087679815D0 )
|
||||||
|
|
||||||
|
* Radians to arc seconds
|
||||||
|
DOUBLE PRECISION DR2AS
|
||||||
|
PARAMETER ( DR2AS = 206264.8062470963551564734D0 )
|
||||||
|
|
||||||
|
* Hours to radians
|
||||||
|
DOUBLE PRECISION DH2R
|
||||||
|
PARAMETER ( DH2R = 0.2617993877991494365385536D0 )
|
||||||
|
|
||||||
|
* Seconds to radians
|
||||||
|
DOUBLE PRECISION DS2R
|
||||||
|
PARAMETER ( DS2R = 7.272205216643039903848712D-5 )
|
||||||
|
|
||||||
|
* Degrees to radians
|
||||||
|
DOUBLE PRECISION DD2R
|
||||||
|
PARAMETER ( DD2R = 1.745329251994329576923691D-2 )
|
||||||
|
|
||||||
|
* Arc seconds to radians
|
||||||
|
DOUBLE PRECISION DAS2R
|
||||||
|
PARAMETER ( DAS2R = 4.848136811095359935899141D-6 )
|
||||||
|
|
||||||
|
|
||||||
|
SOFA C constants
|
||||||
|
----------------
|
||||||
|
|
||||||
|
The constants used by the C version of SOFA are defined in the header
|
||||||
|
file sofam.h.
|
||||||
BIN
20200721/c/doc/consts.pdf
Normal file
BIN
20200721/c/doc/consts.pdf
Normal file
Binary file not shown.
25
20200721/c/doc/contents.lis
Normal file
25
20200721/c/doc/contents.lis
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
contents.lis 2018 January 26
|
||||||
|
|
||||||
|
|
||||||
|
--------
|
||||||
|
CONTENTS
|
||||||
|
--------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
1) Introduction
|
||||||
|
|
||||||
|
2) The SOFA Astronomy Library
|
||||||
|
|
||||||
|
3) The SOFA Vector/Matrix Library
|
||||||
|
|
||||||
|
4) The individual routines
|
||||||
|
|
||||||
|
|
||||||
|
A1 The SOFA copyright notice
|
||||||
|
|
||||||
|
A2 Constants
|
||||||
|
|
||||||
|
A3 SOFA Board membership
|
||||||
BIN
20200721/c/doc/contents.pdf
Normal file
BIN
20200721/c/doc/contents.pdf
Normal file
Binary file not shown.
111
20200721/c/doc/copyr.lis
Normal file
111
20200721/c/doc/copyr.lis
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
copyr.lis 2020 June 2
|
||||||
|
|
||||||
|
|
||||||
|
COPYRIGHT NOTICE
|
||||||
|
|
||||||
|
Text equivalent to that below appears at the end of every SOFA routine
|
||||||
|
(with one exception). There are small formatting differences between
|
||||||
|
the Fortran and C versions.
|
||||||
|
|
||||||
|
The one exception is the "leap second" routine DAT. This uniquely is
|
||||||
|
classified as "user replaceable", and has a mitigated license statement
|
||||||
|
that permits the distribution of local variants under the same name.
|
||||||
|
This measure allows other SOFA routines to call the local variant, which
|
||||||
|
may be file or network based, or otherwise equipped to pick up IERS leap
|
||||||
|
second updates with no need to download new SOFA code.
|
||||||
|
|
||||||
|
*+----------------------------------------------------------------------
|
||||||
|
*
|
||||||
|
* Copyright (C) 2020
|
||||||
|
* Standards Of Fundamental Astronomy Board
|
||||||
|
* of the International Astronomical Union.
|
||||||
|
*
|
||||||
|
* =====================
|
||||||
|
* SOFA Software License
|
||||||
|
* =====================
|
||||||
|
*
|
||||||
|
* NOTICE TO USER:
|
||||||
|
*
|
||||||
|
* BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
* CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
*
|
||||||
|
* 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
*
|
||||||
|
* 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
* purpose, including commercial applications, free of charge and
|
||||||
|
* without payment of royalties, subject to the conditions and
|
||||||
|
* restrictions listed below.
|
||||||
|
*
|
||||||
|
* 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
* and use and adapt its code and algorithms in your own software,
|
||||||
|
* on a world-wide, royalty-free basis. That portion of your
|
||||||
|
* distribution that does not consist of intact and unchanged copies
|
||||||
|
* of SOFA source code files is a "derived work" that must comply
|
||||||
|
* with the following requirements:
|
||||||
|
*
|
||||||
|
* a) Your work shall be marked or carry a statement that it
|
||||||
|
* (i) uses routines and computations derived by you from
|
||||||
|
* software provided by SOFA under license to you; and
|
||||||
|
* (ii) does not itself constitute software provided by and/or
|
||||||
|
* endorsed by SOFA.
|
||||||
|
*
|
||||||
|
* b) The source code of your derived work must contain descriptions
|
||||||
|
* of how the derived work is based upon, contains and/or differs
|
||||||
|
* from the original SOFA software.
|
||||||
|
*
|
||||||
|
* c) The names of all routines in your derived work shall not
|
||||||
|
* include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
* thereof such as changes of case.
|
||||||
|
*
|
||||||
|
* d) The origin of the SOFA components of your derived work must
|
||||||
|
* not be misrepresented; you must not claim that you wrote the
|
||||||
|
* original software, nor file a patent application for SOFA
|
||||||
|
* software or algorithms embedded in the SOFA software.
|
||||||
|
*
|
||||||
|
* e) These requirements must be reproduced intact in any source
|
||||||
|
* distribution and shall apply to anyone to whom you have
|
||||||
|
* granted a further right to modify the source code of your
|
||||||
|
* derived work.
|
||||||
|
*
|
||||||
|
* Note that, as originally distributed, the SOFA software is
|
||||||
|
* intended to be a definitive implementation of the IAU standards,
|
||||||
|
* and consequently third-party modifications are discouraged. All
|
||||||
|
* variations, no matter how minor, must be explicitly marked as
|
||||||
|
* such, as explained above.
|
||||||
|
*
|
||||||
|
* 4. You shall not cause the SOFA software to be brought into
|
||||||
|
* disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
* by inappropriate modification.
|
||||||
|
*
|
||||||
|
* 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
* as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
* the performance or results which the user may obtain by using the
|
||||||
|
* SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
* to non-infringement of third party rights, merchantability, or
|
||||||
|
* fitness for any particular purpose. In no event will SOFA be
|
||||||
|
* liable to the user for any consequential, incidental, or special
|
||||||
|
* damages, including any lost profits or lost savings, even if a
|
||||||
|
* SOFA representative has been advised of such damages, or for any
|
||||||
|
* claim by any third party.
|
||||||
|
*
|
||||||
|
* 6. The provision of any version of the SOFA software under the terms
|
||||||
|
* and conditions specified herein does not imply that future
|
||||||
|
* versions will also be made available under the same terms and
|
||||||
|
* conditions.
|
||||||
|
*
|
||||||
|
* In any published work or commercial product which uses the SOFA
|
||||||
|
* software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
* appreciated.
|
||||||
|
*
|
||||||
|
* Correspondence concerning SOFA software should be addressed as
|
||||||
|
* follows:
|
||||||
|
*
|
||||||
|
* By email: sofa@ukho.gov.uk
|
||||||
|
* By post: IAU SOFA Center
|
||||||
|
* HM Nautical Almanac Office
|
||||||
|
* UK Hydrographic Office
|
||||||
|
* Admiralty Way, Taunton
|
||||||
|
* Somerset, TA1 2DN
|
||||||
|
* United Kingdom
|
||||||
|
*
|
||||||
|
*-----------------------------------------------------------------------
|
||||||
BIN
20200721/c/doc/copyr.pdf
Normal file
BIN
20200721/c/doc/copyr.pdf
Normal file
Binary file not shown.
215
20200721/c/doc/intro.lis
Normal file
215
20200721/c/doc/intro.lis
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
intro.lis 2018 December 7
|
||||||
|
|
||||||
|
|
||||||
|
-------------------------------
|
||||||
|
THE IAU-SOFA SOFTWARE LIBRARIES
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
SOFA stands for "Standards Of Fundamental Astronomy". The SOFA
|
||||||
|
software libraries are a collection of subprograms, in source-
|
||||||
|
code form, which implement official IAU algorithms for fundamental-
|
||||||
|
astronomy computations. The subprograms at present comprise 189
|
||||||
|
"astronomy" routines supported by 55 "vector/matrix" routines,
|
||||||
|
available in both Fortran77 and C implementations.
|
||||||
|
|
||||||
|
|
||||||
|
THE SOFA INITIATIVE
|
||||||
|
|
||||||
|
SOFA is an IAU Service which operates as a Standing Working Group under
|
||||||
|
Division A (Fundamental Astronomy).
|
||||||
|
|
||||||
|
The IAU set up the SOFA initiative at the 1994 General Assembly, to
|
||||||
|
promulgate an authoritative set of fundamental-astronomy constants and
|
||||||
|
algorithms. At the subsequent General Assembly, in 1997, the
|
||||||
|
appointment of a review board and the selection of a site for the SOFA
|
||||||
|
Center (the outlet for SOFA products) were announced.
|
||||||
|
|
||||||
|
The SOFA initiative was originally proposed by the IAU Working Group on
|
||||||
|
Astronomical Standards (WGAS), under the chairmanship of
|
||||||
|
Toshio Fukushima. The proposal was for "...new arrangements to
|
||||||
|
establish and maintain an accessible and authoritative set of constants,
|
||||||
|
algorithms and procedures that implement standard models used in
|
||||||
|
fundamental astronomy". The SOFA Software Libraries implement the
|
||||||
|
"algorithms" part of the SOFA initiative. They were developed under the
|
||||||
|
supervision of an international panel called the SOFA Board. The
|
||||||
|
current membership of this panel is listed in an appendix.
|
||||||
|
|
||||||
|
A feature of the original SOFA software proposals was that the products
|
||||||
|
would be self-contained and not depend on other software. This includes
|
||||||
|
basic documentation, which, like the present file, will mostly be plain
|
||||||
|
ASCII text. It should also be noted that there is no assumption that
|
||||||
|
the software will be used on a particular computer and Operating System.
|
||||||
|
Although OS-related facilities may be present (Unix make files for
|
||||||
|
instance, use by the SOFA Center of automatic code management systems,
|
||||||
|
HTML versions of some documentation), the routines themselves will be
|
||||||
|
visible as individual text files and will run on a variety of platforms.
|
||||||
|
|
||||||
|
|
||||||
|
ALGORITHMS
|
||||||
|
|
||||||
|
The SOFA Board's initial goal has been to create a set of callable
|
||||||
|
subprograms. Whether "subroutines" or "functions", they are all
|
||||||
|
referred to simply as "routines". They are designed for use by software
|
||||||
|
developers wishing to write complete applications; no runnable, free-
|
||||||
|
standing applications are included in SOFA's present plans.
|
||||||
|
|
||||||
|
The algorithms are drawn from a variety of sources. Because most of the
|
||||||
|
routines so far developed have either been standard "text-book"
|
||||||
|
operations or implement well-documented standard algorithms, it has not
|
||||||
|
been necessary to invite the whole community to submit algorithms,
|
||||||
|
though consultation with authorities has occurred where necessary. It
|
||||||
|
should also be noted that consistency with the conventions published by
|
||||||
|
the International Earth Rotation Service was a stipulation in the
|
||||||
|
original SOFA proposals, further constraining the software designs.
|
||||||
|
This state of affairs will continue to exist for some time, as there is
|
||||||
|
a large backlog of agreed extensions to work on. However, in the future
|
||||||
|
the Board may decide to call for proposals, and is in the meantime
|
||||||
|
willing to look into any suggestions that are received by the SOFA
|
||||||
|
Center.
|
||||||
|
|
||||||
|
|
||||||
|
SCOPE
|
||||||
|
|
||||||
|
The routines currently available are listed in the next two chapters of
|
||||||
|
this document.
|
||||||
|
|
||||||
|
The "astronomy" library comprises 189 routines (plus one obsolete
|
||||||
|
Fortran routine that now appears under a revised name). The areas
|
||||||
|
addressed include calendars, astrometry, time scales, Earth rotation,
|
||||||
|
ephemerides, precession-nutation, star catalog transformations,
|
||||||
|
gnomonic projection, horizon/equatorial transformations and
|
||||||
|
geodetic/geocentric transformations.
|
||||||
|
|
||||||
|
The "vector-matrix" library, comprising 55 routines, contains a
|
||||||
|
collection of simple tools for manipulating the vectors, matrices and
|
||||||
|
angles used by the astronomy routines.
|
||||||
|
|
||||||
|
There is no explicit commitment by SOFA to support historical models,
|
||||||
|
though as time goes on a legacy of superseded models will naturally
|
||||||
|
accumulate. There is, for example, no support of pre-1976 precession
|
||||||
|
models, though these capabilities could be added were there significant
|
||||||
|
demand.
|
||||||
|
|
||||||
|
Though the SOFA software libraries are rather limited in scope, and are
|
||||||
|
likely to remain so for a considerable time, they do offer distinct
|
||||||
|
advantages to prospective users. In particular, the routines are:
|
||||||
|
|
||||||
|
* authoritative: they are IAU-backed and have been constructed with
|
||||||
|
great care;
|
||||||
|
|
||||||
|
* practical: they are straightforward to use in spite of being
|
||||||
|
precise and rigorous (to some stated degree);
|
||||||
|
|
||||||
|
* accessible and supported: they are downloadable from an easy-to-
|
||||||
|
find place, they are in an integrated and consistent form, they
|
||||||
|
come with adequate internal documentation, and help for users is
|
||||||
|
available.
|
||||||
|
|
||||||
|
|
||||||
|
VERSIONS
|
||||||
|
|
||||||
|
Once it has been published, an issue is never revised or updated, and
|
||||||
|
remains accessible indefinitely. Subsequent issues may, however,
|
||||||
|
include corrected versions under the original routine name and
|
||||||
|
filenames. However, where a different model is introduced, it will have
|
||||||
|
a different name.
|
||||||
|
|
||||||
|
The issues will be referred to by the date when they were announced.
|
||||||
|
The frequency of re-issue will be decided by the Board, taking into
|
||||||
|
account the importance of the changes and the impact on the user
|
||||||
|
community.
|
||||||
|
|
||||||
|
|
||||||
|
DOCUMENTATION
|
||||||
|
|
||||||
|
At present there is little free-standing documentation about individual
|
||||||
|
routines. However, each routine has preamble comments which specify in
|
||||||
|
detail what the routine does and how it is used.
|
||||||
|
|
||||||
|
The files sofa_pn_f.pdf and sofa_pn_c.pdf (for Fortran and C users
|
||||||
|
respectively) describe the SOFA tools for precession-nutation
|
||||||
|
and other aspects of Earth attitude, and include example code and,
|
||||||
|
in an appendix, diagrams showing the interrelationships between the
|
||||||
|
routines supporting the latest (IAU 2006/2000A) models. Two other pairs
|
||||||
|
of documents introduce time scale transformations (sofa_ts_f.pdf and
|
||||||
|
sofa_ts_c.pdf ) and astrometric transformations (sofa_ast_f.pdf and
|
||||||
|
sofa_ast_c.pdf).
|
||||||
|
|
||||||
|
|
||||||
|
PROGRAMMING LANGUAGES AND STANDARDS
|
||||||
|
|
||||||
|
The SOFA routines are available in two programming languages at present:
|
||||||
|
Fortran77 and ANSI C. Related software in other languages is under
|
||||||
|
consideration.
|
||||||
|
|
||||||
|
The Fortran code conforms to ANSI X3.9-1978 in all but two minor
|
||||||
|
respects: each has an IMPLICIT NONE declaration, and its name has a
|
||||||
|
prefix of "iau_" and may be longer than 6 characters. A global edit to
|
||||||
|
erase both of these will produce ANSI-compliant code with no change in
|
||||||
|
its function.
|
||||||
|
|
||||||
|
Coding style, and restrictions on the range of language features, have
|
||||||
|
been much debated by the Board, and the results comply with the majority
|
||||||
|
view. There is (at present) no document that defines the standards, but
|
||||||
|
the code itself offers a wide range of examples of what is acceptable.
|
||||||
|
|
||||||
|
The Fortran routines contain explicit numerical constants (the INCLUDE
|
||||||
|
statement is not part of ANSI Fortran77). These are drawn from the
|
||||||
|
file consts.lis, which is listed in an appendix. Constants for the
|
||||||
|
SOFA/C functions are defined in a header file sofam.h.
|
||||||
|
|
||||||
|
The naming convention is such that a SOFA routine referred to
|
||||||
|
generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
|
||||||
|
C function iauExampl. The calls for the two versions are very similar,
|
||||||
|
with the same arguments in the same order. In a few cases, the C
|
||||||
|
equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
|
||||||
|
than an argument.
|
||||||
|
|
||||||
|
Each language version includes a "testbed" main-program that can be used
|
||||||
|
to verify that the SOFA routines have been correctly compiled on the end
|
||||||
|
user's system. The Fortran and C versions are called t_sofa_f.for and
|
||||||
|
t_sofa_c.c respectively. The testbeds execute every SOFA routine and
|
||||||
|
check that the results are within expected accuracy margins. It is not
|
||||||
|
possible to guarantee that all platforms will meet the rather stringent
|
||||||
|
criteria that have been used, and an occasional warning message may be
|
||||||
|
encountered on some systems.
|
||||||
|
|
||||||
|
|
||||||
|
COPYRIGHT ISSUES
|
||||||
|
|
||||||
|
Copyright for all of the SOFA software and documentation is owned by the
|
||||||
|
IAU SOFA Board. The Software is made available free of charge for all
|
||||||
|
classes of user, including commercial. However, there are strict rules
|
||||||
|
designed to avoid unauthorized variants coming into circulation. It is
|
||||||
|
permissible to distribute derived works and other modifications, but
|
||||||
|
they must be clearly marked to avoid confusion with the SOFA originals.
|
||||||
|
|
||||||
|
Further details are included in the block of comments which concludes
|
||||||
|
every routine. The text is also set out in an appendix to the present
|
||||||
|
document.
|
||||||
|
|
||||||
|
|
||||||
|
ACCURACY
|
||||||
|
|
||||||
|
The SOFA policy is to organize the calculations so that the machine
|
||||||
|
accuracy is fully exploited. The gap between the precision of the
|
||||||
|
underlying model or theory and the computational resolution has to be
|
||||||
|
kept as large as possible, hopefully leaving several orders of
|
||||||
|
magnitude of headroom.
|
||||||
|
|
||||||
|
The SOFA routines in some cases involve design compromises between rigor
|
||||||
|
and ease of use (and also speed, though nowadays this is seldom a major
|
||||||
|
concern).
|
||||||
|
|
||||||
|
|
||||||
|
ACKNOWLEDGEMENTS
|
||||||
|
|
||||||
|
The Board is indebted to a number of contributors, who are acknowledged
|
||||||
|
in the preamble comments of the routines concerned.
|
||||||
|
|
||||||
|
The Board's effort is provided by the members' individual institutes.
|
||||||
|
|
||||||
|
Resources for operating the SOFA Center are provided by Her Majesty's
|
||||||
|
Nautical Almanac Office, operated by the United Kingdom Hydrographic
|
||||||
|
Office.
|
||||||
BIN
20200721/c/doc/intro.pdf
Normal file
BIN
20200721/c/doc/intro.pdf
Normal file
Binary file not shown.
18903
20200721/c/doc/manual.lis
Normal file
18903
20200721/c/doc/manual.lis
Normal file
File diff suppressed because it is too large
Load Diff
BIN
20200721/c/doc/manual.pdf
Normal file
BIN
20200721/c/doc/manual.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_ast_c.pdf
Normal file
BIN
20200721/c/doc/sofa_ast_c.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_ast_summary.pdf
Normal file
BIN
20200721/c/doc/sofa_ast_summary.pdf
Normal file
Binary file not shown.
751
20200721/c/doc/sofa_lib.lis
Normal file
751
20200721/c/doc/sofa_lib.lis
Normal file
@@ -0,0 +1,751 @@
|
|||||||
|
sofa_lib.lis 2018 December 7
|
||||||
|
|
||||||
|
----------------------
|
||||||
|
SOFA Astronomy Library
|
||||||
|
----------------------
|
||||||
|
|
||||||
|
|
||||||
|
PREFACE
|
||||||
|
|
||||||
|
The routines described here comprise the SOFA astronomy library. Their
|
||||||
|
general appearance and coding style conforms to conventions agreed by
|
||||||
|
the SOFA Board, and their functions, names and algorithms have been
|
||||||
|
ratified by the Board. Procedures for soliciting and agreeing additions
|
||||||
|
to the library are still evolving.
|
||||||
|
|
||||||
|
|
||||||
|
PROGRAMMING LANGUAGES
|
||||||
|
|
||||||
|
The SOFA routines are available in two programming languages at present:
|
||||||
|
Fortran 77 and ANSI C.
|
||||||
|
|
||||||
|
Except for a single obsolete Fortran routine, which has no C equivalent,
|
||||||
|
there is a one-to-one relationship between the two language versions.
|
||||||
|
The naming convention is such that a SOFA routine referred to
|
||||||
|
generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
|
||||||
|
C function iauExampl. The calls for the two versions are very similar,
|
||||||
|
with the same arguments in the same order. In a few cases, the C
|
||||||
|
equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
|
||||||
|
than an argument.
|
||||||
|
|
||||||
|
|
||||||
|
GENERAL PRINCIPLES
|
||||||
|
|
||||||
|
The principal function of the SOFA Astronomy Library is to provide
|
||||||
|
definitive algorithms. A secondary function is to provide software
|
||||||
|
suitable for convenient direct use by writers of astronomical
|
||||||
|
applications.
|
||||||
|
|
||||||
|
The astronomy routines call on the SOFA vector/matrix library routines,
|
||||||
|
which are separately listed.
|
||||||
|
|
||||||
|
The routines are designed to exploit the full floating-point accuracy
|
||||||
|
of the machines on which they run, and not to rely on compiler
|
||||||
|
optimizations. Within these constraints, the intention is that the code
|
||||||
|
corresponds to the published formulation (if any).
|
||||||
|
|
||||||
|
Dates are always Julian Dates (except in calendar conversion routines)
|
||||||
|
and are expressed as two double precision numbers which sum to the
|
||||||
|
required value.
|
||||||
|
|
||||||
|
A distinction is made between routines that implement IAU-approved
|
||||||
|
models and those that use those models to create other results. The
|
||||||
|
former are referred to as "canonical models" in the preamble comments;
|
||||||
|
the latter are described as "support routines".
|
||||||
|
|
||||||
|
Using the library requires knowledge of positional astronomy and
|
||||||
|
time-scales. These topics are covered in "Explanatory Supplement to the
|
||||||
|
Astronomical Almanac", 3rd Edition, Sean E. Urban &
|
||||||
|
P. Kenneth Seidelmann (eds.), University Science Books, 2013. Recent
|
||||||
|
developments are documented in the scientific journals, and references
|
||||||
|
to the relevant papers are given in the SOFA code as required. The IERS
|
||||||
|
Conventions are also an essential reference. The routines concerned
|
||||||
|
with Earth attitude (precession-nutation etc.) are described in the SOFA
|
||||||
|
document sofa_pn.pdf. Those concerned with transformations between
|
||||||
|
different time scales are described in sofa_ts_f.pdf (Fortran) and
|
||||||
|
sofa_ts_c.pdf (C). Those concerned with astrometric transformations
|
||||||
|
are described in sofa_ast_f.pdf (Fortran) and sofa_ast_c (C).
|
||||||
|
|
||||||
|
|
||||||
|
ROUTINES
|
||||||
|
|
||||||
|
Calendars
|
||||||
|
|
||||||
|
CAL2JD Gregorian calendar to Julian Day number
|
||||||
|
EPB Julian Date to Besselian Epoch
|
||||||
|
EPB2JD Besselian Epoch to Julian Date
|
||||||
|
EPJ Julian Date to Julian Epoch
|
||||||
|
EPJ2JD Julian Epoch to Julian Date
|
||||||
|
JD2CAL Julian Date to Gregorian year, month, day, fraction
|
||||||
|
JDCALF Julian Date to Gregorian date for formatted output
|
||||||
|
|
||||||
|
Astrometry
|
||||||
|
|
||||||
|
AB apply stellar aberration
|
||||||
|
APCG prepare for ICRS <-> GCRS, geocentric, special
|
||||||
|
APCG13 prepare for ICRS <-> GCRS, geocentric
|
||||||
|
APCI prepare for ICRS <-> CIRS, terrestrial, special
|
||||||
|
APCI13 prepare for ICRS <-> CIRS, terrestrial
|
||||||
|
APCO prepare for ICRS <-> observed, terrestrial, special
|
||||||
|
APCO13 prepare for ICRS <-> observed, terrestrial
|
||||||
|
APCS prepare for ICRS <-> CIRS, space, special
|
||||||
|
APCS13 prepare for ICRS <-> CIRS, space
|
||||||
|
APER insert ERA into context
|
||||||
|
APER13 update context for Earth rotation
|
||||||
|
APIO prepare for CIRS <-> observed, terrestrial, special
|
||||||
|
APIO13 prepare for CIRS <-> observed, terrestrial
|
||||||
|
ATCI13 catalog -> CIRS
|
||||||
|
ATCIQ quick ICRS -> CIRS
|
||||||
|
ATCIQN quick ICRS -> CIRS, multiple deflections
|
||||||
|
ATCIQZ quick astrometric ICRS -> CIRS
|
||||||
|
ATCO13 ICRS -> observed
|
||||||
|
ATIC13 CIRS -> ICRS
|
||||||
|
ATICQ quick CIRS -> ICRS
|
||||||
|
ATCIQN quick CIRS -> ICRS, multiple deflections
|
||||||
|
ATIO13 CIRS -> observed
|
||||||
|
ATIOQ quick CIRS -> observed
|
||||||
|
ATOC13 observed -> astrometric ICRS
|
||||||
|
ATOI13 observed -> CIRS
|
||||||
|
ATOIQ quick observed -> CIRS
|
||||||
|
LD light deflection by a single solar-system body
|
||||||
|
LDN light deflection by multiple solar-system bodies
|
||||||
|
LDSUN light deflection by the Sun
|
||||||
|
PMPX apply proper motion and parallax
|
||||||
|
PMSAFE apply proper motion, with zero-parallax precautions
|
||||||
|
PVTOB observatory position and velocity
|
||||||
|
PVSTAR space motion pv-vector to star catalog data
|
||||||
|
REFCO refraction constants
|
||||||
|
STARPM apply proper motion
|
||||||
|
STARPV star catalog data to space motion pv-vector
|
||||||
|
|
||||||
|
Time scales
|
||||||
|
|
||||||
|
D2DTF format 2-part JD for output
|
||||||
|
DAT Delta(AT) (=TAI-UTC) for a given UTC date
|
||||||
|
DTDB TDB-TT
|
||||||
|
DTF2D encode time and date fields into 2-part JD
|
||||||
|
TAITT TAI to TT
|
||||||
|
TAIUT1 TAI to UT1
|
||||||
|
TAIUTC TAI to UTC
|
||||||
|
TCBTDB TCB to TDB
|
||||||
|
TCGTT TCG to TT
|
||||||
|
TDBTCB TDB to TCB
|
||||||
|
TDBTT TDB to TT
|
||||||
|
TTTAI TT to TAI
|
||||||
|
TTTCG TT to TCG
|
||||||
|
TTTDB TT to TDB
|
||||||
|
TTUT1 TT to UT1
|
||||||
|
UT1TAI UT1 to TAI
|
||||||
|
UT1TT UT1 to TT
|
||||||
|
UT1UTC UT1 to UTC
|
||||||
|
UTCTAI UTC to TAI
|
||||||
|
UTCUT1 UTC to UT1
|
||||||
|
|
||||||
|
Earth rotation angle and sidereal time
|
||||||
|
|
||||||
|
EE00 equation of the equinoxes, IAU 2000
|
||||||
|
EE00A equation of the equinoxes, IAU 2000A
|
||||||
|
EE00B equation of the equinoxes, IAU 2000B
|
||||||
|
EE06A equation of the equinoxes, IAU 2006/2000A
|
||||||
|
EECT00 equation of the equinoxes complementary terms, IAU 2000
|
||||||
|
EQEQ94 equation of the equinoxes, IAU 1994
|
||||||
|
ERA00 Earth rotation angle, IAU 2000
|
||||||
|
GMST00 Greenwich mean sidereal time, IAU 2000
|
||||||
|
GMST06 Greenwich mean sidereal time, IAU 2006
|
||||||
|
GMST82 Greenwich mean sidereal time, IAU 1982
|
||||||
|
GST00A Greenwich apparent sidereal time, IAU 2000A
|
||||||
|
GST00B Greenwich apparent sidereal time, IAU 2000B
|
||||||
|
GST06 Greenwich apparent ST, IAU 2006, given NPB matrix
|
||||||
|
GST06A Greenwich apparent sidereal time, IAU 2006/2000A
|
||||||
|
GST94 Greenwich apparent sidereal time, IAU 1994
|
||||||
|
|
||||||
|
Ephemerides (limited precision)
|
||||||
|
|
||||||
|
EPV00 Earth position and velocity
|
||||||
|
PLAN94 major-planet position and velocity
|
||||||
|
|
||||||
|
Precession, nutation, polar motion
|
||||||
|
|
||||||
|
BI00 frame bias components, IAU 2000
|
||||||
|
BP00 frame bias and precession matrices, IAU 2000
|
||||||
|
BP06 frame bias and precession matrices, IAU 2006
|
||||||
|
BPN2XY extract CIP X,Y coordinates from NPB matrix
|
||||||
|
C2I00A celestial-to-intermediate matrix, IAU 2000A
|
||||||
|
C2I00B celestial-to-intermediate matrix, IAU 2000B
|
||||||
|
C2I06A celestial-to-intermediate matrix, IAU 2006/2000A
|
||||||
|
C2IBPN celestial-to-intermediate matrix, given NPB matrix, IAU 2000
|
||||||
|
C2IXY celestial-to-intermediate matrix, given X,Y, IAU 2000
|
||||||
|
C2IXYS celestial-to-intermediate matrix, given X,Y and s
|
||||||
|
C2T00A celestial-to-terrestrial matrix, IAU 2000A
|
||||||
|
C2T00B celestial-to-terrestrial matrix, IAU 2000B
|
||||||
|
C2T06A celestial-to-terrestrial matrix, IAU 2006/2000A
|
||||||
|
C2TCIO form CIO-based celestial-to-terrestrial matrix
|
||||||
|
C2TEQX form equinox-based celestial-to-terrestrial matrix
|
||||||
|
C2TPE celestial-to-terrestrial matrix given nutation, IAU 2000
|
||||||
|
C2TXY celestial-to-terrestrial matrix given CIP, IAU 2000
|
||||||
|
EO06A equation of the origins, IAU 2006/2000A
|
||||||
|
EORS equation of the origins, given NPB matrix and s
|
||||||
|
FW2M Fukushima-Williams angles to r-matrix
|
||||||
|
FW2XY Fukushima-Williams angles to X,Y
|
||||||
|
LTP long-term precession matrix
|
||||||
|
LTPB long-term precession matrix, including ICRS frame bias
|
||||||
|
LTPECL long-term precession of the ecliptic
|
||||||
|
LTPEQU long-term precession of the equator
|
||||||
|
NUM00A nutation matrix, IAU 2000A
|
||||||
|
NUM00B nutation matrix, IAU 2000B
|
||||||
|
NUM06A nutation matrix, IAU 2006/2000A
|
||||||
|
NUMAT form nutation matrix
|
||||||
|
NUT00A nutation, IAU 2000A
|
||||||
|
NUT00B nutation, IAU 2000B
|
||||||
|
NUT06A nutation, IAU 2006/2000A
|
||||||
|
NUT80 nutation, IAU 1980
|
||||||
|
NUTM80 nutation matrix, IAU 1980
|
||||||
|
OBL06 mean obliquity, IAU 2006
|
||||||
|
OBL80 mean obliquity, IAU 1980
|
||||||
|
PB06 zeta,z,theta precession angles, IAU 2006, including bias
|
||||||
|
PFW06 bias-precession Fukushima-Williams angles, IAU 2006
|
||||||
|
PMAT00 precession matrix (including frame bias), IAU 2000
|
||||||
|
PMAT06 PB matrix, IAU 2006
|
||||||
|
PMAT76 precession matrix, IAU 1976
|
||||||
|
PN00 bias/precession/nutation results, IAU 2000
|
||||||
|
PN00A bias/precession/nutation, IAU 2000A
|
||||||
|
PN00B bias/precession/nutation, IAU 2000B
|
||||||
|
PN06 bias/precession/nutation results, IAU 2006
|
||||||
|
PN06A bias/precession/nutation results, IAU 2006/2000A
|
||||||
|
PNM00A classical NPB matrix, IAU 2000A
|
||||||
|
PNM00B classical NPB matrix, IAU 2000B
|
||||||
|
PNM06A classical NPB matrix, IAU 2006/2000A
|
||||||
|
PNM80 precession/nutation matrix, IAU 1976/1980
|
||||||
|
P06E precession angles, IAU 2006, equinox based
|
||||||
|
POM00 polar motion matrix
|
||||||
|
PR00 IAU 2000 precession adjustments
|
||||||
|
PREC76 accumulated precession angles, IAU 1976
|
||||||
|
S00 the CIO locator s, given X,Y, IAU 2000A
|
||||||
|
S00A the CIO locator s, IAU 2000A
|
||||||
|
S00B the CIO locator s, IAU 2000B
|
||||||
|
S06 the CIO locator s, given X,Y, IAU 2006
|
||||||
|
S06A the CIO locator s, IAU 2006/2000A
|
||||||
|
SP00 the TIO locator s', IERS 2003
|
||||||
|
XY06 CIP, IAU 2006/2000A, from series
|
||||||
|
XYS00A CIP and s, IAU 2000A
|
||||||
|
XYS00B CIP and s, IAU 2000B
|
||||||
|
XYS06A CIP and s, IAU 2006/2000A
|
||||||
|
|
||||||
|
Fundamental arguments for nutation etc.
|
||||||
|
|
||||||
|
FAD03 mean elongation of the Moon from the Sun
|
||||||
|
FAE03 mean longitude of Earth
|
||||||
|
FAF03 mean argument of the latitude of the Moon
|
||||||
|
FAJU03 mean longitude of Jupiter
|
||||||
|
FAL03 mean anomaly of the Moon
|
||||||
|
FALP03 mean anomaly of the Sun
|
||||||
|
FAMA03 mean longitude of Mars
|
||||||
|
FAME03 mean longitude of Mercury
|
||||||
|
FANE03 mean longitude of Neptune
|
||||||
|
FAOM03 mean longitude of the Moon's ascending node
|
||||||
|
FAPA03 general accumulated precession in longitude
|
||||||
|
FASA03 mean longitude of Saturn
|
||||||
|
FAUR03 mean longitude of Uranus
|
||||||
|
FAVE03 mean longitude of Venus
|
||||||
|
|
||||||
|
Star catalog conversions
|
||||||
|
|
||||||
|
FK52H transform FK5 star data into the Hipparcos system
|
||||||
|
FK5HIP FK5 to Hipparcos rotation and spin
|
||||||
|
FK5HZ FK5 to Hipparcos assuming zero Hipparcos proper motion
|
||||||
|
H2FK5 transform Hipparcos star data into the FK5 system
|
||||||
|
HFK5Z Hipparcos to FK5 assuming zero Hipparcos proper motion
|
||||||
|
FK425 transform FK4 star data into FK5
|
||||||
|
FK45Z FK4 to FK5 assuming zero FK5 proper motion
|
||||||
|
FK524 transform FK5 star data into FK4
|
||||||
|
FK54Z FK5 to FK4 assuming zero FK5 proper motion
|
||||||
|
|
||||||
|
Ecliptic coordinates
|
||||||
|
|
||||||
|
ECEQ06 ecliptic to ICRS, IAU 2006
|
||||||
|
ECM06 rotation matrix, ICRS to ecliptic, IAU 2006
|
||||||
|
EQEC06 ICRS to ecliptic, IAU 2006
|
||||||
|
LTECEQ ecliptic to ICRS, long term
|
||||||
|
LTECM rotation matrix, ICRS to ecliptic, long-term
|
||||||
|
LTEQEC ICRS to ecliptic, long term
|
||||||
|
|
||||||
|
Galactic coordinates
|
||||||
|
|
||||||
|
G2ICRS transform IAU 1958 galactic coordinates to ICRS
|
||||||
|
ICRS2G transform ICRS coordinates to IAU 1958 Galactic
|
||||||
|
|
||||||
|
Geodetic/geocentric
|
||||||
|
|
||||||
|
EFORM a,f for a nominated Earth reference ellipsoid
|
||||||
|
GC2GD geocentric to geodetic for a nominated ellipsoid
|
||||||
|
GC2GDE geocentric to geodetic given ellipsoid a,f
|
||||||
|
GD2GC geodetic to geocentric for a nominated ellipsoid
|
||||||
|
GD2GCE geodetic to geocentric given ellipsoid a,f
|
||||||
|
|
||||||
|
Gnomonic projection
|
||||||
|
|
||||||
|
TPORS solve for tangent point, spherical
|
||||||
|
TPORV solve for tangent point, vector
|
||||||
|
TPSTS deproject tangent plane to celestial, spherical
|
||||||
|
TPSTV deproject tangent plane to celestial, vector
|
||||||
|
TPXES project celestial to tangent plane, spherical
|
||||||
|
TPXEV project celestial to tangent plane, vector
|
||||||
|
|
||||||
|
Horizon/equatorial
|
||||||
|
|
||||||
|
AE2HD (azimuth, altitude) to (hour angle, declination)
|
||||||
|
HD2AE (hour angle, declination) to (azimuth, altitude)
|
||||||
|
HD2PA parallactic angle
|
||||||
|
|
||||||
|
Obsolete
|
||||||
|
|
||||||
|
C2TCEO former name of C2TCIO
|
||||||
|
|
||||||
|
|
||||||
|
CALLS: FORTRAN VERSION
|
||||||
|
|
||||||
|
CALL iau_AB ( PNAT, V, S, BM1, PPR )
|
||||||
|
CALL iau_AE2HD ( AZ, EL, PHI, HA, DEC )
|
||||||
|
CALL iau_APCG ( DATE1, DATE2, EB, EH, ASTROM )
|
||||||
|
CALL iau_APCG13 ( DATE1, DATE2, ASTROM )
|
||||||
|
CALL iau_APCI ( DATE1, DATE2, EB, EH, X, Y, S, ASTROM )
|
||||||
|
CALL iau_APCI13 ( DATE1, DATE2, ASTROM, EO )
|
||||||
|
CALL iau_APCO ( DATE1, DATE2, EB, EH, X, Y, S,
|
||||||
|
: THETA, ELONG, PHI, HM, XP, YP, SP,
|
||||||
|
: REFA, REFB, ASTROM )
|
||||||
|
CALL iau_APCO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP,
|
||||||
|
: PHPA, TC, RH, WL, ASTROM, EO, J )
|
||||||
|
CALL iau_APCS ( DATE1, DATE2, PV, EB, EH, ASTROM )
|
||||||
|
CALL iau_APCS13 ( DATE1, DATE2, PV, ASTROM )
|
||||||
|
CALL iau_APER ( THETA, ASTROM )
|
||||||
|
CALL iau_APER13 ( UT11, UT12, ASTROM )
|
||||||
|
CALL iau_APIO ( SP, THETA, ELONG, PHI, HM, XP, YP,
|
||||||
|
: REFA, REFB, ASTROM )
|
||||||
|
CALL iau_APIO13 ( UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP,
|
||||||
|
: PHPA, TC, RH, WL, ASTROM, J )
|
||||||
|
CALL iau_ATCI13 ( RC, DC, PR, PD, PX, RV, DATE1, DATE2, RI, DI, EO )
|
||||||
|
CALL iau_ATCIQ ( RC, DC, PR, PD, PX, RV, ASTROM, RI, DI )
|
||||||
|
CALL iau_ATCIQN ( RC, DC, PR, PD, PX, RV, ASTROM, N, B, RI, DI )
|
||||||
|
CALL iau_ATCIQZ ( RC, DC, ASTROM, RI, DI )
|
||||||
|
CALL iau_ATCO13 ( RC, DC, PR, PD, PX, RV, UTC1, UTC2, DUT1, ELONG,
|
||||||
|
: PHI, HM, XP, YP, PHPA, TC, RH, WL,
|
||||||
|
: AOB, ZOB, HOB, DOB, ROB, EO, J )
|
||||||
|
CALL iau_ATIC13 ( RI, DI, DATE1, DATE2, RC, DC, EO )
|
||||||
|
CALL iau_ATICQ ( RI, DI, ASTROM, RC, DC )
|
||||||
|
CALL iau_ATCIQN ( RI, DI, ASTROM, N, B, RC, DC )
|
||||||
|
CALL iau_ATIO13 ( RI, DI, UTC1, UTC2, DUT1, ELONG, PHI, HM, XP, YP,
|
||||||
|
PHPA, TC, RH, WL, AOB, ZOB, HOB, DOB, ROB, J )
|
||||||
|
CALL iau_ATIOQ ( RI, DI, ASTROM, AOB, ZOB, HOB, DOB, ROB )
|
||||||
|
CALL iau_ATOC13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1,
|
||||||
|
: ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL,
|
||||||
|
: RC, DC, J )
|
||||||
|
CALL iau_ATOI13 ( TYPE, OB1, OB2, UTC1, UTC2, DUT1,
|
||||||
|
: ELONG, PHI, HM, XP, YP, PHPA, TC, RH, WL,
|
||||||
|
: RI, DI, J )
|
||||||
|
CALL iau_ATOIQ ( TYPE, OB1, OB2, ASTROM, RI, DI )
|
||||||
|
CALL iau_BI00 ( DPSIBI, DEPSBI, DRA )
|
||||||
|
CALL iau_BP00 ( DATE1, DATE2, RB, RP, RBP )
|
||||||
|
CALL iau_BP06 ( DATE1, DATE2, RB, RP, RBP )
|
||||||
|
CALL iau_BPN2XY ( RBPN, X, Y )
|
||||||
|
CALL iau_C2I00A ( DATE1, DATE2, RC2I )
|
||||||
|
CALL iau_C2I00B ( DATE1, DATE2, RC2I )
|
||||||
|
CALL iau_C2I06A ( DATE1, DATE2, RC2I )
|
||||||
|
CALL iau_C2IBPN ( DATE1, DATE2, RBPN, RC2I )
|
||||||
|
CALL iau_C2IXY ( DATE1, DATE2, X, Y, RC2I )
|
||||||
|
CALL iau_C2IXYS ( X, Y, S, RC2I )
|
||||||
|
CALL iau_C2T00A ( TTA, TTB, UTA, UTB, XP, YP, RC2T )
|
||||||
|
CALL iau_C2T00B ( TTA, TTB, UTA, UTB, XP, YP, RC2T )
|
||||||
|
CALL iau_C2T06A ( TTA, TTB, UTA, UTB, XP, YP, RC2T )
|
||||||
|
CALL iau_C2TCEO ( RC2I, ERA, RPOM, RC2T )
|
||||||
|
CALL iau_C2TCIO ( RC2I, ERA, RPOM, RC2T )
|
||||||
|
CALL iau_C2TEQX ( RBPN, GST, RPOM, RC2T )
|
||||||
|
CALL iau_C2TPE ( TTA, TTB, UTA, UTB, DPSI, DEPS, XP, YP, RC2T )
|
||||||
|
CALL iau_C2TXY ( TTA, TTB, UTA, UTB, X, Y, XP, YP, RC2T )
|
||||||
|
CALL iau_CAL2JD ( IY, IM, ID, DJM0, DJM, J )
|
||||||
|
CALL iau_D2DTF ( SCALE, NDP, D1, D2, IY, IM, ID, IHMSF, J )
|
||||||
|
CALL iau_DAT ( IY, IM, ID, FD, DELTAT, J )
|
||||||
|
D = iau_DTDB ( DATE1, DATE2, UT, ELONG, U, V )
|
||||||
|
CALL iau_DTF2D ( SCALE, IY, IM, ID, IHR, IMN, SEC, D1, D2, J )
|
||||||
|
CALL iau_ECEQ06 ( DATE1, DATE2, DL, DB, DR, DD )
|
||||||
|
CALL iau_ECM06 ( DATE1, DATE2, RM );
|
||||||
|
D = iau_EE00 ( DATE1, DATE2, EPSA, DPSI )
|
||||||
|
D = iau_EE00A ( DATE1, DATE2 )
|
||||||
|
D = iau_EE00B ( DATE1, DATE2 )
|
||||||
|
D = iau_EE06A ( DATE1, DATE2 )
|
||||||
|
D = iau_EECT00 ( DATE1, DATE2 )
|
||||||
|
CALL iau_EFORM ( N, A, F, J )
|
||||||
|
D = iau_EO06A ( DATE1, DATE2 )
|
||||||
|
D = iau_EORS ( RNPB, S )
|
||||||
|
D = iau_EPB ( DJ1, DJ2 )
|
||||||
|
CALL iau_EPB2JD ( EPB, DJM0, DJM )
|
||||||
|
D = iau_EPJ ( DJ1, DJ2 )
|
||||||
|
CALL iau_EPJ2JD ( EPJ, DJM0, DJM )
|
||||||
|
CALL iau_EPV00 ( DJ1, DJ2, PVH, PVB, J )
|
||||||
|
CALL iau_EQEC06 ( DATE1, DATE2, DR, DD, DL, DB )
|
||||||
|
D = iau_EQEQ94 ( DATE1, DATE2 )
|
||||||
|
D = iau_ERA00 ( DJ1, DJ2 )
|
||||||
|
D = iau_FAD03 ( T )
|
||||||
|
D = iau_FAE03 ( T )
|
||||||
|
D = iau_FAF03 ( T )
|
||||||
|
D = iau_FAJU03 ( T )
|
||||||
|
D = iau_FAL03 ( T )
|
||||||
|
D = iau_FALP03 ( T )
|
||||||
|
D = iau_FAMA03 ( T )
|
||||||
|
D = iau_FAME03 ( T )
|
||||||
|
D = iau_FANE03 ( T )
|
||||||
|
D = iau_FAOM03 ( T )
|
||||||
|
D = iau_FAPA03 ( T )
|
||||||
|
D = iau_FASA03 ( T )
|
||||||
|
D = iau_FAUR03 ( T )
|
||||||
|
D = iau_FAVE03 ( T )
|
||||||
|
CALL iau_FK425 ( R1950, D1950, DR1950, DD1950, P1950, V1950,
|
||||||
|
: R2000, D2000, DR2000, DD2000, P2000, V2000 )
|
||||||
|
CALL iau_FK45Z ( R1950, D1950, BEPOCH, R2000, D2000 )
|
||||||
|
CALL iau_FK524 ( R2000, D2000, DR2000, DD2000, P2000, V2000,
|
||||||
|
: R1950, D1950, DR1950, DD1950, P1950, V1950 )
|
||||||
|
CALL iau_FK52H ( R5, D5, DR5, DD5, PX5, RV5,
|
||||||
|
: RH, DH, DRH, DDH, PXH, RVH )
|
||||||
|
CALL iau_FK54Z ( R2000, D2000, BEPOCH, R1950, D1950, DR1950, DD1950 )
|
||||||
|
CALL iau_FK5HIP ( R5H, S5H )
|
||||||
|
CALL iau_FK5HZ ( R5, D5, DATE1, DATE2, RH, DH )
|
||||||
|
CALL iau_FW2M ( GAMB, PHIB, PSI, EPS, R )
|
||||||
|
CALL iau_FW2XY ( GAMB, PHIB, PSI, EPS, X, Y )
|
||||||
|
CALL iau_G2ICRS ( DL, DB, DR, DD )
|
||||||
|
CALL iau_GC2GD ( N, XYZ, ELONG, PHI, HEIGHT, J )
|
||||||
|
CALL iau_GC2GDE ( A, F, XYZ, ELONG, PHI, HEIGHT, J )
|
||||||
|
CALL iau_GD2GC ( N, ELONG, PHI, HEIGHT, XYZ, J )
|
||||||
|
CALL iau_GD2GCE ( A, F, ELONG, PHI, HEIGHT, XYZ, J )
|
||||||
|
D = iau_GMST00 ( UTA, UTB, TTA, TTB )
|
||||||
|
D = iau_GMST06 ( UTA, UTB, TTA, TTB )
|
||||||
|
D = iau_GMST82 ( UTA, UTB )
|
||||||
|
D = iau_GST00A ( UTA, UTB, TTA, TTB )
|
||||||
|
D = iau_GST00B ( UTA, UTB )
|
||||||
|
D = iau_GST06 ( UTA, UTB, TTA, TTB, RNPB )
|
||||||
|
D = iau_GST06A ( UTA, UTB, TTA, TTB )
|
||||||
|
D = iau_GST94 ( UTA, UTB )
|
||||||
|
CALL iau_H2FK5 ( RH, DH, DRH, DDH, PXH, RVH,
|
||||||
|
: R5, D5, DR5, DD5, PX5, RV5 )
|
||||||
|
CALL iau_HD2AE ( HA, DEC, PHI, AZ, EL )
|
||||||
|
D = iau_HD2PA ( HA, DEC, PHI )
|
||||||
|
CALL iau_HFK5Z ( RH, DH, DATE1, DATE2, R5, D5, DR5, DD5 )
|
||||||
|
CALL iau_ICRS2G ( DR, DD, DL, DB )
|
||||||
|
CALL iau_JD2CAL ( DJ1, DJ2, IY, IM, ID, FD, J )
|
||||||
|
CALL iau_JDCALF ( NDP, DJ1, DJ2, IYMDF, J )
|
||||||
|
CALL iau_LD ( BM, P, Q, E, EM, DLIM, P1 )
|
||||||
|
CALL iau_LDN ( N, B, OB, SC, SN )
|
||||||
|
CALL iau_LDSUN ( P, E, EM, P1 )
|
||||||
|
CALL iau_LTECEQ ( EPJ, DL, DB, DR, DD )
|
||||||
|
CALL iau_LTECM ( EPJ, RM] )
|
||||||
|
CALL iau_LTEQEC ( EPJ, DR, DD, DL, DB )
|
||||||
|
CALL iau_LTP ( EPJ, RP )
|
||||||
|
CALL iau_LTPB ( EPJ, RPB )
|
||||||
|
CALL iau_LTPECL ( EPJ, VEC )
|
||||||
|
CALL iau_LTPEQU ( EPJ, VEQ )
|
||||||
|
CALL iau_NUM00A ( DATE1, DATE2, RMATN )
|
||||||
|
CALL iau_NUM00B ( DATE1, DATE2, RMATN )
|
||||||
|
CALL iau_NUM06A ( DATE1, DATE2, RMATN )
|
||||||
|
CALL iau_NUMAT ( EPSA, DPSI, DEPS, RMATN )
|
||||||
|
CALL iau_NUT00A ( DATE1, DATE2, DPSI, DEPS )
|
||||||
|
CALL iau_NUT00B ( DATE1, DATE2, DPSI, DEPS )
|
||||||
|
CALL iau_NUT06A ( DATE1, DATE2, DPSI, DEPS )
|
||||||
|
CALL iau_NUT80 ( DATE1, DATE2, DPSI, DEPS )
|
||||||
|
CALL iau_NUTM80 ( DATE1, DATE2, RMATN )
|
||||||
|
D = iau_OBL06 ( DATE1, DATE2 )
|
||||||
|
D = iau_OBL80 ( DATE1, DATE2 )
|
||||||
|
CALL iau_PB06 ( DATE1, DATE2, BZETA, BZ, BTHETA )
|
||||||
|
CALL iau_PFW06 ( DATE1, DATE2, GAMB, PHIB, PSIB, EPSA )
|
||||||
|
CALL iau_PLAN94 ( DATE1, DATE2, NP, PV, J )
|
||||||
|
CALL iau_PMAT00 ( DATE1, DATE2, RBP )
|
||||||
|
CALL iau_PMAT06 ( DATE1, DATE2, RBP )
|
||||||
|
CALL iau_PMAT76 ( DATE1, DATE2, RMATP )
|
||||||
|
CALL iau_PMPX ( RC, DC, PR, PD, PX, RV, PMT, POB, PCO )
|
||||||
|
CALL iau_PMSAFE ( RA1, DEC1, PMR1, PMD1, PX1, RV1,
|
||||||
|
: EP1A, EP1B, EP2A, EP2B,
|
||||||
|
: RA2, DEC2, PMR2, PMD2, PX2, RV2, J )
|
||||||
|
CALL iau_PN00 ( DATE1, DATE2, DPSI, DEPS,
|
||||||
|
: EPSA, RB, RP, RBP, RN, RBPN )
|
||||||
|
CALL iau_PN00A ( DATE1, DATE2,
|
||||||
|
: DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN )
|
||||||
|
CALL iau_PN00B ( DATE1, DATE2,
|
||||||
|
: DPSI, DEPS, EPSA, RB, RP, RBP, RN, RBPN )
|
||||||
|
CALL iau_PN06 ( DATE1, DATE2, DPSI, DEPS,
|
||||||
|
: EPSA, RB, RP, RBP, RN, RBPN )
|
||||||
|
CALL iau_PN06A ( DATE1, DATE2,
|
||||||
|
: DPSI, DEPS, RB, RP, RBP, RN, RBPN )
|
||||||
|
CALL iau_PNM00A ( DATE1, DATE2, RBPN )
|
||||||
|
CALL iau_PNM00B ( DATE1, DATE2, RBPN )
|
||||||
|
CALL iau_PNM06A ( DATE1, DATE2, RNPB )
|
||||||
|
CALL iau_PNM80 ( DATE1, DATE2, RMATPN )
|
||||||
|
CALL iau_P06E ( DATE1, DATE2,
|
||||||
|
: EPS0, PSIA, OMA, BPA, BQA, PIA, BPIA,
|
||||||
|
: EPSA, CHIA, ZA, ZETAA, THETAA, PA, GAM, PHI, PSI )
|
||||||
|
CALL iau_POM00 ( XP, YP, SP, RPOM )
|
||||||
|
CALL iau_PR00 ( DATE1, DATE2, DPSIPR, DEPSPR )
|
||||||
|
CALL iau_PREC76 ( DATE01, DATE02, DATE11, DATE12, ZETA, Z, THETA )
|
||||||
|
CALL iau_PVSTAR ( PV, RA, DEC, PMR, PMD, PX, RV, J )
|
||||||
|
CALL iau_PVTOB ( ELONG, PHI, HM, XP, YP, SP, THETA, PV )
|
||||||
|
CALL iau_REFCO ( PHPA, TC, RH, WL, REFA, REFB )
|
||||||
|
D = iau_S00 ( DATE1, DATE2, X, Y )
|
||||||
|
D = iau_S00A ( DATE1, DATE2 )
|
||||||
|
D = iau_S00B ( DATE1, DATE2 )
|
||||||
|
D = iau_S06 ( DATE1, DATE2, X, Y )
|
||||||
|
D = iau_S06A ( DATE1, DATE2 )
|
||||||
|
D = iau_SP00 ( DATE1, DATE2 )
|
||||||
|
CALL iau_STARPM ( RA1, DEC1, PMR1, PMD1, PX1, RV1,
|
||||||
|
: EP1A, EP1B, EP2A, EP2B,
|
||||||
|
: RA2, DEC2, PMR2, PMD2, PX2, RV2, J )
|
||||||
|
CALL iau_STARPV ( RA, DEC, PMR, PMD, PX, RV, PV, J )
|
||||||
|
CALL iau_TAITT ( TAI1, TAI2, TT1, TT2, J )
|
||||||
|
CALL iau_TAIUT1 ( TAI1, TAI2, DTA, UT11, UT12, J )
|
||||||
|
CALL iau_TAIUTC ( TAI1, TAI2, UTC1, UTC2, J )
|
||||||
|
CALL iau_TCBTDB ( TCB1, TCB2, TDB1, TDB2, J )
|
||||||
|
CALL iau_TCGTT ( TCG1, TCG2, TT1, TT2, J )
|
||||||
|
CALL iau_TDBTCB ( TDB1, TDB2, TCB1, TCB2, J )
|
||||||
|
CALL iau_TDBTT ( TDB1, TDB2, DTR, TT1, TT2, J )
|
||||||
|
CALL iau_TPORS ( XI, ETA, A, B, A01, B01, A02, B02, N )
|
||||||
|
CALL iau_TPORV ( XI, ETA, V, V01, V02, N )
|
||||||
|
CALL iau_TPSTS ( XI, ETA, A0, B0, A, B )
|
||||||
|
CALL iau_TPSTV ( XI, ETA, V0, V )
|
||||||
|
CALL iau_TPXES ( A, B, A0, B0, XI, ETA, J )
|
||||||
|
CALL iau_TPXEV ( V, V0, XI, ETA, J )
|
||||||
|
CALL iau_TTTAI ( TT1, TT2, TAI1, TAI2, J )
|
||||||
|
CALL iau_TTTCG ( TT1, TT2, TCG1, TCG2, J )
|
||||||
|
CALL iau_TTTDB ( TT1, TT2, DTR, TDB1, TDB2, J )
|
||||||
|
CALL iau_TTUT1 ( TT1, TT2, DT, UT11, UT12, J )
|
||||||
|
CALL iau_UT1TAI ( UT11, UT12, TAI1, TAI2, J )
|
||||||
|
CALL iau_UT1TT ( UT11, UT12, DT, TT1, TT2, J )
|
||||||
|
CALL iau_UT1UTC ( UT11, UT12, DUT, UTC1, UTC2, J )
|
||||||
|
CALL iau_UTCTAI ( UTC1, UTC2, DTA, TAI1, TAI2, J )
|
||||||
|
CALL iau_UTCUT1 ( UTC1, UTC2, DUT, UT11, UT12, J )
|
||||||
|
CALL iau_XY06 ( DATE1, DATE2, X, Y )
|
||||||
|
CALL iau_XYS00A ( DATE1, DATE2, X, Y, S )
|
||||||
|
CALL iau_XYS00B ( DATE1, DATE2, X, Y, S )
|
||||||
|
CALL iau_XYS06A ( DATE1, DATE2, X, Y, S )
|
||||||
|
|
||||||
|
|
||||||
|
CALLS: C VERSION
|
||||||
|
|
||||||
|
iauAb ( pnat, v, s, bm1, ppr );
|
||||||
|
iauAe2hd ( az, el, phi, &ha, &dec );
|
||||||
|
iauApcg ( date1, date2, eb, eh, &astrom );
|
||||||
|
iauApcg13 ( date1, date2, &astrom );
|
||||||
|
iauApci ( date1, date2, eb, eh, x, y, s, &astrom );
|
||||||
|
iauApci13 ( date1, date2, &astrom, &eo );
|
||||||
|
iauApco ( date1, date2, eb, eh, x, y, s,
|
||||||
|
theta, elong, phi, hm, xp, yp, sp,
|
||||||
|
refa, refb, &astrom );
|
||||||
|
i = iauApco13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, &astrom, &eo );
|
||||||
|
iauApcs ( date1, date2, pv, eb, eh, &astrom );
|
||||||
|
iauApcs13 ( date1, date2, pv, &astrom );
|
||||||
|
iauAper ( theta, &astrom );
|
||||||
|
iauAper13 ( ut11, ut12, &astrom );
|
||||||
|
iauApio ( sp, theta, elong, phi, hm, xp, yp, refa, refb,
|
||||||
|
&astrom );
|
||||||
|
i = iauApio13 ( utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, &astrom );
|
||||||
|
iauAtci13 ( rc, dc, pr, pd, px, rv, date1, date2,
|
||||||
|
&ri, &di, &eo );
|
||||||
|
iauAtciq ( rc, dc, pr, pd, px, rv, &astrom, &ri, &di );
|
||||||
|
iauAtciqn ( rc, dc, pr, pd, px, rv, astrom, n, b, &ri, &di );
|
||||||
|
iauAtciqz ( rc, dc, &astrom, &ri, &di );
|
||||||
|
i = iauAtco13 ( rc, dc, pr, pd, px, rv, utc1, utc2, dut1,
|
||||||
|
elong phi, hm, xp, yp, phpa, tc, rh, wl,
|
||||||
|
aob, zob, hob, dob, rob, eo );
|
||||||
|
iauAtic13 ( ri, di, date1, date2, &rc, &dc, &eo );
|
||||||
|
iauAticq ( ri, di, &astrom, &rc, &dc );
|
||||||
|
iauAtciqn ( ri, di, astrom, n, b, &rc, &dc );
|
||||||
|
i = iauAtio13 ( ri, di, utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, aob, zob, hob, dob, rob );
|
||||||
|
iauAtioq ( ri, di, &astrom, &aob, &zob, &hob, &dob, &rob );
|
||||||
|
i = iauAtoc13 ( type, ob1, ob2, utc1, utc2, dut1,
|
||||||
|
elong, phi, hm, xp, yp, phpa, tc, rh, wl,
|
||||||
|
&rc, &dc );
|
||||||
|
i = iauAtoi13 ( type, ob1, ob2, utc1, utc2, dut1, elong, phi, hm,
|
||||||
|
xp, yp, phpa, tc, rh, wl, &ri, &di );
|
||||||
|
iauAtoiq ( type, ob1, ob2, &astrom, &ri, &di );
|
||||||
|
iauBi00 ( &dpsibi, &depsbi, &dra );
|
||||||
|
iauBp00 ( date1, date2, rb, rp, rbp );
|
||||||
|
iauBp06 ( date1, date2, rb, rp, rbp );
|
||||||
|
iauBpn2xy ( rbpn, &x, &y );
|
||||||
|
iauC2i00a ( date1, date2, rc2i );
|
||||||
|
iauC2i00b ( date1, date2, rc2i );
|
||||||
|
iauC2i06a ( date1, date2, rc2i );
|
||||||
|
iauC2ibpn ( date1, date2, rbpn, rc2i );
|
||||||
|
iauC2ixy ( date1, date2, x, y, rc2i );
|
||||||
|
iauC2ixys ( x, y, s, rc2i );
|
||||||
|
iauC2t00a ( tta, ttb, uta, utb, xp, yp, rc2t );
|
||||||
|
iauC2t00b ( tta, ttb, uta, utb, xp, yp, rc2t );
|
||||||
|
iauC2t06a ( tta, ttb, uta, utb, xp, yp, rc2t );
|
||||||
|
iauC2tcio ( rc2i, era, rpom, rc2t );
|
||||||
|
iauC2teqx ( rbpn, gst, rpom, rc2t );
|
||||||
|
iauC2tpe ( tta, ttb, uta, utb, dpsi, deps, xp, yp, rc2t );
|
||||||
|
iauC2txy ( tta, ttb, uta, utb, x, y, xp, yp, rc2t );
|
||||||
|
i = iauCal2jd ( iy, im, id, &djm0, &djm );
|
||||||
|
i = iauD2dtf ( scale, ndp, d1, d2, &iy, &im, &id, ihmsf );
|
||||||
|
i = iauDat ( iy, im, id, fd, &deltat );
|
||||||
|
d = iauDtdb ( date1, date2, ut, elong, u, v );
|
||||||
|
i = iauDtf2d ( scale, iy, im, id, ihr, imn, sec, &d1, &d2 );
|
||||||
|
iauEceq06 ( date1, date2, dl, db, &dr, &dd );
|
||||||
|
iauEcm06 ( date1, date2, rm );
|
||||||
|
d = iauEe00 ( date1, date2, epsa, dpsi );
|
||||||
|
d = iauEe00a ( date1, date2 );
|
||||||
|
d = iauEe00b ( date1, date2 );
|
||||||
|
d = iauEe06 ( date1, date2 );
|
||||||
|
d = iauEect00 ( date1, date2 );
|
||||||
|
i = iauEform ( n, &a, &f );
|
||||||
|
d = iauEo06 ( date1, date2 );
|
||||||
|
d = iauEors ( rnpb, s );
|
||||||
|
d = iauEpb ( dj1, dj2 );
|
||||||
|
iauEpb2jd ( epb, &djm0, &djm );
|
||||||
|
d = iauEpj ( dj1, dj2 );
|
||||||
|
iauEpj2jd ( epj, &djm0, &djm );
|
||||||
|
i = iauEpv00 ( dj1, dj2, pvh, pvb );
|
||||||
|
iauEqec06 ( date1, date2, dr, dd, &dl, &db );
|
||||||
|
d = iauEqeq94 ( date1, date2 );
|
||||||
|
d = iauEra00 ( dj1, dj2 );
|
||||||
|
d = iauFad03 ( t );
|
||||||
|
d = iauFae03 ( t );
|
||||||
|
d = iauFaf03 ( t );
|
||||||
|
d = iauFaju03 ( t );
|
||||||
|
d = iauFal03 ( t );
|
||||||
|
d = iauFalp03 ( t );
|
||||||
|
d = iauFama03 ( t );
|
||||||
|
d = iauFame03 ( t );
|
||||||
|
d = iauFane03 ( t );
|
||||||
|
d = iauFaom03 ( t );
|
||||||
|
d = iauFapa03 ( t );
|
||||||
|
d = iauFasa03 ( t );
|
||||||
|
d = iauFaur03 ( t );
|
||||||
|
d = iauFave03 ( t );
|
||||||
|
iauFk425 ( r1950, d1950, dr1950, dd1950, p1950, v1950,
|
||||||
|
&r2000, &d2000, &dr2000, &dd2000, &p2000, &v2000 );
|
||||||
|
iauFk45z ( r1950, d1950, bepoch, &r2000, &d2000 );
|
||||||
|
iauFk524 ( r2000, d2000, dr2000, dd2000, p2000, v2000,
|
||||||
|
&r1950, &d1950, &dr1950, &dd1950, &p1950, &v1950 );
|
||||||
|
iauFk52h ( r5, d5, dr5, dd5, px5, rv5,
|
||||||
|
&rh, &dh, &drh, &ddh, &pxh, &rvh );
|
||||||
|
iauFk54z ( r2000, d2000, bepoch,
|
||||||
|
&r1950, &d1950, &dr1950, &dd1950 );
|
||||||
|
iauFk5hip ( r5h, s5h );
|
||||||
|
iauFk5hz ( r5, d5, date1, date2, &rh, &dh );
|
||||||
|
iauFw2m ( gamb, phib, psi, eps, r );
|
||||||
|
iauFw2xy ( gamb, phib, psi, eps, &x, &y );
|
||||||
|
iauG2icrs ( dl, db, &dr, &dd );
|
||||||
|
i = iauGc2gd ( n, xyz, &elong, &phi, &height );
|
||||||
|
i = iauGc2gde ( a, f, xyz, &elong, &phi, &height );
|
||||||
|
i = iauGd2gc ( n, elong, phi, height, xyz );
|
||||||
|
i = iauGd2gce ( a, f, elong, phi, height, xyz );
|
||||||
|
d = iauGmst00 ( uta, utb, tta, ttb );
|
||||||
|
d = iauGmst06 ( uta, utb, tta, ttb );
|
||||||
|
d = iauGmst82 ( uta, utb );
|
||||||
|
d = iauGst00a ( uta, utb, tta, ttb );
|
||||||
|
d = iauGst00b ( uta, utb );
|
||||||
|
d = iauGst06 ( uta, utb, tta, ttb, rnpb );
|
||||||
|
d = iauGst06a ( uta, utb, tta, ttb );
|
||||||
|
d = iauGst94 ( uta, utb );
|
||||||
|
iauH2fk5 ( rh, dh, drh, ddh, pxh, rvh,
|
||||||
|
&r5, &d5, &dr5, &dd5, &px5, &rv5 );
|
||||||
|
iauHd2ae ( ha, dec, phi, &az, &el );
|
||||||
|
d = iauHd2pa ( ha, dec, phi );
|
||||||
|
iauHfk5z ( rh, dh, date1, date2,
|
||||||
|
&r5, &d5, &dr5, &dd5 );
|
||||||
|
iauIcrs2g ( dr, dd, &dl, &db );
|
||||||
|
i = iauJd2cal ( dj1, dj2, &iy, &im, &id, &fd );
|
||||||
|
i = iauJdcalf ( ndp, dj1, dj2, iymdf );
|
||||||
|
iauLd ( bm, p, q, e, em, dlim, p1 );
|
||||||
|
iauLdn ( n, b, ob, sc, sn );
|
||||||
|
iauLdsun ( p, e, em, p1 );
|
||||||
|
iauLteceq ( epj, dl, db, &dr, &dd );
|
||||||
|
iauLtecm ( epj, rm );
|
||||||
|
iauLteqec ( epj, dr, dd, &dl, &db );
|
||||||
|
iauLtp ( epj, rp );
|
||||||
|
iauLtpb ( epj, rpb );
|
||||||
|
iauLtpecl ( epj, vec );
|
||||||
|
iauLtpequ ( epj, veq );
|
||||||
|
iauNum00a ( date1, date2, rmatn );
|
||||||
|
iauNum00b ( date1, date2, rmatn );
|
||||||
|
iauNum06a ( date1, date2, rmatn );
|
||||||
|
iauNumat ( epsa, dpsi, deps, rmatn );
|
||||||
|
iauNut00a ( date1, date2, &dpsi, &deps );
|
||||||
|
iauNut00b ( date1, date2, &dpsi, &deps );
|
||||||
|
iauNut06a ( date1, date2, &dpsi, &deps );
|
||||||
|
iauNut80 ( date1, date2, &dpsi, &deps );
|
||||||
|
iauNutm80 ( date1, date2, rmatn );
|
||||||
|
d = iauObl06 ( date1, date2 );
|
||||||
|
d = iauObl80 ( date1, date2 );
|
||||||
|
iauPb06 ( date1, date2, &bzeta, &bz, &btheta );
|
||||||
|
iauPfw06 ( date1, date2, &gamb, &phib, &psib, &epsa );
|
||||||
|
i = iauPlan94 ( date1, date2, np, pv );
|
||||||
|
iauPmat00 ( date1, date2, rbp );
|
||||||
|
iauPmat06 ( date1, date2, rbp );
|
||||||
|
iauPmat76 ( date1, date2, rmatp );
|
||||||
|
iauPmpx ( rc, dc, pr, pd, px, rv, pmt, pob, pco );
|
||||||
|
i = iauPmsafe ( ra1, dec1, pmr1, pmd1, px1, rv1,
|
||||||
|
ep1a, ep1b, ep2a, ep2b,
|
||||||
|
&ra2, &dec2, &pmr2, &pmd2, &px2, &rv2);
|
||||||
|
iauPn00 ( date1, date2, dpsi, deps,
|
||||||
|
&epsa, rb, rp, rbp, rn, rbpn );
|
||||||
|
iauPn00a ( date1, date2,
|
||||||
|
&dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn );
|
||||||
|
iauPn00b ( date1, date2,
|
||||||
|
&dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn );
|
||||||
|
iauPn06 ( date1, date2, dpsi, deps,
|
||||||
|
&epsa, rb, rp, rbp, rn, rbpn );
|
||||||
|
iauPn06a ( date1, date2,
|
||||||
|
&dpsi, &deps, &epsa, rb, rp, rbp, rn, rbpn );
|
||||||
|
iauPnm00a ( date1, date2, rbpn );
|
||||||
|
iauPnm00b ( date1, date2, rbpn );
|
||||||
|
iauPnm06a ( date1, date2, rnpb );
|
||||||
|
iauPnm80 ( date1, date2, rmatpn );
|
||||||
|
iauP06e ( date1, date2,
|
||||||
|
&eps0, &psia, &oma, &bpa, &bqa, &pia, &bpia,
|
||||||
|
&epsa, &chia, &za, &zetaa, &thetaa, &pa,
|
||||||
|
&gam, &phi, &psi );
|
||||||
|
iauPom00 ( xp, yp, sp, rpom );
|
||||||
|
iauPr00 ( date1, date2, &dpsipr, &depspr );
|
||||||
|
iauPrec76 ( date01, date02, date11, date12, &zeta, &z, &theta );
|
||||||
|
i = iauPvstar ( pv, &ra, &dec, &pmr, &pmd, &px, &rv );
|
||||||
|
iauPvtob ( elong, phi, hm, xp, yp, sp, theta, pv );
|
||||||
|
iauRefco ( phpa, tc, rh, wl, refa, refb );
|
||||||
|
d = iauS00 ( date1, date2, x, y );
|
||||||
|
d = iauS00a ( date1, date2 );
|
||||||
|
d = iauS00b ( date1, date2 );
|
||||||
|
d = iauS06 ( date1, date2, x, y );
|
||||||
|
d = iauS06a ( date1, date2 );
|
||||||
|
d = iauSp00 ( date1, date2 );
|
||||||
|
i = iauStarpm ( ra1, dec1, pmr1, pmd1, px1, rv1,
|
||||||
|
ep1a, ep1b, ep2a, ep2b,
|
||||||
|
&ra2, &dec2, &pmr2, &pmd2, &px2, &rv2 );
|
||||||
|
i = iauStarpv ( ra, dec, pmr, pmd, px, rv, pv );
|
||||||
|
i = iauTaitt ( tai1, tai2, &tt1, &tt2 );
|
||||||
|
i = iauTaiut1 ( tai1, tai2, dta, &ut11, &ut12 );
|
||||||
|
i = iauTaiutc ( tai1, tai2, &utc1, &utc2 );
|
||||||
|
i = iauTcbtdb ( tcb1, tcb2, &tdb1, &tdb2 );
|
||||||
|
i = iauTcgtt ( tcg1, tcg2, &tt1, &tt2 );
|
||||||
|
i = iauTdbtcb ( tdb1, tdb2, &tcb1, &tcb2 );
|
||||||
|
i = iauTdbtt ( tdb1, tdb2, dtr, &tt1, &tt2 );
|
||||||
|
i = iauTpors ( xi, eta, a, b, &a01, &b01, &a02, &b02 );
|
||||||
|
i = iauTporv ( xi, eta, v, v01, v02 );
|
||||||
|
iauTpsts ( xi, eta, a0, b0, &a, &b );
|
||||||
|
iauTpstv ( xi, eta, v0, v );
|
||||||
|
i = iauTpxes ( a, b, a0, b0, &xi, &eta );
|
||||||
|
i = iauTpxev ( v, v0, &xi, &eta );
|
||||||
|
i = iauTttai ( tt1, tt2, &tai1, &tai2 );
|
||||||
|
i = iauTttcg ( tt1, tt2, &tcg1, &tcg2 );
|
||||||
|
i = iauTttdb ( tt1, tt2, dtr, &tdb1, &tdb2 );
|
||||||
|
i = iauTtut1 ( tt1, tt2, dt, &ut11, &ut12 );
|
||||||
|
i = iauUt1tai ( ut11, ut12, &tai1, &tai2 );
|
||||||
|
i = iauUt1tt ( ut11, ut12, dt, &tt1, &tt2 );
|
||||||
|
i = iauUt1utc ( ut11, ut12, dut, &utc1, &utc2 );
|
||||||
|
i = iauUtctai ( utc1, utc2, dta, &tai1, &tai2 );
|
||||||
|
i = iauUtcut1 ( utc1, utc2, dut, &ut11, &ut12 );
|
||||||
|
iauXy06 ( date1, date2, &x, &y );
|
||||||
|
iauXys00a ( date1, date2, &x, &y, &s );
|
||||||
|
iauXys00b ( date1, date2, &x, &y, &s );
|
||||||
|
iauXys06a ( date1, date2, &x, &y, &s );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
BIN
20200721/c/doc/sofa_lib.pdf
Normal file
BIN
20200721/c/doc/sofa_lib.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_pn_c.pdf
Normal file
BIN
20200721/c/doc/sofa_pn_c.pdf
Normal file
Binary file not shown.
BIN
20200721/c/doc/sofa_ts_c.pdf
Normal file
BIN
20200721/c/doc/sofa_ts_c.pdf
Normal file
Binary file not shown.
307
20200721/c/doc/sofa_vml.lis
Normal file
307
20200721/c/doc/sofa_vml.lis
Normal file
@@ -0,0 +1,307 @@
|
|||||||
|
sofa_vml.lis 2013 October 8
|
||||||
|
|
||||||
|
--------------------------
|
||||||
|
SOFA Vector/Matrix Library
|
||||||
|
--------------------------
|
||||||
|
|
||||||
|
PREFACE
|
||||||
|
|
||||||
|
The routines described here comprise the SOFA vector/matrix library.
|
||||||
|
Their general appearance and coding style conforms to conventions
|
||||||
|
agreed by the SOFA Board, and their functions, names and algorithms have
|
||||||
|
been ratified by the Board. Procedures for soliciting and agreeing
|
||||||
|
additions to the library are still evolving.
|
||||||
|
|
||||||
|
|
||||||
|
PROGRAMMING LANGUAGES
|
||||||
|
|
||||||
|
The SOFA routines are available in two programming languages at present:
|
||||||
|
Fortran 77 and ANSI C.
|
||||||
|
|
||||||
|
There is a one-to-one relationship between the two language versions.
|
||||||
|
The naming convention is such that a SOFA routine referred to
|
||||||
|
generically as "EXAMPL" exists as a Fortran subprogram iau_EXAMPL and a
|
||||||
|
C function iauExampl. The calls for the two versions are very similar,
|
||||||
|
with the same arguments in the same order. In a few cases, the C
|
||||||
|
equivalent of a Fortran SUBROUTINE subprogram uses a return value rather
|
||||||
|
than an argument.
|
||||||
|
|
||||||
|
|
||||||
|
GENERAL PRINCIPLES
|
||||||
|
|
||||||
|
The library consists mostly of routines which operate on ordinary
|
||||||
|
Cartesian vectors (x,y,z) and 3x3 rotation matrices. However, there is
|
||||||
|
also support for vectors which represent velocity as well as position
|
||||||
|
and vectors which represent rotation instead of position. The vectors
|
||||||
|
which represent both position and velocity may be considered still to
|
||||||
|
have dimensions (3), but to comprise elements each of which is two
|
||||||
|
numbers, representing the value itself and the time derivative. Thus:
|
||||||
|
|
||||||
|
* "Position" or "p" vectors (or just plain 3-vectors) have dimension
|
||||||
|
(3) in Fortran and [3] in C.
|
||||||
|
|
||||||
|
* "Position/velocity" or "pv" vectors have dimensions (3,2) in Fortran
|
||||||
|
and [2][3] in C.
|
||||||
|
|
||||||
|
* "Rotation" or "r" matrices have dimensions (3,3) in Fortran and [3][3]
|
||||||
|
in C. When used for rotation, they are "orthogonal"; the inverse of
|
||||||
|
such a matrix is equal to the transpose. Most of the routines in
|
||||||
|
this library do not assume that r-matrices are necessarily orthogonal
|
||||||
|
and in fact work on any 3x3 matrix.
|
||||||
|
|
||||||
|
* "Rotation" or "r" vectors have dimensions (3) in Fortran and [3] in C.
|
||||||
|
Such vectors are a combination of the Euler axis and angle and are
|
||||||
|
convertible to and from r-matrices. The direction is the axis of
|
||||||
|
rotation and the magnitude is the angle of rotation, in radians.
|
||||||
|
Because the amount of rotation can be scaled up and down simply by
|
||||||
|
multiplying the vector by a scalar, r-vectors are useful for
|
||||||
|
representing spins about an axis which is fixed.
|
||||||
|
|
||||||
|
* The above rules mean that in terms of memory address, the three
|
||||||
|
velocity components of a pv-vector follow the three position
|
||||||
|
components. Application code is permitted to exploit this and all
|
||||||
|
other knowledge of the internal layouts: that x, y and z appear in
|
||||||
|
that order and are in a right-handed Cartesian coordinate system etc.
|
||||||
|
For example, the cp function (copy a p-vector) can be used to copy
|
||||||
|
the velocity component of a pv-vector (indeed, this is how the
|
||||||
|
CPV routine is coded).
|
||||||
|
|
||||||
|
* The routines provided do not completely fill the range of operations
|
||||||
|
that link all the various vector and matrix options, but are confined
|
||||||
|
to functions that are required by other parts of the SOFA software or
|
||||||
|
which are likely to prove useful.
|
||||||
|
|
||||||
|
In addition to the vector/matrix routines, the library contains some
|
||||||
|
routines related to spherical angles, including conversions to and
|
||||||
|
from sexagesimal format.
|
||||||
|
|
||||||
|
Using the library requires knowledge of vector/matrix methods, spherical
|
||||||
|
trigonometry, and methods of attitude representation. These topics are
|
||||||
|
covered in many textbooks, including "Spacecraft Attitude Determination
|
||||||
|
and Control", James R. Wertz (ed.), Astrophysics and Space Science
|
||||||
|
Library, Vol. 73, D. Reidel Publishing Company, 1986.
|
||||||
|
|
||||||
|
|
||||||
|
OPERATIONS INVOLVING P-VECTORS AND R-MATRICES
|
||||||
|
|
||||||
|
Initialize
|
||||||
|
|
||||||
|
ZP zero p-vector
|
||||||
|
ZR initialize r-matrix to null
|
||||||
|
IR initialize r-matrix to identity
|
||||||
|
|
||||||
|
Copy/extend/extract
|
||||||
|
|
||||||
|
CP copy p-vector
|
||||||
|
CR copy r-matrix
|
||||||
|
|
||||||
|
Build rotations
|
||||||
|
|
||||||
|
RX rotate r-matrix about x
|
||||||
|
RY rotate r-matrix about y
|
||||||
|
RZ rotate r-matrix about z
|
||||||
|
|
||||||
|
Spherical/Cartesian conversions
|
||||||
|
|
||||||
|
S2C spherical to unit vector
|
||||||
|
C2S unit vector to spherical
|
||||||
|
S2P spherical to p-vector
|
||||||
|
P2S p-vector to spherical
|
||||||
|
|
||||||
|
Operations on vectors
|
||||||
|
|
||||||
|
PPP p-vector plus p-vector
|
||||||
|
PMP p-vector minus p-vector
|
||||||
|
PPSP p-vector plus scaled p-vector
|
||||||
|
PDP inner (=scalar=dot) product of two p-vectors
|
||||||
|
PXP outer (=vector=cross) product of two p-vectors
|
||||||
|
PM modulus of p-vector
|
||||||
|
PN normalize p-vector returning modulus
|
||||||
|
SXP multiply p-vector by scalar
|
||||||
|
|
||||||
|
Operations on matrices
|
||||||
|
|
||||||
|
RXR r-matrix multiply
|
||||||
|
TR transpose r-matrix
|
||||||
|
|
||||||
|
Matrix-vector products
|
||||||
|
|
||||||
|
RXP product of r-matrix and p-vector
|
||||||
|
TRXP product of transpose of r-matrix and p-vector
|
||||||
|
|
||||||
|
Separation and position-angle
|
||||||
|
|
||||||
|
SEPP angular separation from p-vectors
|
||||||
|
SEPS angular separation from spherical coordinates
|
||||||
|
PAP position-angle from p-vectors
|
||||||
|
PAS position-angle from spherical coordinates
|
||||||
|
|
||||||
|
Rotation vectors
|
||||||
|
|
||||||
|
RV2M r-vector to r-matrix
|
||||||
|
RM2V r-matrix to r-vector
|
||||||
|
|
||||||
|
|
||||||
|
OPERATIONS INVOLVING PV-VECTORS
|
||||||
|
|
||||||
|
Initialize
|
||||||
|
|
||||||
|
ZPV zero pv-vector
|
||||||
|
|
||||||
|
Copy/extend/extract
|
||||||
|
|
||||||
|
CPV copy pv-vector
|
||||||
|
P2PV append zero velocity to p-vector
|
||||||
|
PV2P discard velocity component of pv-vector
|
||||||
|
|
||||||
|
Spherical/Cartesian conversions
|
||||||
|
|
||||||
|
S2PV spherical to pv-vector
|
||||||
|
PV2S pv-vector to spherical
|
||||||
|
|
||||||
|
Operations on vectors
|
||||||
|
|
||||||
|
PVPPV pv-vector plus pv-vector
|
||||||
|
PVMPV pv-vector minus pv-vector
|
||||||
|
PVDPV inner (=scalar=dot) product of two pv-vectors
|
||||||
|
PVXPV outer (=vector=cross) product of two pv-vectors
|
||||||
|
PVM modulus of pv-vector
|
||||||
|
SXPV multiply pv-vector by scalar
|
||||||
|
S2XPV multiply pv-vector by two scalars
|
||||||
|
PVU update pv-vector
|
||||||
|
PVUP update pv-vector discarding velocity
|
||||||
|
|
||||||
|
Matrix-vector products
|
||||||
|
|
||||||
|
RXPV product of r-matrix and pv-vector
|
||||||
|
TRXPV product of transpose of r-matrix and pv-vector
|
||||||
|
|
||||||
|
|
||||||
|
OPERATIONS ON ANGLES
|
||||||
|
|
||||||
|
ANP normalize radians to range 0 to 2pi
|
||||||
|
ANPM normalize radians to range -pi to +pi
|
||||||
|
A2TF decompose radians into hours, minutes, seconds
|
||||||
|
A2AF decompose radians into degrees, arcminutes, arcseconds
|
||||||
|
AF2A degrees, arcminutes, arcseconds to radians
|
||||||
|
D2TF decompose days into hours, minutes, seconds
|
||||||
|
TF2A hours, minutes, seconds to radians
|
||||||
|
TF2D hours, minutes, seconds to days
|
||||||
|
|
||||||
|
|
||||||
|
CALLS: FORTRAN VERSION
|
||||||
|
|
||||||
|
CALL iau_A2AF ( NDP, ANGLE, SIGN, IDMSF )
|
||||||
|
CALL iau_A2TF ( NDP, ANGLE, SIGN, IHMSF )
|
||||||
|
CALL iau_AF2A ( S, IDEG, IAMIN, ASEC, RAD, J )
|
||||||
|
D = iau_ANP ( A )
|
||||||
|
D = iau_ANPM ( A )
|
||||||
|
CALL iau_C2S ( P, THETA, PHI )
|
||||||
|
CALL iau_CP ( P, C )
|
||||||
|
CALL iau_CPV ( PV, C )
|
||||||
|
CALL iau_CR ( R, C )
|
||||||
|
CALL iau_D2TF ( NDP, DAYS, SIGN, IHMSF )
|
||||||
|
CALL iau_IR ( R )
|
||||||
|
CALL iau_P2PV ( P, PV )
|
||||||
|
CALL iau_P2S ( P, THETA, PHI, R )
|
||||||
|
CALL iau_PAP ( A, B, THETA )
|
||||||
|
CALL iau_PAS ( AL, AP, BL, BP, THETA )
|
||||||
|
CALL iau_PDP ( A, B, ADB )
|
||||||
|
CALL iau_PM ( P, R )
|
||||||
|
CALL iau_PMP ( A, B, AMB )
|
||||||
|
CALL iau_PN ( P, R, U )
|
||||||
|
CALL iau_PPP ( A, B, APB )
|
||||||
|
CALL iau_PPSP ( A, S, B, APSB )
|
||||||
|
CALL iau_PV2P ( PV, P )
|
||||||
|
CALL iau_PV2S ( PV, THETA, PHI, R, TD, PD, RD )
|
||||||
|
CALL iau_PVDPV ( A, B, ADB )
|
||||||
|
CALL iau_PVM ( PV, R, S )
|
||||||
|
CALL iau_PVMPV ( A, B, AMB )
|
||||||
|
CALL iau_PVPPV ( A, B, APB )
|
||||||
|
CALL iau_PVU ( DT, PV, UPV )
|
||||||
|
CALL iau_PVUP ( DT, PV, P )
|
||||||
|
CALL iau_PVXPV ( A, B, AXB )
|
||||||
|
CALL iau_PXP ( A, B, AXB )
|
||||||
|
CALL iau_RM2V ( R, P )
|
||||||
|
CALL iau_RV2M ( P, R )
|
||||||
|
CALL iau_RX ( PHI, R )
|
||||||
|
CALL iau_RXP ( R, P, RP )
|
||||||
|
CALL iau_RXPV ( R, PV, RPV )
|
||||||
|
CALL iau_RXR ( A, B, ATB )
|
||||||
|
CALL iau_RY ( THETA, R )
|
||||||
|
CALL iau_RZ ( PSI, R )
|
||||||
|
CALL iau_S2C ( THETA, PHI, C )
|
||||||
|
CALL iau_S2P ( THETA, PHI, R, P )
|
||||||
|
CALL iau_S2PV ( THETA, PHI, R, TD, PD, RD, PV )
|
||||||
|
CALL iau_S2XPV ( S1, S2, PV )
|
||||||
|
CALL iau_SEPP ( A, B, S )
|
||||||
|
CALL iau_SEPS ( AL, AP, BL, BP, S )
|
||||||
|
CALL iau_SXP ( S, P, SP )
|
||||||
|
CALL iau_SXPV ( S, PV, SPV )
|
||||||
|
CALL iau_TF2A ( S, IHOUR, IMIN, SEC, RAD, J )
|
||||||
|
CALL iau_TF2D ( S, IHOUR, IMIN, SEC, DAYS, J )
|
||||||
|
CALL iau_TR ( R, RT )
|
||||||
|
CALL iau_TRXP ( R, P, TRP )
|
||||||
|
CALL iau_TRXPV ( R, PV, TRPV )
|
||||||
|
CALL iau_ZP ( P )
|
||||||
|
CALL iau_ZPV ( PV )
|
||||||
|
CALL iau_ZR ( R )
|
||||||
|
|
||||||
|
|
||||||
|
CALLS: C VERSION
|
||||||
|
|
||||||
|
iauA2af ( ndp, angle, &sign, idmsf );
|
||||||
|
iauA2tf ( ndp, angle, &sign, ihmsf );
|
||||||
|
i = iauAf2a ( s, ideg, iamin, asec, &rad );
|
||||||
|
d = iauAnp ( a );
|
||||||
|
d = iauAnpm ( a );
|
||||||
|
iauC2s ( p, &theta, &phi );
|
||||||
|
iauCp ( p, c );
|
||||||
|
iauCpv ( pv, c );
|
||||||
|
iauCr ( r, c );
|
||||||
|
iauD2tf ( ndp, days, &sign, ihmsf );
|
||||||
|
iauIr ( r );
|
||||||
|
iauP2pv ( p, pv );
|
||||||
|
iauP2s ( p, &theta, &phi, &r );
|
||||||
|
d = iauPap ( a, b );
|
||||||
|
d = iauPas ( al, ap, bl, bp );
|
||||||
|
d = iauPdp ( a, b );
|
||||||
|
d = iauPm ( p );
|
||||||
|
iauPmp ( a, b, amb );
|
||||||
|
iauPn ( p, &r, u );
|
||||||
|
iauPpp ( a, b, apb );
|
||||||
|
iauPpsp ( a, s, b, apsb );
|
||||||
|
iauPv2p ( pv, p );
|
||||||
|
iauPv2s ( pv, &theta, &phi, &r, &td, &pd, &rd );
|
||||||
|
iauPvdpv ( a, b, adb );
|
||||||
|
iauPvm ( pv, &r, &s );
|
||||||
|
iauPvmpv ( a, b, amb );
|
||||||
|
iauPvppv ( a, b, apb );
|
||||||
|
iauPvu ( dt, pv, upv );
|
||||||
|
iauPvup ( dt, pv, p );
|
||||||
|
iauPvxpv ( a, b, axb );
|
||||||
|
iauPxp ( a, b, axb );
|
||||||
|
iauRm2v ( r, p );
|
||||||
|
iauRv2m ( p, r );
|
||||||
|
iauRx ( phi, r );
|
||||||
|
iauRxp ( r, p, rp );
|
||||||
|
iauRxpv ( r, pv, rpv );
|
||||||
|
iauRxr ( a, b, atb );
|
||||||
|
iauRy ( theta, r );
|
||||||
|
iauRz ( psi, r );
|
||||||
|
iauS2c ( theta, phi, c );
|
||||||
|
iauS2p ( theta, phi, r, p );
|
||||||
|
iauS2pv ( theta, phi, r, td, pd, rd, pV );
|
||||||
|
iauS2xpv ( s1, s2, pv );
|
||||||
|
d = iauSepp ( a, b );
|
||||||
|
d = iauSeps ( al, ap, bl, bp );
|
||||||
|
iauSxp ( s, p, sp );
|
||||||
|
iauSxpv ( s, pv, spv );
|
||||||
|
i = iauTf2a ( s, ihour, imin, sec, &rad );
|
||||||
|
i = iauTf2d ( s, ihour, imin, sec, &days );
|
||||||
|
iauTr ( r, rt );
|
||||||
|
iauTrxp ( r, p, trp );
|
||||||
|
iauTrxpv ( r, pv, trpv );
|
||||||
|
iauZp ( p );
|
||||||
|
iauZpv ( pv );
|
||||||
|
iauZr ( r );
|
||||||
BIN
20200721/c/doc/sofa_vml.pdf
Normal file
BIN
20200721/c/doc/sofa_vml.pdf
Normal file
Binary file not shown.
58
20200721/c/doc/title.lis
Normal file
58
20200721/c/doc/title.lis
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
T H E
|
||||||
|
|
||||||
|
|
||||||
|
SSSSS OOOOOO FFFFFFFFFFFFF AAAAAAA
|
||||||
|
SSSSSSSSSS OOOOOOOOOOOO FFFFFFFFFFFF AAAAAAAA
|
||||||
|
SSSSSSSSSSS OOOOOOOOOOOOOO FFFFFFFFFFFF AAAA AAAA
|
||||||
|
SSSS S OOOOOO OOOOO FFFF AAAA AAAA
|
||||||
|
SSSSS OOOOO OOOO FFFFF AAAA AAAA
|
||||||
|
SSSSSSSSSS OOOO OOOOO FFFFFFFFFFFF AAAA AAAA
|
||||||
|
SSSSSSSSS OOOOO OOOO FFFFFFFFFFFF AAAAAAAAAAAAA
|
||||||
|
SSSSS OOOO OOOO FFFF AAAAAAAAAAAAAA
|
||||||
|
S SSSS OOOOO OOOOO FFFF AAAAAAAAAAAAAAA
|
||||||
|
SSSSSSSSSSS OOOOOOOOOOOOO FFFF AAAA AAAAA
|
||||||
|
SSSSSSSSS OOOOOOOOOO FFFF AAAA AAAAA
|
||||||
|
SSSS OOOOO FFFF AAAA AAAAA
|
||||||
|
|
||||||
|
|
||||||
|
S O F T W A R E
|
||||||
|
|
||||||
|
L I B R A R I E S
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
International Astronomical Union
|
||||||
|
|
||||||
|
Division A: Fundamental Astronomy
|
||||||
|
|
||||||
|
|
||||||
|
Standards Of Fundamental Astronomy Board
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Release 16
|
||||||
|
|
||||||
|
2020 July 21
|
||||||
BIN
20200721/c/doc/title.pdf
Normal file
BIN
20200721/c/doc/title.pdf
Normal file
Binary file not shown.
170
20200721/c/src/a2af.c
Normal file
170
20200721/c/src/a2af.c
Normal file
@@ -0,0 +1,170 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauA2af(int ndp, double angle, char *sign, int idmsf[4])
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A 2 a f
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Decompose radians into degrees, arcminutes, arcseconds, fraction.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ndp int resolution (Note 1)
|
||||||
|
** angle double angle in radians
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** sign char* '+' or '-'
|
||||||
|
** idmsf int[4] degrees, arcminutes, arcseconds, fraction
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) 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...
|
||||||
|
**
|
||||||
|
** 2) 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.
|
||||||
|
**
|
||||||
|
** 3) 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.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauD2tf decompose days to hms
|
||||||
|
**
|
||||||
|
** This revision: 2020 April 1
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Hours to degrees * radians to turns */
|
||||||
|
const double F = 15.0 / D2PI;
|
||||||
|
|
||||||
|
|
||||||
|
/* Scale then use days to h,m,s function. */
|
||||||
|
iauD2tf(ndp, angle*F, sign, idmsf);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
166
20200721/c/src/a2tf.c
Normal file
166
20200721/c/src/a2tf.c
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauA2tf(int ndp, double angle, char *sign, int ihmsf[4])
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A 2 t f
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Decompose radians into hours, minutes, seconds, fraction.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ndp int resolution (Note 1)
|
||||||
|
** angle double angle in radians
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** sign char* '+' or '-'
|
||||||
|
** ihmsf int[4] hours, minutes, seconds, fraction
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) 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...
|
||||||
|
**
|
||||||
|
** 2) 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.
|
||||||
|
**
|
||||||
|
** 3) 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.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauD2tf decompose days to hms
|
||||||
|
**
|
||||||
|
** This revision: 2020 April 1
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Scale then use days to h,m,s function. */
|
||||||
|
iauD2tf(ndp, angle/D2PI, sign, ihmsf);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
178
20200721/c/src/ab.c
Normal file
178
20200721/c/src/ab.c
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAb(double pnat[3], double v[3], double s, double bm1,
|
||||||
|
double ppr[3])
|
||||||
|
/*
|
||||||
|
** - - - - - -
|
||||||
|
** i a u A b
|
||||||
|
** - - - - - -
|
||||||
|
**
|
||||||
|
** Apply aberration to transform natural direction into proper
|
||||||
|
** direction.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** pnat double[3] natural direction to the source (unit vector)
|
||||||
|
** v double[3] observer barycentric velocity in units of c
|
||||||
|
** s double distance between the Sun and the observer (au)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ppr double[3] proper direction to source (unit vector)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The algorithm is based on Expr. (7.40) in the Explanatory
|
||||||
|
** Supplement (Urban & Seidelmann 2013), but with the following
|
||||||
|
** changes:
|
||||||
|
**
|
||||||
|
** o Rigorous rather than approximate normalization is applied.
|
||||||
|
**
|
||||||
|
** o The gravitational potential term from Expr. (7) in
|
||||||
|
** Klioner (2003) is added, taking into account only the Sun's
|
||||||
|
** contribution. This has a maximum effect of about
|
||||||
|
** 0.4 microarcsecond.
|
||||||
|
**
|
||||||
|
** 2) In almost all cases, the maximum accuracy will be limited by the
|
||||||
|
** supplied velocity. For example, if the SOFA iauEpv00 function is
|
||||||
|
** used, errors of up to 5 microarcseconds could occur.
|
||||||
|
**
|
||||||
|
** References:
|
||||||
|
**
|
||||||
|
** Urban, S. & Seidelmann, P. K. (eds), Explanatory Supplement to
|
||||||
|
** the Astronomical Almanac, 3rd ed., University Science Books
|
||||||
|
** (2013).
|
||||||
|
**
|
||||||
|
** Klioner, Sergei A., "A practical relativistic model for micro-
|
||||||
|
** arcsecond astrometry in space", Astr. J. 125, 1580-1597 (2003).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPdp scalar product of two p-vectors
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
double pdv, w1, w2, r2, w, p[3], r;
|
||||||
|
|
||||||
|
|
||||||
|
pdv = iauPdp(pnat, v);
|
||||||
|
w1 = 1.0 + pdv/(1.0 + bm1);
|
||||||
|
w2 = SRS/s;
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
w = pnat[i]*bm1 + w1*v[i] + w2*(v[i] - pdv*pnat[i]);
|
||||||
|
p[i] = w;
|
||||||
|
r2 = r2 + w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
ppr[i] = p[i]/r;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
185
20200721/c/src/ae2hd.c
Normal file
185
20200721/c/src/ae2hd.c
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAe2hd (double az, double el, double phi,
|
||||||
|
double *ha, double *dec)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u A e 2 h d
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Horizon to equatorial coordinates: transform azimuth and altitude
|
||||||
|
** to hour angle and declination.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** az double azimuth
|
||||||
|
** el double altitude (informally, elevation)
|
||||||
|
** phi double site latitude
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ha double hour angle (local)
|
||||||
|
** dec double declination
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) All the arguments are angles in radians.
|
||||||
|
**
|
||||||
|
** 2) The sign convention for azimuth is north zero, east +pi/2.
|
||||||
|
**
|
||||||
|
** 3) HA is returned in the range +/-pi. Declination is returned in
|
||||||
|
** the range +/-pi/2.
|
||||||
|
**
|
||||||
|
** 4) The latitude phi is pi/2 minus the angle between the Earth's
|
||||||
|
** rotation axis and the adopted zenith. In many applications it
|
||||||
|
** will be sufficient to use the published geodetic latitude of the
|
||||||
|
** site. In very precise (sub-arcsecond) applications, phi can be
|
||||||
|
** corrected for polar motion.
|
||||||
|
**
|
||||||
|
** 5) The azimuth az must be with respect to the rotational north pole,
|
||||||
|
** as opposed to the ITRS pole, and an azimuth with respect to north
|
||||||
|
** on a map of the Earth's surface will need to be adjusted for
|
||||||
|
** polar motion if sub-arcsecond accuracy is required.
|
||||||
|
**
|
||||||
|
** 6) Should the user wish to work with respect to the astronomical
|
||||||
|
** zenith rather than the geodetic zenith, phi will need to be
|
||||||
|
** adjusted for deflection of the vertical (often tens of
|
||||||
|
** arcseconds), and the zero point of ha will also be affected.
|
||||||
|
**
|
||||||
|
** 7) The transformation is the same as Ve = Ry(phi-pi/2)*Rz(pi)*Vh,
|
||||||
|
** where Ve and Vh are lefthanded unit vectors in the (ha,dec) and
|
||||||
|
** (az,el) systems respectively and Rz and Ry are rotations about
|
||||||
|
** first the z-axis and then the y-axis. (n.b. Rz(pi) simply
|
||||||
|
** reverses the signs of the x and y components.) For efficiency,
|
||||||
|
** the algorithm is written out rather than calling other utility
|
||||||
|
** functions. For applications that require even greater
|
||||||
|
** efficiency, additional savings are possible if constant terms
|
||||||
|
** such as functions of latitude are computed once and for all.
|
||||||
|
**
|
||||||
|
** 8) Again for efficiency, no range checking of arguments is carried
|
||||||
|
** out.
|
||||||
|
**
|
||||||
|
** Last revision: 2017 September 12
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double sa, ca, se, ce, sp, cp, x, y, z, r;
|
||||||
|
|
||||||
|
|
||||||
|
/* Useful trig functions. */
|
||||||
|
sa = sin(az);
|
||||||
|
ca = cos(az);
|
||||||
|
se = sin(el);
|
||||||
|
ce = cos(el);
|
||||||
|
sp = sin(phi);
|
||||||
|
cp = cos(phi);
|
||||||
|
|
||||||
|
/* HA,Dec unit vector. */
|
||||||
|
x = - ca*ce*sp + se*cp;
|
||||||
|
y = - sa*ce;
|
||||||
|
z = ca*ce*cp + se*sp;
|
||||||
|
|
||||||
|
/* To spherical. */
|
||||||
|
r = sqrt(x*x + y*y);
|
||||||
|
*ha = (r != 0.0) ? atan2(y,x) : 0.0;
|
||||||
|
*dec = atan2(z,r);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
157
20200721/c/src/af2a.c
Normal file
157
20200721/c/src/af2a.c
Normal file
@@ -0,0 +1,157 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
int iauAf2a(char s, int ideg, int iamin, double asec, double *rad)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A f 2 a
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Convert degrees, arcminutes, arcseconds to radians.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** s char sign: '-' = negative, otherwise positive
|
||||||
|
** ideg int degrees
|
||||||
|
** iamin int arcminutes
|
||||||
|
** asec double arcseconds
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rad double angle in radians
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: 0 = OK
|
||||||
|
** 1 = ideg outside range 0-359
|
||||||
|
** 2 = iamin outside range 0-59
|
||||||
|
** 3 = asec outside range 0-59.999...
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The result is computed even if any of the range checks fail.
|
||||||
|
**
|
||||||
|
** 2) Negative ideg, iamin and/or asec produce a warning status, but
|
||||||
|
** the absolute value is used in the conversion.
|
||||||
|
**
|
||||||
|
** 3) If there are multiple errors, the status value reflects only the
|
||||||
|
** first, the smallest taking precedence.
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Compute the interval. */
|
||||||
|
*rad = ( s == '-' ? -1.0 : 1.0 ) *
|
||||||
|
( 60.0 * ( 60.0 * ( (double) abs(ideg) ) +
|
||||||
|
( (double) abs(iamin) ) ) +
|
||||||
|
fabs(asec) ) * DAS2R;
|
||||||
|
|
||||||
|
/* Validate arguments and return status. */
|
||||||
|
if ( ideg < 0 || ideg > 359 ) return 1;
|
||||||
|
if ( iamin < 0 || iamin > 59 ) return 2;
|
||||||
|
if ( asec < 0.0 || asec >= 60.0 ) return 3;
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
132
20200721/c/src/anp.c
Normal file
132
20200721/c/src/anp.c
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauAnp(double a)
|
||||||
|
/*
|
||||||
|
** - - - - - - -
|
||||||
|
** i a u A n p
|
||||||
|
** - - - - - - -
|
||||||
|
**
|
||||||
|
** Normalize angle into the range 0 <= a < 2pi.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** a double angle (radians)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double angle in range 0-2pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double w;
|
||||||
|
|
||||||
|
|
||||||
|
w = fmod(a, D2PI);
|
||||||
|
if (w < 0) w += D2PI;
|
||||||
|
|
||||||
|
return w;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
132
20200721/c/src/anpm.c
Normal file
132
20200721/c/src/anpm.c
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauAnpm(double a)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A n p m
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Normalize angle into the range -pi <= a < +pi.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** a double angle (radians)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double angle in range +/-pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double w;
|
||||||
|
|
||||||
|
|
||||||
|
w = fmod(a, D2PI);
|
||||||
|
if (fabs(w) >= DPI) w -= dsign(D2PI, a);
|
||||||
|
|
||||||
|
return w;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
222
20200721/c/src/apcg.c
Normal file
222
20200721/c/src/apcg.c
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApcg(double date1, double date2,
|
||||||
|
double ebpv[2][3], double ehp[3],
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A p c g
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
** ebpv double[2][3] Earth barycentric pos/vel (au, au/day)
|
||||||
|
** ehp double[3] Earth heliocentric position (au)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double unchanged
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 4) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApcs astrometry parameters, ICRS-GCRS, space observer
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Geocentric observer */
|
||||||
|
double pv[2][3] = { { 0.0, 0.0, 0.0 },
|
||||||
|
{ 0.0, 0.0, 0.0 } };
|
||||||
|
|
||||||
|
|
||||||
|
/* Compute the star-independent astrometry parameters. */
|
||||||
|
iauApcs(date1, date2, pv, ebpv, ehp, astrom);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
225
20200721/c/src/apcg13.c
Normal file
225
20200721/c/src/apcg13.c
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApcg13(double date1, double date2, iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A p c g 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** For a geocentric observer, prepare star-independent astrometry
|
||||||
|
** parameters for transformations between ICRS and GCRS coordinates.
|
||||||
|
** The caller supplies the date, and SOFA models are used to predict
|
||||||
|
** the Earth ephemeris.
|
||||||
|
**
|
||||||
|
** The parameters produced by this function are required in the
|
||||||
|
** parallax, light deflection and aberration parts of the astrometric
|
||||||
|
** transformation chain.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double unchanged
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) In cases where the caller wishes to supply his own Earth
|
||||||
|
** ephemeris, the function iauApcg can be used instead of the present
|
||||||
|
** function.
|
||||||
|
**
|
||||||
|
** 4) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 5) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauEpv00 Earth position and velocity
|
||||||
|
** iauApcg astrometry parameters, ICRS-GCRS, geocenter
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double ehpv[2][3], ebpv[2][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Earth barycentric & heliocentric position/velocity (au, au/d). */
|
||||||
|
(void) iauEpv00(date1, date2, ehpv, ebpv);
|
||||||
|
|
||||||
|
/* Compute the star-independent astrometry parameters. */
|
||||||
|
iauApcg(date1, date2, ebpv, ehpv[0], astrom);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
231
20200721/c/src/apci.c
Normal file
231
20200721/c/src/apci.c
Normal file
@@ -0,0 +1,231 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApci(double date1, double date2,
|
||||||
|
double ebpv[2][3], double ehp[3],
|
||||||
|
double x, double y, double s,
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A p c i
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
** ebpv double[2][3] Earth barycentric position/velocity (au, au/day)
|
||||||
|
** ehp double[3] Earth heliocentric position (au)
|
||||||
|
** x,y double CIP X,Y (components of unit vector)
|
||||||
|
** s double the CIO locator s (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double unchanged
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) In cases where the caller does not wish to provide the Earth
|
||||||
|
** ephemeris and CIP/CIO, the function iauApci13 can be used instead
|
||||||
|
** of the present function. This computes the required quantities
|
||||||
|
** using other SOFA functions.
|
||||||
|
**
|
||||||
|
** 4) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 5) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApcg astrometry parameters, ICRS-GCRS, geocenter
|
||||||
|
** iauC2ixys celestial-to-intermediate matrix, given X,Y and s
|
||||||
|
**
|
||||||
|
** This revision: 2013 September 25
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Star-independent astrometry parameters for geocenter. */
|
||||||
|
iauApcg(date1, date2, ebpv, ehp, astrom);
|
||||||
|
|
||||||
|
/* CIO based BPN matrix. */
|
||||||
|
iauC2ixys(x, y, s, astrom->bpn);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
243
20200721/c/src/apci13.c
Normal file
243
20200721/c/src/apci13.c
Normal file
@@ -0,0 +1,243 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApci13(double date1, double date2,
|
||||||
|
iauASTROM *astrom, double *eo)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A p c i 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** For a terrestrial observer, prepare star-independent astrometry
|
||||||
|
** parameters for transformations between ICRS and geocentric CIRS
|
||||||
|
** coordinates. The caller supplies the date, and SOFA models are used
|
||||||
|
** to predict the Earth ephemeris and CIP/CIO.
|
||||||
|
**
|
||||||
|
** The parameters produced by this function are required in the
|
||||||
|
** parallax, light deflection, aberration, and bias-precession-nutation
|
||||||
|
** parts of the astrometric transformation chain.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double unchanged
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
** eo double* equation of the origins (ERA-GST)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) In cases where the caller wishes to supply his own Earth
|
||||||
|
** ephemeris and CIP/CIO, the function iauApci can be used instead
|
||||||
|
** of the present function.
|
||||||
|
**
|
||||||
|
** 4) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 5) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauEpv00 Earth position and velocity
|
||||||
|
** iauPnm06a classical NPB matrix, IAU 2006/2000A
|
||||||
|
** iauBpn2xy extract CIP X,Y coordinates from NPB matrix
|
||||||
|
** iauS06 the CIO locator s, given X,Y, IAU 2006
|
||||||
|
** iauApci astrometry parameters, ICRS-CIRS
|
||||||
|
** iauEors equation of the origins, given NPB matrix and s
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double ehpv[2][3], ebpv[2][3], r[3][3], x, y, s;
|
||||||
|
|
||||||
|
|
||||||
|
/* Earth barycentric & heliocentric position/velocity (au, au/d). */
|
||||||
|
(void) iauEpv00(date1, date2, ehpv, ebpv);
|
||||||
|
|
||||||
|
/* Form the equinox based BPN matrix, IAU 2006/2000A. */
|
||||||
|
iauPnm06a(date1, date2, r);
|
||||||
|
|
||||||
|
/* Extract CIP X,Y. */
|
||||||
|
iauBpn2xy(r, &x, &y);
|
||||||
|
|
||||||
|
/* Obtain CIO locator s. */
|
||||||
|
s = iauS06(date1, date2, x, y);
|
||||||
|
|
||||||
|
/* Compute the star-independent astrometry parameters. */
|
||||||
|
iauApci(date1, date2, ebpv, ehpv[0], x, y, s, astrom);
|
||||||
|
|
||||||
|
/* Equation of the origins. */
|
||||||
|
*eo = iauEors(r, s);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
305
20200721/c/src/apco.c
Normal file
305
20200721/c/src/apco.c
Normal file
@@ -0,0 +1,305 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApco(double date1, double date2,
|
||||||
|
double ebpv[2][3], double ehp[3],
|
||||||
|
double x, double y, double s, double theta,
|
||||||
|
double elong, double phi, double hm,
|
||||||
|
double xp, double yp, double sp,
|
||||||
|
double refa, double refb,
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A p c o
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
** ebpv double[2][3] Earth barycentric PV (au, au/day, Note 2)
|
||||||
|
** ehp double[3] Earth heliocentric P (au, Note 2)
|
||||||
|
** x,y double CIP X,Y (components of unit vector)
|
||||||
|
** s double the CIO locator s (radians)
|
||||||
|
** theta double Earth rotation angle (radians)
|
||||||
|
** elong double longitude (radians, east +ve, Note 3)
|
||||||
|
** phi double latitude (geodetic, radians, Note 3)
|
||||||
|
** hm double height above ellipsoid (m, geodetic, Note 3)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 4)
|
||||||
|
** sp double the TIO locator s' (radians, Note 4)
|
||||||
|
** refa double refraction constant A (radians, Note 5)
|
||||||
|
** refb double refraction constant B (radians, Note 5)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) The vectors eb, eh, and all the astrom vectors, are with respect
|
||||||
|
** to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN
|
||||||
|
** CONVENTION: the longitude required by the present function is
|
||||||
|
** right-handed, i.e. east-positive, in accordance with geographical
|
||||||
|
** convention.
|
||||||
|
**
|
||||||
|
** 4) xp and yp are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. sp is the TIO locator
|
||||||
|
** s', in radians, which positions the Terrestrial Intermediate
|
||||||
|
** Origin on the equator. For many applications, xp, yp and
|
||||||
|
** (especially) sp can be set to zero.
|
||||||
|
**
|
||||||
|
** Internally, the polar motion is stored in a form rotated onto the
|
||||||
|
** local meridian.
|
||||||
|
**
|
||||||
|
** 5) The refraction constants refa and refb are for use in a
|
||||||
|
** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed
|
||||||
|
** (i.e. refracted) zenith distance and dZ is the amount of
|
||||||
|
** refraction.
|
||||||
|
**
|
||||||
|
** 6) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** 7) In cases where the caller does not wish to provide the Earth
|
||||||
|
** Ephemeris, the Earth rotation information and refraction
|
||||||
|
** constants, the function iauApco13 can be used instead of the
|
||||||
|
** present function. This starts from UTC and weather readings etc.
|
||||||
|
** and computes suitable values using other SOFA functions.
|
||||||
|
**
|
||||||
|
** 8) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 9) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtioq, iauAtoiq, iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauAper astrometry parameters: update ERA
|
||||||
|
** iauC2ixys celestial-to-intermediate matrix, given X,Y and s
|
||||||
|
** iauPvtob position/velocity of terrestrial station
|
||||||
|
** iauTrxpv product of transpose of r-matrix and pv-vector
|
||||||
|
** iauApcs astrometry parameters, ICRS-GCRS, space observer
|
||||||
|
** iauCr copy r-matrix
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double sl, cl, r[3][3], pvc[2][3], pv[2][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Longitude with adjustment for TIO locator s'. */
|
||||||
|
astrom->along = elong + sp;
|
||||||
|
|
||||||
|
/* Polar motion, rotated onto the local meridian. */
|
||||||
|
sl = sin(astrom->along);
|
||||||
|
cl = cos(astrom->along);
|
||||||
|
astrom->xpl = xp*cl - yp*sl;
|
||||||
|
astrom->ypl = xp*sl + yp*cl;
|
||||||
|
|
||||||
|
/* Functions of latitude. */
|
||||||
|
astrom->sphi = sin(phi);
|
||||||
|
astrom->cphi = cos(phi);
|
||||||
|
|
||||||
|
/* Refraction constants. */
|
||||||
|
astrom->refa = refa;
|
||||||
|
astrom->refb = refb;
|
||||||
|
|
||||||
|
/* Local Earth rotation angle. */
|
||||||
|
iauAper(theta, astrom);
|
||||||
|
|
||||||
|
/* Disable the (redundant) diurnal aberration step. */
|
||||||
|
astrom->diurab = 0.0;
|
||||||
|
|
||||||
|
/* CIO based BPN matrix. */
|
||||||
|
iauC2ixys(x, y, s, r);
|
||||||
|
|
||||||
|
/* Observer's geocentric position and velocity (m, m/s, CIRS). */
|
||||||
|
iauPvtob(elong, phi, hm, xp, yp, sp, theta, pvc);
|
||||||
|
|
||||||
|
/* Rotate into GCRS. */
|
||||||
|
iauTrxpv(r, pvc, pv);
|
||||||
|
|
||||||
|
/* ICRS <-> GCRS parameters. */
|
||||||
|
iauApcs(date1, date2, pv, ebpv, ehp, astrom);
|
||||||
|
|
||||||
|
/* Store the CIO based BPN matrix. */
|
||||||
|
iauCr(r, astrom->bpn );
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
328
20200721/c/src/apco13.c
Normal file
328
20200721/c/src/apco13.c
Normal file
@@ -0,0 +1,328 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauApco13(double utc1, double utc2, double dut1,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double phpa, double tc, double rh, double wl,
|
||||||
|
iauASTROM *astrom, double *eo)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A p c o 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** For a terrestrial observer, prepare star-independent astrometry
|
||||||
|
** parameters for transformations between ICRS and observed
|
||||||
|
** coordinates. The caller supplies UTC, site coordinates, ambient air
|
||||||
|
** conditions and observing wavelength, and SOFA models are used to
|
||||||
|
** obtain the Earth ephemeris, CIP/CIO and refraction constants.
|
||||||
|
**
|
||||||
|
** The parameters produced by this function are required in the
|
||||||
|
** parallax, light deflection, aberration, and bias-precession-nutation
|
||||||
|
** parts of the ICRS/CIRS transformations.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** utc1 double UTC as a 2-part...
|
||||||
|
** utc2 double ...quasi Julian Date (Notes 1,2)
|
||||||
|
** dut1 double UT1-UTC (seconds, Note 3)
|
||||||
|
** elong double longitude (radians, east +ve, Note 4)
|
||||||
|
** phi double latitude (geodetic, radians, Note 4)
|
||||||
|
** hm double height above ellipsoid (m, geodetic, Notes 4,6)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 5)
|
||||||
|
** phpa double pressure at the observer (hPa = mB, Note 6)
|
||||||
|
** tc double ambient temperature at the observer (deg C)
|
||||||
|
** rh double relative humidity at the observer (range 0-1)
|
||||||
|
** wl double wavelength (micrometers, Note 7)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
** eo double* equation of the origins (ERA-GST)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 2)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any
|
||||||
|
** convenient way between the two arguments, for example where utc1
|
||||||
|
** is the Julian Day Number and utc2 is the fraction of a day.
|
||||||
|
**
|
||||||
|
** However, JD cannot unambiguously represent UTC during a leap
|
||||||
|
** second unless special measures are taken. The convention in the
|
||||||
|
** present function is that the JD day represents UTC days whether
|
||||||
|
** the length is 86399, 86400 or 86401 SI seconds.
|
||||||
|
**
|
||||||
|
** Applications should use the function iauDtf2d to convert from
|
||||||
|
** calendar date and time of day into 2-part quasi Julian Date, as
|
||||||
|
** it implements the leap-second-ambiguity convention just
|
||||||
|
** described.
|
||||||
|
**
|
||||||
|
** 2) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the
|
||||||
|
** future to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly
|
||||||
|
** one second at the end of each positive UTC leap second,
|
||||||
|
** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This
|
||||||
|
** practice is under review, and in the future UT1-UTC may grow
|
||||||
|
** essentially without limit.
|
||||||
|
**
|
||||||
|
** 4) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 5) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many
|
||||||
|
** applications, xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** Internally, the polar motion is stored in a form rotated onto
|
||||||
|
** the local meridian.
|
||||||
|
**
|
||||||
|
** 6) If hm, the height above the ellipsoid of the observing station
|
||||||
|
** in meters, is not known but phpa, the pressure in hPa (=mB), is
|
||||||
|
** available, an adequate estimate of hm can be obtained from the
|
||||||
|
** expression
|
||||||
|
**
|
||||||
|
** hm = -29.3 * tsl * log ( phpa / 1013.25 );
|
||||||
|
**
|
||||||
|
** where tsl is the approximate sea-level air temperature in K
|
||||||
|
** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section
|
||||||
|
** 52). Similarly, if the pressure phpa is not known, it can be
|
||||||
|
** estimated from the height of the observing station, hm, as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
|
||||||
|
**
|
||||||
|
** Note, however, that the refraction is nearly proportional to
|
||||||
|
** the pressure and that an accurate phpa value is important for
|
||||||
|
** precise work.
|
||||||
|
**
|
||||||
|
** 7) The argument wl specifies the observing wavelength in
|
||||||
|
** micrometers. The transition from optical to radio is assumed to
|
||||||
|
** occur at 100 micrometers (about 3000 GHz).
|
||||||
|
**
|
||||||
|
** 8) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** 9) In cases where the caller wishes to supply his own Earth
|
||||||
|
** ephemeris, Earth rotation information and refraction constants,
|
||||||
|
** the function iauApco can be used instead of the present function.
|
||||||
|
**
|
||||||
|
** 10) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 11) The context structure astrom produced by this function is used
|
||||||
|
** by iauAtioq, iauAtoiq, iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauUtctai UTC to TAI
|
||||||
|
** iauTaitt TAI to TT
|
||||||
|
** iauUtcut1 UTC to UT1
|
||||||
|
** iauEpv00 Earth position and velocity
|
||||||
|
** iauPnm06a classical NPB matrix, IAU 2006/2000A
|
||||||
|
** iauBpn2xy extract CIP X,Y coordinates from NPB matrix
|
||||||
|
** iauS06 the CIO locator s, given X,Y, IAU 2006
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
** iauSp00 the TIO locator s', IERS 2000
|
||||||
|
** iauRefco refraction constants for given ambient conditions
|
||||||
|
** iauApco astrometry parameters, ICRS-observed
|
||||||
|
** iauEors equation of the origins, given NPB matrix and s
|
||||||
|
**
|
||||||
|
** This revision: 2013 December 5
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
double tai1, tai2, tt1, tt2, ut11, ut12, ehpv[2][3], ebpv[2][3],
|
||||||
|
r[3][3], x, y, s, theta, sp, refa, refb;
|
||||||
|
|
||||||
|
|
||||||
|
/* UTC to other time scales. */
|
||||||
|
j = iauUtctai(utc1, utc2, &tai1, &tai2);
|
||||||
|
if ( j < 0 ) return -1;
|
||||||
|
j = iauTaitt(tai1, tai2, &tt1, &tt2);
|
||||||
|
j = iauUtcut1(utc1, utc2, dut1, &ut11, &ut12);
|
||||||
|
if ( j < 0 ) return -1;
|
||||||
|
|
||||||
|
/* Earth barycentric & heliocentric position/velocity (au, au/d). */
|
||||||
|
(void) iauEpv00(tt1, tt2, ehpv, ebpv);
|
||||||
|
|
||||||
|
/* Form the equinox based BPN matrix, IAU 2006/2000A. */
|
||||||
|
iauPnm06a(tt1, tt2, r);
|
||||||
|
|
||||||
|
/* Extract CIP X,Y. */
|
||||||
|
iauBpn2xy(r, &x, &y);
|
||||||
|
|
||||||
|
/* Obtain CIO locator s. */
|
||||||
|
s = iauS06(tt1, tt2, x, y);
|
||||||
|
|
||||||
|
/* Earth rotation angle. */
|
||||||
|
theta = iauEra00(ut11, ut12);
|
||||||
|
|
||||||
|
/* TIO locator s'. */
|
||||||
|
sp = iauSp00(tt1, tt2);
|
||||||
|
|
||||||
|
/* Refraction constants A and B. */
|
||||||
|
iauRefco(phpa, tc, rh, wl, &refa, &refb);
|
||||||
|
|
||||||
|
/* Compute the star-independent astrometry parameters. */
|
||||||
|
iauApco(tt1, tt2, ebpv, ehpv[0], x, y, s, theta,
|
||||||
|
elong, phi, hm, xp, yp, sp, refa, refb, astrom);
|
||||||
|
|
||||||
|
/* Equation of the origins. */
|
||||||
|
*eo = iauEors(r, s);
|
||||||
|
|
||||||
|
/* Return any warning status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
274
20200721/c/src/apcs.c
Normal file
274
20200721/c/src/apcs.c
Normal file
@@ -0,0 +1,274 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApcs(double date1, double date2, double pv[2][3],
|
||||||
|
double ebpv[2][3], double ehp[3],
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A p c s
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
** pv double[2][3] observer's geocentric pos/vel (m, m/s)
|
||||||
|
** ebpv double[2][3] Earth barycentric PV (au, au/day)
|
||||||
|
** ehp double[3] Earth heliocentric P (au)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double unchanged
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) Providing separate arguments for (i) the observer's geocentric
|
||||||
|
** position and velocity and (ii) the Earth ephemeris is done for
|
||||||
|
** convenience in the geocentric, terrestrial and Earth orbit cases.
|
||||||
|
** For deep space applications it maybe more convenient to specify
|
||||||
|
** zero geocentric position and velocity and to supply the
|
||||||
|
** observer's position and velocity information directly instead of
|
||||||
|
** with respect to the Earth. However, note the different units:
|
||||||
|
** m and m/s for the geocentric vectors, au and au/day for the
|
||||||
|
** heliocentric and barycentric vectors.
|
||||||
|
**
|
||||||
|
** 4) In cases where the caller does not wish to provide the Earth
|
||||||
|
** ephemeris, the function iauApcs13 can be used instead of the
|
||||||
|
** present function. This computes the Earth ephemeris using the
|
||||||
|
** SOFA function iauEpv00.
|
||||||
|
**
|
||||||
|
** 5) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 6) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCp copy p-vector
|
||||||
|
** iauPm modulus of p-vector
|
||||||
|
** iauPn decompose p-vector into modulus and direction
|
||||||
|
** iauIr initialize r-matrix to identity
|
||||||
|
**
|
||||||
|
** This revision: 2017 March 16
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* au/d to m/s */
|
||||||
|
const double AUDMS = DAU/DAYSEC;
|
||||||
|
|
||||||
|
/* Light time for 1 au (day) */
|
||||||
|
const double CR = AULT/DAYSEC;
|
||||||
|
|
||||||
|
int i;
|
||||||
|
double dp, dv, pb[3], vb[3], ph[3], v2, w;
|
||||||
|
|
||||||
|
|
||||||
|
/* Time since reference epoch, years (for proper motion calculation). */
|
||||||
|
astrom->pmt = ( (date1 - DJ00) + date2 ) / DJY;
|
||||||
|
|
||||||
|
/* Adjust Earth ephemeris to observer. */
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
dp = pv[0][i] / DAU;
|
||||||
|
dv = pv[1][i] / AUDMS;
|
||||||
|
pb[i] = ebpv[0][i] + dp;
|
||||||
|
vb[i] = ebpv[1][i] + dv;
|
||||||
|
ph[i] = ehp[i] + dp;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Barycentric position of observer (au). */
|
||||||
|
iauCp(pb, astrom->eb);
|
||||||
|
|
||||||
|
/* Heliocentric direction and distance (unit vector and au). */
|
||||||
|
iauPn(ph, &astrom->em, astrom->eh);
|
||||||
|
|
||||||
|
/* Barycentric vel. in units of c, and reciprocal of Lorenz factor. */
|
||||||
|
v2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
w = vb[i] * CR;
|
||||||
|
astrom->v[i] = w;
|
||||||
|
v2 += w*w;
|
||||||
|
}
|
||||||
|
astrom->bm1 = sqrt(1.0 - v2);
|
||||||
|
|
||||||
|
/* Reset the NPB matrix. */
|
||||||
|
iauIr(astrom->bpn);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
232
20200721/c/src/apcs13.c
Normal file
232
20200721/c/src/apcs13.c
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApcs13(double date1, double date2, double pv[2][3],
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A p c s 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** For an observer whose geocentric position and velocity are known,
|
||||||
|
** prepare star-independent astrometry parameters for transformations
|
||||||
|
** between ICRS and GCRS. The Earth ephemeris is from SOFA models.
|
||||||
|
**
|
||||||
|
** The parameters produced by this function are required in the space
|
||||||
|
** motion, parallax, light deflection and aberration parts of the
|
||||||
|
** astrometric transformation chain.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
** pv double[2][3] observer's geocentric pos/vel (Note 3)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double unchanged
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 3) The observer's position and velocity pv are geocentric but with
|
||||||
|
** respect to BCRS axes, and in units of m and m/s. No assumptions
|
||||||
|
** are made about proximity to the Earth, and the function can be
|
||||||
|
** used for deep space applications as well as Earth orbit and
|
||||||
|
** terrestrial.
|
||||||
|
**
|
||||||
|
** 4) In cases where the caller wishes to supply his own Earth
|
||||||
|
** ephemeris, the function iauApcs can be used instead of the present
|
||||||
|
** function.
|
||||||
|
**
|
||||||
|
** 5) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 6) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtciq* and iauAticq*.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauEpv00 Earth position and velocity
|
||||||
|
** iauApcs astrometry parameters, ICRS-GCRS, space observer
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double ehpv[2][3], ebpv[2][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Earth barycentric & heliocentric position/velocity (au, au/d). */
|
||||||
|
(void) iauEpv00(date1, date2, ehpv, ebpv);
|
||||||
|
|
||||||
|
/* Compute the star-independent astrometry parameters. */
|
||||||
|
iauApcs(date1, date2, pv, ebpv, ehpv[0], astrom);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
203
20200721/c/src/aper.c
Normal file
203
20200721/c/src/aper.c
Normal file
@@ -0,0 +1,203 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAper(double theta, iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A p e r
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** In the star-independent astrometry parameters, update only the
|
||||||
|
** Earth rotation angle, supplied by the caller explicitly.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** theta double Earth rotation angle (radians, Note 2)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double not used
|
||||||
|
** eb double[3] not used
|
||||||
|
** eh double[3] not used
|
||||||
|
** em double not used
|
||||||
|
** v double[3] not used
|
||||||
|
** bm1 double not used
|
||||||
|
** bpn double[3][3] not used
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double not used
|
||||||
|
** ypl double not used
|
||||||
|
** sphi double not used
|
||||||
|
** cphi double not used
|
||||||
|
** diurab double not used
|
||||||
|
** eral double not used
|
||||||
|
** refa double not used
|
||||||
|
** refb double not used
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double unchanged
|
||||||
|
** eb double[3] unchanged
|
||||||
|
** eh double[3] unchanged
|
||||||
|
** em double unchanged
|
||||||
|
** v double[3] unchanged
|
||||||
|
** bm1 double unchanged
|
||||||
|
** bpn double[3][3] unchanged
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) This function exists to enable sidereal-tracking applications to
|
||||||
|
** avoid wasteful recomputation of the bulk of the astrometry
|
||||||
|
** parameters: only the Earth rotation is updated.
|
||||||
|
**
|
||||||
|
** 2) For targets expressed as equinox based positions, such as
|
||||||
|
** classical geocentric apparent (RA,Dec), the supplied theta can be
|
||||||
|
** Greenwich apparent sidereal time rather than Earth rotation
|
||||||
|
** angle.
|
||||||
|
**
|
||||||
|
** 3) The function iauAper13 can be used instead of the present
|
||||||
|
** function, and starts from UT1 rather than ERA itself.
|
||||||
|
**
|
||||||
|
** 4) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** This revision: 2013 September 25
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
astrom->eral = theta + astrom->along;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
222
20200721/c/src/aper13.c
Normal file
222
20200721/c/src/aper13.c
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAper13(double ut11, double ut12, iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A p e r 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** In the star-independent astrometry parameters, update only the
|
||||||
|
** Earth rotation angle. The caller provides UT1, (n.b. not UTC).
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ut11 double UT1 as a 2-part...
|
||||||
|
** ut12 double ...Julian Date (Note 1)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double not used
|
||||||
|
** eb double[3] not used
|
||||||
|
** eh double[3] not used
|
||||||
|
** em double not used
|
||||||
|
** v double[3] not used
|
||||||
|
** bm1 double not used
|
||||||
|
** bpn double[3][3] not used
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double not used
|
||||||
|
** ypl double not used
|
||||||
|
** sphi double not used
|
||||||
|
** cphi double not used
|
||||||
|
** diurab double not used
|
||||||
|
** eral double not used
|
||||||
|
** refa double not used
|
||||||
|
** refb double not used
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double unchanged
|
||||||
|
** eb double[3] unchanged
|
||||||
|
** eh double[3] unchanged
|
||||||
|
** em double unchanged
|
||||||
|
** v double[3] unchanged
|
||||||
|
** bm1 double unchanged
|
||||||
|
** bpn double[3][3] unchanged
|
||||||
|
** along double unchanged
|
||||||
|
** xpl double unchanged
|
||||||
|
** ypl double unchanged
|
||||||
|
** sphi double unchanged
|
||||||
|
** cphi double unchanged
|
||||||
|
** diurab double unchanged
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double unchanged
|
||||||
|
** refb double unchanged
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The UT1 date (n.b. not UTC) ut11+ut12 is a Julian Date,
|
||||||
|
** apportioned in any convenient way between the arguments ut11 and
|
||||||
|
** ut12. For example, JD(UT1)=2450123.7 could be expressed in any
|
||||||
|
** of these ways, among others:
|
||||||
|
**
|
||||||
|
** ut11 ut12
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 and MJD methods are good compromises
|
||||||
|
** between resolution and convenience. The date & time method is
|
||||||
|
** best matched to the algorithm used: maximum precision is
|
||||||
|
** delivered when the ut11 argument is for 0hrs UT1 on the day in
|
||||||
|
** question and the ut12 argument lies in the range 0 to 1, or vice
|
||||||
|
** versa.
|
||||||
|
**
|
||||||
|
** 2) If the caller wishes to provide the Earth rotation angle itself,
|
||||||
|
** the function iauAper can be used instead. One use of this
|
||||||
|
** technique is to substitute Greenwich apparent sidereal time and
|
||||||
|
** thereby to support equinox based transformations directly.
|
||||||
|
**
|
||||||
|
** 3) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauAper astrometry parameters: update ERA
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
**
|
||||||
|
** This revision: 2013 September 25
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
iauAper(iauEra00(ut11,ut12), astrom);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
254
20200721/c/src/apio.c
Normal file
254
20200721/c/src/apio.c
Normal file
@@ -0,0 +1,254 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauApio(double sp, double theta,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double refa, double refb,
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u A p i o
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** sp double the TIO locator s' (radians, Note 1)
|
||||||
|
** theta double Earth rotation angle (radians)
|
||||||
|
** elong double longitude (radians, east +ve, Note 2)
|
||||||
|
** phi double geodetic latitude (radians, Note 2)
|
||||||
|
** hm double height above ellipsoid (m, geodetic Note 2)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 3)
|
||||||
|
** refa double refraction constant A (radians, Note 4)
|
||||||
|
** refb double refraction constant B (radians, Note 4)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double unchanged
|
||||||
|
** eb double[3] unchanged
|
||||||
|
** eh double[3] unchanged
|
||||||
|
** em double unchanged
|
||||||
|
** v double[3] unchanged
|
||||||
|
** bm1 double unchanged
|
||||||
|
** bpn double[3][3] unchanged
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) sp, the TIO locator s', is a tiny quantity needed only by the
|
||||||
|
** most precise applications. It can either be set to zero or
|
||||||
|
** predicted using the SOFA function iauSp00.
|
||||||
|
**
|
||||||
|
** 2) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 3) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many applications,
|
||||||
|
** xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** Internally, the polar motion is stored in a form rotated onto the
|
||||||
|
** local meridian.
|
||||||
|
**
|
||||||
|
** 4) The refraction constants refa and refb are for use in a
|
||||||
|
** dZ = A*tan(Z)+B*tan^3(Z) model, where Z is the observed
|
||||||
|
** (i.e. refracted) zenith distance and dZ is the amount of
|
||||||
|
** refraction.
|
||||||
|
**
|
||||||
|
** 5) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** 6) In cases where the caller does not wish to provide the Earth
|
||||||
|
** rotation information and refraction constants, the function
|
||||||
|
** iauApio13 can be used instead of the present function. This
|
||||||
|
** starts from UTC and weather readings etc. and computes suitable
|
||||||
|
** values using other SOFA functions.
|
||||||
|
**
|
||||||
|
** 7) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 8) The context structure astrom produced by this function is used by
|
||||||
|
** iauAtioq and iauAtoiq.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPvtob position/velocity of terrestrial station
|
||||||
|
** iauAper astrometry parameters: update ERA
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double sl, cl, pv[2][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Longitude with adjustment for TIO locator s'. */
|
||||||
|
astrom->along = elong + sp;
|
||||||
|
|
||||||
|
/* Polar motion, rotated onto the local meridian. */
|
||||||
|
sl = sin(astrom->along);
|
||||||
|
cl = cos(astrom->along);
|
||||||
|
astrom->xpl = xp*cl - yp*sl;
|
||||||
|
astrom->ypl = xp*sl + yp*cl;
|
||||||
|
|
||||||
|
/* Functions of latitude. */
|
||||||
|
astrom->sphi = sin(phi);
|
||||||
|
astrom->cphi = cos(phi);
|
||||||
|
|
||||||
|
/* Observer's geocentric position and velocity (m, m/s, CIRS). */
|
||||||
|
iauPvtob(elong, phi, hm, xp, yp, sp, theta, pv);
|
||||||
|
|
||||||
|
/* Magnitude of diurnal aberration vector. */
|
||||||
|
astrom->diurab = sqrt(pv[1][0]*pv[1][0]+pv[1][1]*pv[1][1]) / CMPS;
|
||||||
|
|
||||||
|
/* Refraction constants. */
|
||||||
|
astrom->refa = refa;
|
||||||
|
astrom->refb = refb;
|
||||||
|
|
||||||
|
/* Local Earth rotation angle. */
|
||||||
|
iauAper(theta, astrom);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
300
20200721/c/src/apio13.c
Normal file
300
20200721/c/src/apio13.c
Normal file
@@ -0,0 +1,300 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauApio13(double utc1, double utc2, double dut1,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double phpa, double tc, double rh, double wl,
|
||||||
|
iauASTROM *astrom)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A p i o 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** utc1 double UTC as a 2-part...
|
||||||
|
** utc2 double ...quasi Julian Date (Notes 1,2)
|
||||||
|
** dut1 double UT1-UTC (seconds)
|
||||||
|
** elong double longitude (radians, east +ve, Note 3)
|
||||||
|
** phi double geodetic latitude (radians, Note 3)
|
||||||
|
** hm double height above ellipsoid (m, geodetic Notes 4,6)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 5)
|
||||||
|
** phpa double pressure at the observer (hPa = mB, Note 6)
|
||||||
|
** tc double ambient temperature at the observer (deg C)
|
||||||
|
** rh double relative humidity at the observer (range 0-1)
|
||||||
|
** wl double wavelength (micrometers, Note 7)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double unchanged
|
||||||
|
** eb double[3] unchanged
|
||||||
|
** eh double[3] unchanged
|
||||||
|
** em double unchanged
|
||||||
|
** v double[3] unchanged
|
||||||
|
** bm1 double unchanged
|
||||||
|
** bpn double[3][3] unchanged
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 2)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any
|
||||||
|
** convenient way between the two arguments, for example where utc1
|
||||||
|
** is the Julian Day Number and utc2 is the fraction of a day.
|
||||||
|
**
|
||||||
|
** However, JD cannot unambiguously represent UTC during a leap
|
||||||
|
** second unless special measures are taken. The convention in the
|
||||||
|
** present function is that the JD day represents UTC days whether
|
||||||
|
** the length is 86399, 86400 or 86401 SI seconds.
|
||||||
|
**
|
||||||
|
** Applications should use the function iauDtf2d to convert from
|
||||||
|
** calendar date and time of day into 2-part quasi Julian Date, as
|
||||||
|
** it implements the leap-second-ambiguity convention just
|
||||||
|
** described.
|
||||||
|
**
|
||||||
|
** 2) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the future
|
||||||
|
** to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly
|
||||||
|
** one second at the end of each positive UTC leap second,
|
||||||
|
** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This
|
||||||
|
** practice is under review, and in the future UT1-UTC may grow
|
||||||
|
** essentially without limit.
|
||||||
|
**
|
||||||
|
** 4) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 5) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many applications,
|
||||||
|
** xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** Internally, the polar motion is stored in a form rotated onto
|
||||||
|
** the local meridian.
|
||||||
|
**
|
||||||
|
** 6) If hm, the height above the ellipsoid of the observing station
|
||||||
|
** in meters, is not known but phpa, the pressure in hPa (=mB), is
|
||||||
|
** available, an adequate estimate of hm can be obtained from the
|
||||||
|
** expression
|
||||||
|
**
|
||||||
|
** hm = -29.3 * tsl * log ( phpa / 1013.25 );
|
||||||
|
**
|
||||||
|
** where tsl is the approximate sea-level air temperature in K
|
||||||
|
** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section
|
||||||
|
** 52). Similarly, if the pressure phpa is not known, it can be
|
||||||
|
** estimated from the height of the observing station, hm, as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
|
||||||
|
**
|
||||||
|
** Note, however, that the refraction is nearly proportional to the
|
||||||
|
** pressure and that an accurate phpa value is important for
|
||||||
|
** precise work.
|
||||||
|
**
|
||||||
|
** 7) The argument wl specifies the observing wavelength in
|
||||||
|
** micrometers. The transition from optical to radio is assumed to
|
||||||
|
** occur at 100 micrometers (about 3000 GHz).
|
||||||
|
**
|
||||||
|
** 8) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** 9) In cases where the caller wishes to supply his own Earth
|
||||||
|
** rotation information and refraction constants, the function
|
||||||
|
** iauApc can be used instead of the present function.
|
||||||
|
**
|
||||||
|
** 10) This is one of several functions that inserts into the astrom
|
||||||
|
** structure star-independent parameters needed for the chain of
|
||||||
|
** astrometric transformations ICRS <-> GCRS <-> CIRS <-> observed.
|
||||||
|
**
|
||||||
|
** The various functions support different classes of observer and
|
||||||
|
** portions of the transformation chain:
|
||||||
|
**
|
||||||
|
** functions observer transformation
|
||||||
|
**
|
||||||
|
** iauApcg iauApcg13 geocentric ICRS <-> GCRS
|
||||||
|
** iauApci iauApci13 terrestrial ICRS <-> CIRS
|
||||||
|
** iauApco iauApco13 terrestrial ICRS <-> observed
|
||||||
|
** iauApcs iauApcs13 space ICRS <-> GCRS
|
||||||
|
** iauAper iauAper13 terrestrial update Earth rotation
|
||||||
|
** iauApio iauApio13 terrestrial CIRS <-> observed
|
||||||
|
**
|
||||||
|
** Those with names ending in "13" use contemporary SOFA models to
|
||||||
|
** compute the various ephemerides. The others accept ephemerides
|
||||||
|
** supplied by the caller.
|
||||||
|
**
|
||||||
|
** The transformation from ICRS to GCRS covers space motion,
|
||||||
|
** parallax, light deflection, and aberration. From GCRS to CIRS
|
||||||
|
** comprises frame bias and precession-nutation. From CIRS to
|
||||||
|
** observed takes account of Earth rotation, polar motion, diurnal
|
||||||
|
** aberration and parallax (unless subsumed into the ICRS <-> GCRS
|
||||||
|
** transformation), and atmospheric refraction.
|
||||||
|
**
|
||||||
|
** 11) The context structure astrom produced by this function is used
|
||||||
|
** by iauAtioq and iauAtoiq.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauUtctai UTC to TAI
|
||||||
|
** iauTaitt TAI to TT
|
||||||
|
** iauUtcut1 UTC to UT1
|
||||||
|
** iauSp00 the TIO locator s', IERS 2000
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
** iauRefco refraction constants for given ambient conditions
|
||||||
|
** iauApio astrometry parameters, CIRS-observed
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
double tai1, tai2, tt1, tt2, ut11, ut12, sp, theta, refa, refb;
|
||||||
|
|
||||||
|
|
||||||
|
/* UTC to other time scales. */
|
||||||
|
j = iauUtctai(utc1, utc2, &tai1, &tai2);
|
||||||
|
if ( j < 0 ) return -1;
|
||||||
|
j = iauTaitt(tai1, tai2, &tt1, &tt2);
|
||||||
|
j = iauUtcut1(utc1, utc2, dut1, &ut11, &ut12);
|
||||||
|
if ( j < 0 ) return -1;
|
||||||
|
|
||||||
|
/* TIO locator s'. */
|
||||||
|
sp = iauSp00(tt1, tt2);
|
||||||
|
|
||||||
|
/* Earth rotation angle. */
|
||||||
|
theta = iauEra00(ut11, ut12);
|
||||||
|
|
||||||
|
/* Refraction constants A and B. */
|
||||||
|
iauRefco(phpa, tc, rh, wl, &refa, &refb);
|
||||||
|
|
||||||
|
/* CIRS <-> observed astrometry parameters. */
|
||||||
|
iauApio(sp, theta, elong, phi, hm, xp, yp, refa, refb, astrom);
|
||||||
|
|
||||||
|
/* Return any warning status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
200
20200721/c/src/atci13.c
Normal file
200
20200721/c/src/atci13.c
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtci13(double rc, double dc,
|
||||||
|
double pr, double pd, double px, double rv,
|
||||||
|
double date1, double date2,
|
||||||
|
double *ri, double *di, double *eo)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t c i 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Transform ICRS star data, epoch J2000.0, to CIRS.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rc double ICRS right ascension at J2000.0 (radians, Note 1)
|
||||||
|
** dc double ICRS declination at J2000.0 (radians, Note 1)
|
||||||
|
** pr double RA proper motion (radians/year; Note 2)
|
||||||
|
** pd double Dec proper motion (radians/year)
|
||||||
|
** px double parallax (arcsec)
|
||||||
|
** rv double radial velocity (km/s, +ve if receding)
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 3)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ri,di double* CIRS geocentric RA,Dec (radians)
|
||||||
|
** eo double* equation of the origins (ERA-GST, Note 5)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) Star data for an epoch other than J2000.0 (for example from the
|
||||||
|
** Hipparcos catalog, which has an epoch of J1991.25) will require a
|
||||||
|
** preliminary call to iauPmsafe before use.
|
||||||
|
**
|
||||||
|
** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
|
||||||
|
**
|
||||||
|
** 3) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 4) The available accuracy is better than 1 milliarcsecond, limited
|
||||||
|
** mainly by the precession-nutation model that is used, namely
|
||||||
|
** IAU 2000A/2006. Very close to solar system bodies, additional
|
||||||
|
** errors of up to several milliarcseconds can occur because of
|
||||||
|
** unmodeled light deflection; however, the Sun's contribution is
|
||||||
|
** taken into account, to first order. The accuracy limitations of
|
||||||
|
** the SOFA function iauEpv00 (used to compute Earth position and
|
||||||
|
** velocity) can contribute aberration errors of up to
|
||||||
|
** 5 microarcseconds. Light deflection at the Sun's limb is
|
||||||
|
** uncertain at the 0.4 mas level.
|
||||||
|
**
|
||||||
|
** 5) Should the transformation to (equinox based) apparent place be
|
||||||
|
** required rather than (CIO based) intermediate place, subtract the
|
||||||
|
** equation of the origins from the returned right ascension:
|
||||||
|
** RA = RI - EO. (The iauAnp function can then be applied, as
|
||||||
|
** required, to keep the result in the conventional 0-2pi range.)
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApci13 astrometry parameters, ICRS-CIRS, 2013
|
||||||
|
** iauAtciq quick ICRS to CIRS
|
||||||
|
**
|
||||||
|
** This revision: 2017 March 12
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Star-independent astrometry parameters */
|
||||||
|
iauASTROM astrom;
|
||||||
|
|
||||||
|
|
||||||
|
/* The transformation parameters. */
|
||||||
|
iauApci13(date1, date2, &astrom, eo);
|
||||||
|
|
||||||
|
/* ICRS (epoch J2000.0) to CIRS. */
|
||||||
|
iauAtciq(rc, dc, pr, pd, px, rv, &astrom, ri, di);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
195
20200721/c/src/atciq.c
Normal file
195
20200721/c/src/atciq.c
Normal file
@@ -0,0 +1,195 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtciq(double rc, double dc,
|
||||||
|
double pr, double pd, double px, double rv,
|
||||||
|
iauASTROM *astrom, double *ri, double *di)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u A t c i q
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed
|
||||||
|
** star-independent astrometry parameters.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are to be transformed for one date. The
|
||||||
|
** star-independent parameters can be obtained by calling one of the
|
||||||
|
** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
|
||||||
|
**
|
||||||
|
** If the parallax and proper motions are zero the iauAtciqz function
|
||||||
|
** can be used instead.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rc,dc double ICRS RA,Dec at J2000.0 (radians)
|
||||||
|
** pr double RA proper motion (radians/year; Note 3)
|
||||||
|
** pd double Dec proper motion (radians/year)
|
||||||
|
** px double parallax (arcsec)
|
||||||
|
** rv double radial velocity (km/s, +ve if receding)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ri,di double CIRS RA,Dec (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) All the vectors are with respect to BCRS axes.
|
||||||
|
**
|
||||||
|
** 2) Star data for an epoch other than J2000.0 (for example from the
|
||||||
|
** Hipparcos catalog, which has an epoch of J1991.25) will require a
|
||||||
|
** preliminary call to iauPmsafe before use.
|
||||||
|
**
|
||||||
|
** 3) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPmpx proper motion and parallax
|
||||||
|
** iauLdsun light deflection by the Sun
|
||||||
|
** iauAb stellar aberration
|
||||||
|
** iauRxp product of r-matrix and pv-vector
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range 0 to 2pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double pco[3], pnat[3], ppr[3], pi[3], w;
|
||||||
|
|
||||||
|
|
||||||
|
/* Proper motion and parallax, giving BCRS coordinate direction. */
|
||||||
|
iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco);
|
||||||
|
|
||||||
|
/* Light deflection by the Sun, giving BCRS natural direction. */
|
||||||
|
iauLdsun(pco, astrom->eh, astrom->em, pnat);
|
||||||
|
|
||||||
|
/* Aberration, giving GCRS proper direction. */
|
||||||
|
iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr);
|
||||||
|
|
||||||
|
/* Bias-precession-nutation, giving CIRS proper direction. */
|
||||||
|
iauRxp(astrom->bpn, ppr, pi);
|
||||||
|
|
||||||
|
/* CIRS RA,Dec. */
|
||||||
|
iauC2s(pi, &w, di);
|
||||||
|
*ri = iauAnp(w);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
232
20200721/c/src/atciqn.c
Normal file
232
20200721/c/src/atciqn.c
Normal file
@@ -0,0 +1,232 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtciqn(double rc, double dc, double pr, double pd,
|
||||||
|
double px, double rv, iauASTROM *astrom,
|
||||||
|
int n, iauLDBODY b[], double *ri, double *di)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t c i q n
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick ICRS, epoch J2000.0, to CIRS transformation, given precomputed
|
||||||
|
** star-independent astrometry parameters plus a list of light-
|
||||||
|
** deflecting bodies.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are to be transformed for one date. The
|
||||||
|
** star-independent parameters can be obtained by calling one of the
|
||||||
|
** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
|
||||||
|
**
|
||||||
|
**
|
||||||
|
** If the only light-deflecting body to be taken into account is the
|
||||||
|
** Sun, the iauAtciq function can be used instead. If in addition the
|
||||||
|
** parallax and proper motions are zero, the iauAtciqz function can be
|
||||||
|
** used.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rc,dc double ICRS RA,Dec at J2000.0 (radians)
|
||||||
|
** pr double RA proper motion (radians/year; Note 3)
|
||||||
|
** pd double Dec proper motion (radians/year)
|
||||||
|
** px double parallax (arcsec)
|
||||||
|
** rv double radial velocity (km/s, +ve if receding)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
** n int number of bodies (Note 3)
|
||||||
|
** b iauLDBODY[n] data for each of the n bodies (Notes 3,4):
|
||||||
|
** bm double mass of the body (solar masses, Note 5)
|
||||||
|
** dl double deflection limiter (Note 6)
|
||||||
|
** pv [2][3] barycentric PV of the body (au, au/day)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ri,di double CIRS RA,Dec (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) Star data for an epoch other than J2000.0 (for example from the
|
||||||
|
** Hipparcos catalog, which has an epoch of J1991.25) will require a
|
||||||
|
** preliminary call to iauPmsafe before use.
|
||||||
|
**
|
||||||
|
** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
|
||||||
|
**
|
||||||
|
** 3) The struct b contains n entries, one for each body to be
|
||||||
|
** considered. If n = 0, no gravitational light deflection will be
|
||||||
|
** applied, not even for the Sun.
|
||||||
|
**
|
||||||
|
** 4) The struct b should include an entry for the Sun as well as for
|
||||||
|
** any planet or other body to be taken into account. The entries
|
||||||
|
** should be in the order in which the light passes the body.
|
||||||
|
**
|
||||||
|
** 5) In the entry in the b struct for body i, the mass parameter
|
||||||
|
** b[i].bm can, as required, be adjusted in order to allow for such
|
||||||
|
** effects as quadrupole field.
|
||||||
|
**
|
||||||
|
** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is
|
||||||
|
** the angular separation (in radians) between star and body at
|
||||||
|
** which limiting is applied. As phi shrinks below the chosen
|
||||||
|
** threshold, the deflection is artificially reduced, reaching zero
|
||||||
|
** for phi = 0. Example values suitable for a terrestrial
|
||||||
|
** observer, together with masses, are as follows:
|
||||||
|
**
|
||||||
|
** body i b[i].bm b[i].dl
|
||||||
|
**
|
||||||
|
** Sun 1.0 6e-6
|
||||||
|
** Jupiter 0.00095435 3e-9
|
||||||
|
** Saturn 0.00028574 3e-10
|
||||||
|
**
|
||||||
|
** 7) For efficiency, validation of the contents of the b array is
|
||||||
|
** omitted. The supplied masses must be greater than zero, the
|
||||||
|
** position and velocity vectors must be right, and the deflection
|
||||||
|
** limiter greater than zero.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPmpx proper motion and parallax
|
||||||
|
** iauLdn light deflection by n bodies
|
||||||
|
** iauAb stellar aberration
|
||||||
|
** iauRxp product of r-matrix and pv-vector
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range 0 to 2pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double pco[3], pnat[3], ppr[3], pi[3], w;
|
||||||
|
|
||||||
|
|
||||||
|
/* Proper motion and parallax, giving BCRS coordinate direction. */
|
||||||
|
iauPmpx(rc, dc, pr, pd, px, rv, astrom->pmt, astrom->eb, pco);
|
||||||
|
|
||||||
|
/* Light deflection, giving BCRS natural direction. */
|
||||||
|
iauLdn(n, b, astrom->eb, pco, pnat);
|
||||||
|
|
||||||
|
/* Aberration, giving GCRS proper direction. */
|
||||||
|
iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr);
|
||||||
|
|
||||||
|
/* Bias-precession-nutation, giving CIRS proper direction. */
|
||||||
|
iauRxp(astrom->bpn, ppr, pi);
|
||||||
|
|
||||||
|
/* CIRS RA,Dec. */
|
||||||
|
iauC2s(pi, &w, di);
|
||||||
|
*ri = iauAnp(w);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
194
20200721/c/src/atciqz.c
Normal file
194
20200721/c/src/atciqz.c
Normal file
@@ -0,0 +1,194 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtciqz(double rc, double dc, iauASTROM *astrom,
|
||||||
|
double *ri, double *di)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t c i q z
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick ICRS to CIRS transformation, given precomputed star-
|
||||||
|
** independent astrometry parameters, and assuming zero parallax and
|
||||||
|
** proper motion.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are to be transformed for one date. The
|
||||||
|
** star-independent parameters can be obtained by calling one of the
|
||||||
|
** functions iauApci[13], iauApcg[13], iauApco[13] or iauApcs[13].
|
||||||
|
**
|
||||||
|
** The corresponding function for the case of non-zero parallax and
|
||||||
|
** proper motion is iauAtciq.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rc,dc double ICRS astrometric RA,Dec (radians)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ri,di double 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:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauLdsun light deflection due to Sun
|
||||||
|
** iauAb stellar aberration
|
||||||
|
** iauRxp product of r-matrix and p-vector
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range +/- pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double pco[3], pnat[3], ppr[3], pi[3], w;
|
||||||
|
|
||||||
|
|
||||||
|
/* BCRS coordinate direction (unit vector). */
|
||||||
|
iauS2c(rc, dc, pco);
|
||||||
|
|
||||||
|
/* Light deflection by the Sun, giving BCRS natural direction. */
|
||||||
|
iauLdsun(pco, astrom->eh, astrom->em, pnat);
|
||||||
|
|
||||||
|
/* Aberration, giving GCRS proper direction. */
|
||||||
|
iauAb(pnat, astrom->v, astrom->em, astrom->bm1, ppr);
|
||||||
|
|
||||||
|
/* Bias-precession-nutation, giving CIRS proper direction. */
|
||||||
|
iauRxp(astrom->bpn, ppr, pi);
|
||||||
|
|
||||||
|
/* CIRS RA,Dec. */
|
||||||
|
iauC2s(pi, &w, di);
|
||||||
|
*ri = iauAnp(w);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
284
20200721/c/src/atco13.c
Normal file
284
20200721/c/src/atco13.c
Normal file
@@ -0,0 +1,284 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauAtco13(double rc, double dc,
|
||||||
|
double pr, double pd, double px, double rv,
|
||||||
|
double utc1, double utc2, double dut1,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double phpa, double tc, double rh, double wl,
|
||||||
|
double *aob, double *zob, double *hob,
|
||||||
|
double *dob, double *rob, double *eo)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t c o 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** ICRS RA,Dec to observed place. The caller supplies UTC, site
|
||||||
|
** coordinates, ambient air conditions and observing wavelength.
|
||||||
|
**
|
||||||
|
** SOFA models are used for the Earth ephemeris, bias-precession-
|
||||||
|
** nutation, Earth orientation and refraction.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rc,dc double ICRS right ascension at J2000.0 (radians, Note 1)
|
||||||
|
** pr double RA proper motion (radians/year; Note 2)
|
||||||
|
** pd double Dec proper motion (radians/year)
|
||||||
|
** px double parallax (arcsec)
|
||||||
|
** rv double radial velocity (km/s, +ve if receding)
|
||||||
|
** utc1 double UTC as a 2-part...
|
||||||
|
** utc2 double ...quasi Julian Date (Notes 3-4)
|
||||||
|
** dut1 double UT1-UTC (seconds, Note 5)
|
||||||
|
** elong double longitude (radians, east +ve, Note 6)
|
||||||
|
** phi double latitude (geodetic, radians, Note 6)
|
||||||
|
** hm double height above ellipsoid (m, geodetic, Notes 6,8)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 7)
|
||||||
|
** phpa double pressure at the observer (hPa = mB, Note 8)
|
||||||
|
** tc double ambient temperature at the observer (deg C)
|
||||||
|
** rh double relative humidity at the observer (range 0-1)
|
||||||
|
** wl double wavelength (micrometers, Note 9)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** aob double* observed azimuth (radians: N=0,E=90)
|
||||||
|
** zob double* observed zenith distance (radians)
|
||||||
|
** hob double* observed hour angle (radians)
|
||||||
|
** dob double* observed declination (radians)
|
||||||
|
** rob double* observed right ascension (CIO-based, radians)
|
||||||
|
** eo double* equation of the origins (ERA-GST)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 4)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) Star data for an epoch other than J2000.0 (for example from the
|
||||||
|
** Hipparcos catalog, which has an epoch of J1991.25) will require
|
||||||
|
** a preliminary call to iauPmsafe before use.
|
||||||
|
**
|
||||||
|
** 2) The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt.
|
||||||
|
**
|
||||||
|
** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any
|
||||||
|
** convenient way between the two arguments, for example where utc1
|
||||||
|
** is the Julian Day Number and utc2 is the fraction of a day.
|
||||||
|
**
|
||||||
|
** However, JD cannot unambiguously represent UTC during a leap
|
||||||
|
** second unless special measures are taken. The convention in the
|
||||||
|
** present function is that the JD day represents UTC days whether
|
||||||
|
** the length is 86399, 86400 or 86401 SI seconds.
|
||||||
|
**
|
||||||
|
** Applications should use the function iauDtf2d to convert from
|
||||||
|
** calendar date and time of day into 2-part quasi Julian Date, as
|
||||||
|
** it implements the leap-second-ambiguity convention just
|
||||||
|
** described.
|
||||||
|
**
|
||||||
|
** 4) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the
|
||||||
|
** future to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly
|
||||||
|
** one second at the end of each positive UTC leap second,
|
||||||
|
** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This
|
||||||
|
** practice is under review, and in the future UT1-UTC may grow
|
||||||
|
** essentially without limit.
|
||||||
|
**
|
||||||
|
** 6) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 7) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many
|
||||||
|
** applications, xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** 8) If hm, the height above the ellipsoid of the observing station
|
||||||
|
** in meters, is not known but phpa, the pressure in hPa (=mB),
|
||||||
|
** is available, an adequate estimate of hm can be obtained from
|
||||||
|
** the expression
|
||||||
|
**
|
||||||
|
** hm = -29.3 * tsl * log ( phpa / 1013.25 );
|
||||||
|
**
|
||||||
|
** where tsl is the approximate sea-level air temperature in K
|
||||||
|
** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section
|
||||||
|
** 52). Similarly, if the pressure phpa is not known, it can be
|
||||||
|
** estimated from the height of the observing station, hm, as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
|
||||||
|
**
|
||||||
|
** Note, however, that the refraction is nearly proportional to
|
||||||
|
** the pressure and that an accurate phpa value is important for
|
||||||
|
** precise work.
|
||||||
|
**
|
||||||
|
** 9) The argument wl specifies the observing wavelength in
|
||||||
|
** micrometers. The transition from optical to radio is assumed to
|
||||||
|
** occur at 100 micrometers (about 3000 GHz).
|
||||||
|
**
|
||||||
|
** 10) The accuracy of the result is limited by the corrections for
|
||||||
|
** refraction, which use a simple A*tan(z) + B*tan^3(z) model.
|
||||||
|
** Providing the meteorological parameters are known accurately and
|
||||||
|
** there are no gross local effects, the predicted observed
|
||||||
|
** coordinates should be within 0.05 arcsec (optical) or 1 arcsec
|
||||||
|
** (radio) for a zenith distance of less than 70 degrees, better
|
||||||
|
** than 30 arcsec (optical or radio) at 85 degrees and better
|
||||||
|
** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
|
||||||
|
**
|
||||||
|
** Without refraction, the complementary functions iauAtco13 and
|
||||||
|
** iauAtoc13 are self-consistent to better than 1 microarcsecond
|
||||||
|
** all over the celestial sphere. With refraction included,
|
||||||
|
** consistency falls off at high zenith distances, but is still
|
||||||
|
** better than 0.05 arcsec at 85 degrees.
|
||||||
|
**
|
||||||
|
** 11) "Observed" Az,ZD means the position that would be seen by a
|
||||||
|
** perfect geodetically aligned theodolite. (Zenith distance is
|
||||||
|
** used rather than altitude in order to reflect the fact that no
|
||||||
|
** allowance is made for depression of the horizon.) This is
|
||||||
|
** related to the observed HA,Dec via the standard rotation, using
|
||||||
|
** the geodetic latitude (corrected for polar motion), while the
|
||||||
|
** observed HA and RA are related simply through the Earth rotation
|
||||||
|
** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus
|
||||||
|
** means the position that would be seen by a perfect equatorial
|
||||||
|
** with its polar axis aligned to the Earth's axis of rotation.
|
||||||
|
**
|
||||||
|
** 12) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApco13 astrometry parameters, ICRS-observed, 2013
|
||||||
|
** iauAtciq quick ICRS to CIRS
|
||||||
|
** iauAtioq quick CIRS to observed
|
||||||
|
**
|
||||||
|
** This revision: 2016 February 2
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
iauASTROM astrom;
|
||||||
|
double ri, di;
|
||||||
|
|
||||||
|
|
||||||
|
/* Star-independent astrometry parameters. */
|
||||||
|
j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, &astrom, eo);
|
||||||
|
|
||||||
|
/* Abort if bad UTC. */
|
||||||
|
if ( j < 0 ) return j;
|
||||||
|
|
||||||
|
/* Transform ICRS to CIRS. */
|
||||||
|
iauAtciq(rc, dc, pr, pd, px, rv, &astrom, &ri, &di);
|
||||||
|
|
||||||
|
/* Transform CIRS to observed. */
|
||||||
|
iauAtioq(ri, di, &astrom, aob, zob, hob, dob, rob);
|
||||||
|
|
||||||
|
/* Return OK/warning status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
193
20200721/c/src/atic13.c
Normal file
193
20200721/c/src/atic13.c
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtic13(double ri, double di, double date1, double date2,
|
||||||
|
double *rc, double *dc, double *eo)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t i c 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Transform star RA,Dec from geocentric CIRS to ICRS astrometric.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ri,di double CIRS geocentric RA,Dec (radians)
|
||||||
|
** date1 double TDB as a 2-part...
|
||||||
|
** date2 double ...Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc,dc double ICRS astrometric RA,Dec (radians)
|
||||||
|
** eo double equation of the origins (ERA-GST, Note 4)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TDB date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TDB)=2450123.7 could be expressed in any of these ways, among
|
||||||
|
** others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in cases
|
||||||
|
** where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 method is best matched to the way the
|
||||||
|
** argument is handled internally and will deliver the optimum
|
||||||
|
** resolution. The MJD method and the date & time methods are both
|
||||||
|
** good compromises between resolution and convenience. For most
|
||||||
|
** applications of this function the choice will not be at all
|
||||||
|
** critical.
|
||||||
|
**
|
||||||
|
** TT can be used instead of TDB without any significant impact on
|
||||||
|
** accuracy.
|
||||||
|
**
|
||||||
|
** 2) Iterative techniques are used for the aberration and light
|
||||||
|
** deflection corrections so that the functions iauAtic13 (or
|
||||||
|
** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses;
|
||||||
|
** even at the edge of the Sun's disk the discrepancy is only about
|
||||||
|
** 1 nanoarcsecond.
|
||||||
|
**
|
||||||
|
** 3) The available accuracy is better than 1 milliarcsecond, limited
|
||||||
|
** mainly by the precession-nutation model that is used, namely
|
||||||
|
** IAU 2000A/2006. Very close to solar system bodies, additional
|
||||||
|
** errors of up to several milliarcseconds can occur because of
|
||||||
|
** unmodeled light deflection; however, the Sun's contribution is
|
||||||
|
** taken into account, to first order. The accuracy limitations of
|
||||||
|
** the SOFA function iauEpv00 (used to compute Earth position and
|
||||||
|
** velocity) can contribute aberration errors of up to
|
||||||
|
** 5 microarcseconds. Light deflection at the Sun's limb is
|
||||||
|
** uncertain at the 0.4 mas level.
|
||||||
|
**
|
||||||
|
** 4) Should the transformation to (equinox based) J2000.0 mean place
|
||||||
|
** be required rather than (CIO based) ICRS coordinates, subtract the
|
||||||
|
** equation of the origins from the returned right ascension:
|
||||||
|
** RA = RI - EO. (The iauAnp function can then be applied, as
|
||||||
|
** required, to keep the result in the conventional 0-2pi range.)
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApci13 astrometry parameters, ICRS-CIRS, 2013
|
||||||
|
** iauAticq quick CIRS to ICRS astrometric
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Star-independent astrometry parameters */
|
||||||
|
iauASTROM astrom;
|
||||||
|
|
||||||
|
|
||||||
|
/* Star-independent astrometry parameters. */
|
||||||
|
iauApci13(date1, date2, &astrom, eo);
|
||||||
|
|
||||||
|
/* CIRS to ICRS astrometric. */
|
||||||
|
iauAticq(ri, di, &astrom, rc, dc);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
240
20200721/c/src/aticq.c
Normal file
240
20200721/c/src/aticq.c
Normal file
@@ -0,0 +1,240 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAticq(double ri, double di, iauASTROM *astrom,
|
||||||
|
double *rc, double *dc)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u A t i c q
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick CIRS RA,Dec to ICRS astrometric place, given the star-
|
||||||
|
** independent astrometry parameters.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are all to be transformed for one date.
|
||||||
|
** The star-independent astrometry parameters can be obtained by
|
||||||
|
** calling one of the functions iauApci[13], iauApcg[13], iauApco[13]
|
||||||
|
** or iauApcs[13].
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ri,di double CIRS RA,Dec (radians)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc,dc double ICRS astrometric RA,Dec (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) Only the Sun is taken into account in the light deflection
|
||||||
|
** correction.
|
||||||
|
**
|
||||||
|
** 2) Iterative techniques are used for the aberration and light
|
||||||
|
** deflection corrections so that the functions iauAtic13 (or
|
||||||
|
** iauAticq) and iauAtci13 (or iauAtciq) are accurate inverses;
|
||||||
|
** even at the edge of the Sun's disk the discrepancy is only about
|
||||||
|
** 1 nanoarcsecond.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauTrxp product of transpose of r-matrix and p-vector
|
||||||
|
** iauZp zero p-vector
|
||||||
|
** iauAb stellar aberration
|
||||||
|
** iauLdsun light deflection by the Sun
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range +/- pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j, i;
|
||||||
|
double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r,
|
||||||
|
after[3];
|
||||||
|
|
||||||
|
|
||||||
|
/* CIRS RA,Dec to Cartesian. */
|
||||||
|
iauS2c(ri, di, pi);
|
||||||
|
|
||||||
|
/* Bias-precession-nutation, giving GCRS proper direction. */
|
||||||
|
iauTrxp(astrom->bpn, pi, ppr);
|
||||||
|
|
||||||
|
/* Aberration, giving GCRS natural direction. */
|
||||||
|
iauZp(d);
|
||||||
|
for (j = 0; j < 2; j++) {
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
w = ppr[i] - d[i];
|
||||||
|
before[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
before[i] /= r;
|
||||||
|
}
|
||||||
|
iauAb(before, astrom->v, astrom->em, astrom->bm1, after);
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
d[i] = after[i] - before[i];
|
||||||
|
w = ppr[i] - d[i];
|
||||||
|
pnat[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
pnat[i] /= r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Light deflection by the Sun, giving BCRS coordinate direction. */
|
||||||
|
iauZp(d);
|
||||||
|
for (j = 0; j < 5; j++) {
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
w = pnat[i] - d[i];
|
||||||
|
before[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
before[i] /= r;
|
||||||
|
}
|
||||||
|
iauLdsun(before, astrom->eh, astrom->em, after);
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
d[i] = after[i] - before[i];
|
||||||
|
w = pnat[i] - d[i];
|
||||||
|
pco[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
pco[i] /= r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ICRS astrometric RA,Dec. */
|
||||||
|
iauC2s(pco, &w, dc);
|
||||||
|
*rc = iauAnp(w);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
278
20200721/c/src/aticqn.c
Normal file
278
20200721/c/src/aticqn.c
Normal file
@@ -0,0 +1,278 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAticqn(double ri, double di, iauASTROM *astrom,
|
||||||
|
int n, iauLDBODY b[], double *rc, double *dc)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t i c q n
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick CIRS to ICRS astrometric place transformation, given the star-
|
||||||
|
** independent astrometry parameters plus a list of light-deflecting
|
||||||
|
** bodies.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are all to be transformed for one date.
|
||||||
|
** The star-independent astrometry parameters can be obtained by
|
||||||
|
** calling one of the functions iauApci[13], iauApcg[13], iauApco[13]
|
||||||
|
** or iauApcs[13].
|
||||||
|
*
|
||||||
|
* If the only light-deflecting body to be taken into account is the
|
||||||
|
* Sun, the iauAticq function can be used instead.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ri,di double CIRS RA,Dec (radians)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
** n int number of bodies (Note 3)
|
||||||
|
** b iauLDBODY[n] data for each of the n bodies (Notes 3,4):
|
||||||
|
** bm double mass of the body (solar masses, Note 5)
|
||||||
|
** dl double deflection limiter (Note 6)
|
||||||
|
** pv [2][3] barycentric PV of the body (au, au/day)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc,dc double ICRS astrometric RA,Dec (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) Iterative techniques are used for the aberration and light
|
||||||
|
** deflection corrections so that the functions iauAticqn and
|
||||||
|
** iauAtciqn are accurate inverses; even at the edge of the Sun's
|
||||||
|
** disk the discrepancy is only about 1 nanoarcsecond.
|
||||||
|
**
|
||||||
|
** 2) If the only light-deflecting body to be taken into account is the
|
||||||
|
** Sun, the iauAticq function can be used instead.
|
||||||
|
**
|
||||||
|
** 3) The struct b contains n entries, one for each body to be
|
||||||
|
** considered. If n = 0, no gravitational light deflection will be
|
||||||
|
** applied, not even for the Sun.
|
||||||
|
**
|
||||||
|
** 4) The struct b should include an entry for the Sun as well as for
|
||||||
|
** any planet or other body to be taken into account. The entries
|
||||||
|
** should be in the order in which the light passes the body.
|
||||||
|
**
|
||||||
|
** 5) In the entry in the b struct for body i, the mass parameter
|
||||||
|
** b[i].bm can, as required, be adjusted in order to allow for such
|
||||||
|
** effects as quadrupole field.
|
||||||
|
**
|
||||||
|
** 6) The deflection limiter parameter b[i].dl is phi^2/2, where phi is
|
||||||
|
** the angular separation (in radians) between star and body at
|
||||||
|
** which limiting is applied. As phi shrinks below the chosen
|
||||||
|
** threshold, the deflection is artificially reduced, reaching zero
|
||||||
|
** for phi = 0. Example values suitable for a terrestrial
|
||||||
|
** observer, together with masses, are as follows:
|
||||||
|
**
|
||||||
|
** body i b[i].bm b[i].dl
|
||||||
|
**
|
||||||
|
** Sun 1.0 6e-6
|
||||||
|
** Jupiter 0.00095435 3e-9
|
||||||
|
** Saturn 0.00028574 3e-10
|
||||||
|
**
|
||||||
|
** 7) For efficiency, validation of the contents of the b array is
|
||||||
|
** omitted. The supplied masses must be greater than zero, the
|
||||||
|
** position and velocity vectors must be right, and the deflection
|
||||||
|
** limiter greater than zero.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauTrxp product of transpose of r-matrix and p-vector
|
||||||
|
** iauZp zero p-vector
|
||||||
|
** iauAb stellar aberration
|
||||||
|
** iauLdn light deflection by n bodies
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range +/- pi
|
||||||
|
**
|
||||||
|
** This revision: 2018 December 13
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j, i;
|
||||||
|
double pi[3], ppr[3], pnat[3], pco[3], w, d[3], before[3], r2, r,
|
||||||
|
after[3];
|
||||||
|
|
||||||
|
|
||||||
|
/* CIRS RA,Dec to Cartesian. */
|
||||||
|
iauS2c(ri, di, pi);
|
||||||
|
|
||||||
|
/* Bias-precession-nutation, giving GCRS proper direction. */
|
||||||
|
iauTrxp(astrom->bpn, pi, ppr);
|
||||||
|
|
||||||
|
/* Aberration, giving GCRS natural direction. */
|
||||||
|
iauZp(d);
|
||||||
|
for (j = 0; j < 2; j++) {
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
w = ppr[i] - d[i];
|
||||||
|
before[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
before[i] /= r;
|
||||||
|
}
|
||||||
|
iauAb(before, astrom->v, astrom->em, astrom->bm1, after);
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
d[i] = after[i] - before[i];
|
||||||
|
w = ppr[i] - d[i];
|
||||||
|
pnat[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
pnat[i] /= r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Light deflection, giving BCRS coordinate direction. */
|
||||||
|
iauZp(d);
|
||||||
|
for (j = 0; j < 5; j++) {
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
w = pnat[i] - d[i];
|
||||||
|
before[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
before[i] /= r;
|
||||||
|
}
|
||||||
|
iauLdn(n, b, astrom->eb, before, after);
|
||||||
|
r2 = 0.0;
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
d[i] = after[i] - before[i];
|
||||||
|
w = pnat[i] - d[i];
|
||||||
|
pco[i] = w;
|
||||||
|
r2 += w*w;
|
||||||
|
}
|
||||||
|
r = sqrt(r2);
|
||||||
|
for (i = 0; i < 3; i++) {
|
||||||
|
pco[i] /= r;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ICRS astrometric RA,Dec. */
|
||||||
|
iauC2s(pco, &w, dc);
|
||||||
|
*rc = iauAnp(w);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
263
20200721/c/src/atio13.c
Normal file
263
20200721/c/src/atio13.c
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauAtio13(double ri, double di,
|
||||||
|
double utc1, double utc2, double dut1,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double phpa, double tc, double rh, double wl,
|
||||||
|
double *aob, double *zob, double *hob,
|
||||||
|
double *dob, double *rob)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t i o 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** CIRS RA,Dec to observed place. The caller supplies UTC, site
|
||||||
|
** coordinates, ambient air conditions and observing wavelength.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ri double CIRS right ascension (CIO-based, radians)
|
||||||
|
** di double CIRS declination (radians)
|
||||||
|
** utc1 double UTC as a 2-part...
|
||||||
|
** utc2 double ...quasi Julian Date (Notes 1,2)
|
||||||
|
** dut1 double UT1-UTC (seconds, Note 3)
|
||||||
|
** elong double longitude (radians, east +ve, Note 4)
|
||||||
|
** phi double geodetic latitude (radians, Note 4)
|
||||||
|
** hm double height above ellipsoid (m, geodetic Notes 4,6)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 5)
|
||||||
|
** phpa double pressure at the observer (hPa = mB, Note 6)
|
||||||
|
** tc double ambient temperature at the observer (deg C)
|
||||||
|
** rh double relative humidity at the observer (range 0-1)
|
||||||
|
** wl double wavelength (micrometers, Note 7)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** aob double* observed azimuth (radians: N=0,E=90)
|
||||||
|
** zob double* observed zenith distance (radians)
|
||||||
|
** hob double* observed hour angle (radians)
|
||||||
|
** dob double* observed declination (radians)
|
||||||
|
** rob double* observed right ascension (CIO-based, radians)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 2)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any
|
||||||
|
** convenient way between the two arguments, for example where utc1
|
||||||
|
** is the Julian Day Number and utc2 is the fraction of a day.
|
||||||
|
**
|
||||||
|
** However, JD cannot unambiguously represent UTC during a leap
|
||||||
|
** second unless special measures are taken. The convention in the
|
||||||
|
** present function is that the JD day represents UTC days whether
|
||||||
|
** the length is 86399, 86400 or 86401 SI seconds.
|
||||||
|
**
|
||||||
|
** Applications should use the function iauDtf2d to convert from
|
||||||
|
** calendar date and time of day into 2-part quasi Julian Date, as
|
||||||
|
** it implements the leap-second-ambiguity convention just
|
||||||
|
** described.
|
||||||
|
**
|
||||||
|
** 2) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the
|
||||||
|
** future to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 3) UT1-UTC is tabulated in IERS bulletins. It increases by exactly
|
||||||
|
** one second at the end of each positive UTC leap second,
|
||||||
|
** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This
|
||||||
|
** practice is under review, and in the future UT1-UTC may grow
|
||||||
|
** essentially without limit.
|
||||||
|
**
|
||||||
|
** 4) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 5) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many
|
||||||
|
** applications, xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** 6) If hm, the height above the ellipsoid of the observing station
|
||||||
|
** in meters, is not known but phpa, the pressure in hPa (=mB), is
|
||||||
|
** available, an adequate estimate of hm can be obtained from the
|
||||||
|
** expression
|
||||||
|
**
|
||||||
|
** hm = -29.3 * tsl * log ( phpa / 1013.25 );
|
||||||
|
**
|
||||||
|
** where tsl is the approximate sea-level air temperature in K
|
||||||
|
** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section
|
||||||
|
** 52). Similarly, if the pressure phpa is not known, it can be
|
||||||
|
** estimated from the height of the observing station, hm, as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
|
||||||
|
**
|
||||||
|
** Note, however, that the refraction is nearly proportional to
|
||||||
|
** the pressure and that an accurate phpa value is important for
|
||||||
|
** precise work.
|
||||||
|
**
|
||||||
|
** 7) The argument wl specifies the observing wavelength in
|
||||||
|
** micrometers. The transition from optical to radio is assumed to
|
||||||
|
** occur at 100 micrometers (about 3000 GHz).
|
||||||
|
**
|
||||||
|
** 8) "Observed" Az,ZD means the position that would be seen by a
|
||||||
|
** perfect geodetically aligned theodolite. (Zenith distance is
|
||||||
|
** used rather than altitude in order to reflect the fact that no
|
||||||
|
** allowance is made for depression of the horizon.) This is
|
||||||
|
** related to the observed HA,Dec via the standard rotation, using
|
||||||
|
** the geodetic latitude (corrected for polar motion), while the
|
||||||
|
** observed HA and RA are related simply through the Earth rotation
|
||||||
|
** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus
|
||||||
|
** means the position that would be seen by a perfect equatorial
|
||||||
|
** with its polar axis aligned to the Earth's axis of rotation.
|
||||||
|
**
|
||||||
|
** 9) The accuracy of the result is limited by the corrections for
|
||||||
|
** refraction, which use a simple A*tan(z) + B*tan^3(z) model.
|
||||||
|
** Providing the meteorological parameters are known accurately and
|
||||||
|
** there are no gross local effects, the predicted astrometric
|
||||||
|
** coordinates should be within 0.05 arcsec (optical) or 1 arcsec
|
||||||
|
** (radio) for a zenith distance of less than 70 degrees, better
|
||||||
|
** than 30 arcsec (optical or radio) at 85 degrees and better
|
||||||
|
** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
|
||||||
|
**
|
||||||
|
** 10) The complementary functions iauAtio13 and iauAtoi13 are self-
|
||||||
|
** consistent to better than 1 microarcsecond all over the
|
||||||
|
** celestial sphere.
|
||||||
|
**
|
||||||
|
** 11) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApio13 astrometry parameters, CIRS-observed, 2013
|
||||||
|
** iauAtioq quick CIRS to observed
|
||||||
|
**
|
||||||
|
** This revision: 2016 February 2
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
iauASTROM astrom;
|
||||||
|
|
||||||
|
|
||||||
|
/* Star-independent astrometry parameters for CIRS->observed. */
|
||||||
|
j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, &astrom);
|
||||||
|
|
||||||
|
/* Abort if bad UTC. */
|
||||||
|
if ( j < 0 ) return j;
|
||||||
|
|
||||||
|
/* Transform CIRS to observed. */
|
||||||
|
iauAtioq(ri, di, &astrom, aob, zob, hob, dob, rob);
|
||||||
|
|
||||||
|
/* Return OK/warning status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
284
20200721/c/src/atioq.c
Normal file
284
20200721/c/src/atioq.c
Normal file
@@ -0,0 +1,284 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtioq(double ri, double di, iauASTROM *astrom,
|
||||||
|
double *aob, double *zob,
|
||||||
|
double *hob, double *dob, double *rob)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u A t i o q
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick CIRS to observed place transformation.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are all to be transformed for one date.
|
||||||
|
** The star-independent astrometry parameters can be obtained by
|
||||||
|
** calling iauApio[13] or iauApco[13].
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ri double CIRS right ascension
|
||||||
|
** di double CIRS declination
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** aob double* observed azimuth (radians: N=0,E=90)
|
||||||
|
** zob double* observed zenith distance (radians)
|
||||||
|
** hob double* observed hour angle (radians)
|
||||||
|
** dob double* observed declination (radians)
|
||||||
|
** rob double* observed right ascension (CIO-based, radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) This function returns zenith distance rather than altitude in
|
||||||
|
** order to reflect the fact that no allowance is made for
|
||||||
|
** depression of the horizon.
|
||||||
|
**
|
||||||
|
** 2) The accuracy of the result is limited by the corrections for
|
||||||
|
** refraction, which use a simple A*tan(z) + B*tan^3(z) model.
|
||||||
|
** Providing the meteorological parameters are known accurately and
|
||||||
|
** there are no gross local effects, the predicted observed
|
||||||
|
** coordinates should be within 0.05 arcsec (optical) or 1 arcsec
|
||||||
|
** (radio) for a zenith distance of less than 70 degrees, better
|
||||||
|
** than 30 arcsec (optical or radio) at 85 degrees and better
|
||||||
|
** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
|
||||||
|
**
|
||||||
|
** Without refraction, the complementary functions iauAtioq and
|
||||||
|
** iauAtoiq are self-consistent to better than 1 microarcsecond all
|
||||||
|
** over the celestial sphere. With refraction included, consistency
|
||||||
|
** falls off at high zenith distances, but is still better than
|
||||||
|
** 0.05 arcsec at 85 degrees.
|
||||||
|
**
|
||||||
|
** 3) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** 4) The CIRS RA,Dec is obtained from a star catalog mean place by
|
||||||
|
** allowing for space motion, parallax, the Sun's gravitational lens
|
||||||
|
** effect, annual aberration and precession-nutation. For star
|
||||||
|
** positions in the ICRS, these effects can be applied by means of
|
||||||
|
** the iauAtci13 (etc.) functions. Starting from classical "mean
|
||||||
|
** place" systems, additional transformations will be needed first.
|
||||||
|
**
|
||||||
|
** 5) "Observed" Az,El means the position that would be seen by a
|
||||||
|
** perfect geodetically aligned theodolite. This is obtained from
|
||||||
|
** the CIRS RA,Dec by allowing for Earth orientation and diurnal
|
||||||
|
** aberration, rotating from equator to horizon coordinates, and
|
||||||
|
** then adjusting for refraction. The HA,Dec is obtained by
|
||||||
|
** rotating back into equatorial coordinates, and is the position
|
||||||
|
** that would be seen by a perfect equatorial with its polar axis
|
||||||
|
** aligned to the Earth's axis of rotation. Finally, the RA is
|
||||||
|
** obtained by subtracting the HA from the local ERA.
|
||||||
|
**
|
||||||
|
** 6) The star-independent CIRS-to-observed-place parameters in ASTROM
|
||||||
|
** may be computed with iauApio[13] or iauApco[13]. If nothing has
|
||||||
|
** changed significantly except the time, iauAper[13] may be used to
|
||||||
|
** perform the requisite adjustment to the astrom structure.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range 0 to 2pi
|
||||||
|
**
|
||||||
|
** This revision: 2016 March 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Minimum cos(alt) and sin(alt) for refraction purposes */
|
||||||
|
const double CELMIN = 1e-6;
|
||||||
|
const double SELMIN = 0.05;
|
||||||
|
|
||||||
|
double v[3], x, y, z, xhd, yhd, zhd, f, xhdt, yhdt, zhdt,
|
||||||
|
xaet, yaet, zaet, azobs, r, tz, w, del, cosdel,
|
||||||
|
xaeo, yaeo, zaeo, zdobs, hmobs, dcobs, raobs;
|
||||||
|
|
||||||
|
|
||||||
|
/* CIRS RA,Dec to Cartesian -HA,Dec. */
|
||||||
|
iauS2c(ri-astrom->eral, di, v);
|
||||||
|
x = v[0];
|
||||||
|
y = v[1];
|
||||||
|
z = v[2];
|
||||||
|
|
||||||
|
/* Polar motion. */
|
||||||
|
xhd = x + astrom->xpl*z;
|
||||||
|
yhd = y - astrom->ypl*z;
|
||||||
|
zhd = z - astrom->xpl*x + astrom->ypl*y;
|
||||||
|
|
||||||
|
/* Diurnal aberration. */
|
||||||
|
f = ( 1.0 - astrom->diurab*yhd );
|
||||||
|
xhdt = f * xhd;
|
||||||
|
yhdt = f * ( yhd + astrom->diurab );
|
||||||
|
zhdt = f * zhd;
|
||||||
|
|
||||||
|
/* Cartesian -HA,Dec to Cartesian Az,El (S=0,E=90). */
|
||||||
|
xaet = astrom->sphi*xhdt - astrom->cphi*zhdt;
|
||||||
|
yaet = yhdt;
|
||||||
|
zaet = astrom->cphi*xhdt + astrom->sphi*zhdt;
|
||||||
|
|
||||||
|
/* Azimuth (N=0,E=90). */
|
||||||
|
azobs = ( xaet != 0.0 || yaet != 0.0 ) ? atan2(yaet,-xaet) : 0.0;
|
||||||
|
|
||||||
|
/* ---------- */
|
||||||
|
/* Refraction */
|
||||||
|
/* ---------- */
|
||||||
|
|
||||||
|
/* Cosine and sine of altitude, with precautions. */
|
||||||
|
r = sqrt(xaet*xaet + yaet*yaet);
|
||||||
|
r = r > CELMIN ? r : CELMIN;
|
||||||
|
z = zaet > SELMIN ? zaet : SELMIN;
|
||||||
|
|
||||||
|
/* A*tan(z)+B*tan^3(z) model, with Newton-Raphson correction. */
|
||||||
|
tz = r/z;
|
||||||
|
w = astrom->refb*tz*tz;
|
||||||
|
del = ( astrom->refa + w ) * tz /
|
||||||
|
( 1.0 + ( astrom->refa + 3.0*w ) / ( z*z ) );
|
||||||
|
|
||||||
|
/* Apply the change, giving observed vector. */
|
||||||
|
cosdel = 1.0 - del*del/2.0;
|
||||||
|
f = cosdel - del*z/r;
|
||||||
|
xaeo = xaet*f;
|
||||||
|
yaeo = yaet*f;
|
||||||
|
zaeo = cosdel*zaet + del*r;
|
||||||
|
|
||||||
|
/* Observed ZD. */
|
||||||
|
zdobs = atan2(sqrt(xaeo*xaeo+yaeo*yaeo), zaeo);
|
||||||
|
|
||||||
|
/* Az/El vector to HA,Dec vector (both right-handed). */
|
||||||
|
v[0] = astrom->sphi*xaeo + astrom->cphi*zaeo;
|
||||||
|
v[1] = yaeo;
|
||||||
|
v[2] = - astrom->cphi*xaeo + astrom->sphi*zaeo;
|
||||||
|
|
||||||
|
/* To spherical -HA,Dec. */
|
||||||
|
iauC2s ( v, &hmobs, &dcobs );
|
||||||
|
|
||||||
|
/* Right ascension (with respect to CIO). */
|
||||||
|
raobs = astrom->eral + hmobs;
|
||||||
|
|
||||||
|
/* Return the results. */
|
||||||
|
*aob = iauAnp(azobs);
|
||||||
|
*zob = zdobs;
|
||||||
|
*hob = -hmobs;
|
||||||
|
*dob = dcobs;
|
||||||
|
*rob = iauAnp(raobs);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
274
20200721/c/src/atoc13.c
Normal file
274
20200721/c/src/atoc13.c
Normal file
@@ -0,0 +1,274 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauAtoc13(const char *type, double ob1, double ob2,
|
||||||
|
double utc1, double utc2, double dut1,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double phpa, double tc, double rh, double wl,
|
||||||
|
double *rc, double *dc)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t o c 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Observed place at a groundbased site to to ICRS astrometric RA,Dec.
|
||||||
|
** The caller supplies UTC, site coordinates, ambient air conditions
|
||||||
|
** and observing wavelength.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2)
|
||||||
|
** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90)
|
||||||
|
** ob2 double observed ZD or Dec (radians)
|
||||||
|
** utc1 double UTC as a 2-part...
|
||||||
|
** utc2 double ...quasi Julian Date (Notes 3,4)
|
||||||
|
** dut1 double UT1-UTC (seconds, Note 5)
|
||||||
|
** elong double longitude (radians, east +ve, Note 6)
|
||||||
|
** phi double geodetic latitude (radians, Note 6)
|
||||||
|
** hm double height above ellipsoid (m, geodetic Notes 6,8)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 7)
|
||||||
|
** phpa double pressure at the observer (hPa = mB, Note 8)
|
||||||
|
** tc double ambient temperature at the observer (deg C)
|
||||||
|
** rh double relative humidity at the observer (range 0-1)
|
||||||
|
** wl double wavelength (micrometers, Note 9)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc,dc double ICRS astrometric RA,Dec (radians)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 4)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) "Observed" Az,ZD means the position that would be seen by a
|
||||||
|
** perfect geodetically aligned theodolite. (Zenith distance is
|
||||||
|
** used rather than altitude in order to reflect the fact that no
|
||||||
|
** allowance is made for depression of the horizon.) This is
|
||||||
|
** related to the observed HA,Dec via the standard rotation, using
|
||||||
|
** the geodetic latitude (corrected for polar motion), while the
|
||||||
|
** observed HA and RA are related simply through the Earth rotation
|
||||||
|
** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus
|
||||||
|
** means the position that would be seen by a perfect equatorial
|
||||||
|
** with its polar axis aligned to the Earth's axis of rotation.
|
||||||
|
**
|
||||||
|
** 2) Only the first character of the type argument is significant.
|
||||||
|
** "R" or "r" indicates that ob1 and ob2 are the observed right
|
||||||
|
** ascension and declination; "H" or "h" indicates that they are
|
||||||
|
** hour angle (west +ve) and declination; anything else ("A" or
|
||||||
|
** "a" is recommended) indicates that ob1 and ob2 are azimuth
|
||||||
|
** (north zero, east 90 deg) and zenith distance.
|
||||||
|
**
|
||||||
|
** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any
|
||||||
|
** convenient way between the two arguments, for example where utc1
|
||||||
|
** is the Julian Day Number and utc2 is the fraction of a day.
|
||||||
|
**
|
||||||
|
** However, JD cannot unambiguously represent UTC during a leap
|
||||||
|
** second unless special measures are taken. The convention in the
|
||||||
|
** present function is that the JD day represents UTC days whether
|
||||||
|
** the length is 86399, 86400 or 86401 SI seconds.
|
||||||
|
**
|
||||||
|
** Applications should use the function iauDtf2d to convert from
|
||||||
|
** calendar date and time of day into 2-part quasi Julian Date, as
|
||||||
|
** it implements the leap-second-ambiguity convention just
|
||||||
|
** described.
|
||||||
|
**
|
||||||
|
** 4) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the
|
||||||
|
** future to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly
|
||||||
|
** one second at the end of each positive UTC leap second,
|
||||||
|
** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This
|
||||||
|
** practice is under review, and in the future UT1-UTC may grow
|
||||||
|
** essentially without limit.
|
||||||
|
**
|
||||||
|
** 6) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 7) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many
|
||||||
|
** applications, xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** 8) If hm, the height above the ellipsoid of the observing station
|
||||||
|
** in meters, is not known but phpa, the pressure in hPa (=mB), is
|
||||||
|
** available, an adequate estimate of hm can be obtained from the
|
||||||
|
** expression
|
||||||
|
**
|
||||||
|
** hm = -29.3 * tsl * log ( phpa / 1013.25 );
|
||||||
|
**
|
||||||
|
** where tsl is the approximate sea-level air temperature in K
|
||||||
|
** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section
|
||||||
|
** 52). Similarly, if the pressure phpa is not known, it can be
|
||||||
|
** estimated from the height of the observing station, hm, as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
|
||||||
|
**
|
||||||
|
** Note, however, that the refraction is nearly proportional to
|
||||||
|
** the pressure and that an accurate phpa value is important for
|
||||||
|
** precise work.
|
||||||
|
**
|
||||||
|
** 9) The argument wl specifies the observing wavelength in
|
||||||
|
** micrometers. The transition from optical to radio is assumed to
|
||||||
|
** occur at 100 micrometers (about 3000 GHz).
|
||||||
|
**
|
||||||
|
** 10) The accuracy of the result is limited by the corrections for
|
||||||
|
** refraction, which use a simple A*tan(z) + B*tan^3(z) model.
|
||||||
|
** Providing the meteorological parameters are known accurately and
|
||||||
|
** there are no gross local effects, the predicted astrometric
|
||||||
|
** coordinates should be within 0.05 arcsec (optical) or 1 arcsec
|
||||||
|
** (radio) for a zenith distance of less than 70 degrees, better
|
||||||
|
** than 30 arcsec (optical or radio) at 85 degrees and better
|
||||||
|
** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
|
||||||
|
**
|
||||||
|
** Without refraction, the complementary functions iauAtco13 and
|
||||||
|
** iauAtoc13 are self-consistent to better than 1 microarcsecond
|
||||||
|
** all over the celestial sphere. With refraction included,
|
||||||
|
** consistency falls off at high zenith distances, but is still
|
||||||
|
** better than 0.05 arcsec at 85 degrees.
|
||||||
|
**
|
||||||
|
** 11) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApco13 astrometry parameters, ICRS-observed
|
||||||
|
** iauAtoiq quick observed to CIRS
|
||||||
|
** iauAticq quick CIRS to ICRS
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
iauASTROM astrom;
|
||||||
|
double eo, ri, di;
|
||||||
|
|
||||||
|
|
||||||
|
/* Star-independent astrometry parameters. */
|
||||||
|
j = iauApco13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, &astrom, &eo);
|
||||||
|
|
||||||
|
/* Abort if bad UTC. */
|
||||||
|
if ( j < 0 ) return j;
|
||||||
|
|
||||||
|
/* Transform observed to CIRS. */
|
||||||
|
iauAtoiq(type, ob1, ob2, &astrom, &ri, &di);
|
||||||
|
|
||||||
|
/* Transform CIRS to ICRS. */
|
||||||
|
iauAticq(ri, di, &astrom, rc, dc);
|
||||||
|
|
||||||
|
/* Return OK/warning status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
269
20200721/c/src/atoi13.c
Normal file
269
20200721/c/src/atoi13.c
Normal file
@@ -0,0 +1,269 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauAtoi13(const char *type, double ob1, double ob2,
|
||||||
|
double utc1, double utc2, double dut1,
|
||||||
|
double elong, double phi, double hm, double xp, double yp,
|
||||||
|
double phpa, double tc, double rh, double wl,
|
||||||
|
double *ri, double *di)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u A t o i 1 3
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Observed place to CIRS. The caller supplies UTC, site coordinates,
|
||||||
|
** ambient air conditions and observing wavelength.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** type char[] type of coordinates - "R", "H" or "A" (Notes 1,2)
|
||||||
|
** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90)
|
||||||
|
** ob2 double observed ZD or Dec (radians)
|
||||||
|
** utc1 double UTC as a 2-part...
|
||||||
|
** utc2 double ...quasi Julian Date (Notes 3,4)
|
||||||
|
** dut1 double UT1-UTC (seconds, Note 5)
|
||||||
|
** elong double longitude (radians, east +ve, Note 6)
|
||||||
|
** phi double geodetic latitude (radians, Note 6)
|
||||||
|
** hm double height above the ellipsoid (meters, Notes 6,8)
|
||||||
|
** xp,yp double polar motion coordinates (radians, Note 7)
|
||||||
|
** phpa double pressure at the observer (hPa = mB, Note 8)
|
||||||
|
** tc double ambient temperature at the observer (deg C)
|
||||||
|
** rh double relative humidity at the observer (range 0-1)
|
||||||
|
** wl double wavelength (micrometers, Note 9)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ri double* CIRS right ascension (CIO-based, radians)
|
||||||
|
** di double* CIRS declination (radians)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 2)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) "Observed" Az,ZD means the position that would be seen by a
|
||||||
|
** perfect geodetically aligned theodolite. (Zenith distance is
|
||||||
|
** used rather than altitude in order to reflect the fact that no
|
||||||
|
** allowance is made for depression of the horizon.) This is
|
||||||
|
** related to the observed HA,Dec via the standard rotation, using
|
||||||
|
** the geodetic latitude (corrected for polar motion), while the
|
||||||
|
** observed HA and RA are related simply through the Earth rotation
|
||||||
|
** angle and the site longitude. "Observed" RA,Dec or HA,Dec thus
|
||||||
|
** means the position that would be seen by a perfect equatorial
|
||||||
|
** with its polar axis aligned to the Earth's axis of rotation.
|
||||||
|
**
|
||||||
|
** 2) Only the first character of the type argument is significant.
|
||||||
|
** "R" or "r" indicates that ob1 and ob2 are the observed right
|
||||||
|
** ascension and declination; "H" or "h" indicates that they are
|
||||||
|
** hour angle (west +ve) and declination; anything else ("A" or
|
||||||
|
** "a" is recommended) indicates that ob1 and ob2 are azimuth
|
||||||
|
** (north zero, east 90 deg) and zenith distance.
|
||||||
|
**
|
||||||
|
** 3) utc1+utc2 is quasi Julian Date (see Note 2), apportioned in any
|
||||||
|
** convenient way between the two arguments, for example where utc1
|
||||||
|
** is the Julian Day Number and utc2 is the fraction of a day.
|
||||||
|
**
|
||||||
|
** However, JD cannot unambiguously represent UTC during a leap
|
||||||
|
** second unless special measures are taken. The convention in the
|
||||||
|
** present function is that the JD day represents UTC days whether
|
||||||
|
** the length is 86399, 86400 or 86401 SI seconds.
|
||||||
|
**
|
||||||
|
** Applications should use the function iauDtf2d to convert from
|
||||||
|
** calendar date and time of day into 2-part quasi Julian Date, as
|
||||||
|
** it implements the leap-second-ambiguity convention just
|
||||||
|
** described.
|
||||||
|
**
|
||||||
|
** 4) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the
|
||||||
|
** future to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 5) UT1-UTC is tabulated in IERS bulletins. It increases by exactly
|
||||||
|
** one second at the end of each positive UTC leap second,
|
||||||
|
** introduced in order to keep UT1-UTC within +/- 0.9s. n.b. This
|
||||||
|
** practice is under review, and in the future UT1-UTC may grow
|
||||||
|
** essentially without limit.
|
||||||
|
**
|
||||||
|
** 6) The geographical coordinates are with respect to the WGS84
|
||||||
|
** reference ellipsoid. TAKE CARE WITH THE LONGITUDE SIGN: the
|
||||||
|
** longitude required by the present function is east-positive
|
||||||
|
** (i.e. right-handed), in accordance with geographical convention.
|
||||||
|
**
|
||||||
|
** 7) The polar motion xp,yp can be obtained from IERS bulletins. The
|
||||||
|
** values are the coordinates (in radians) of the Celestial
|
||||||
|
** Intermediate Pole with respect to the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), measured along the
|
||||||
|
** meridians 0 and 90 deg west respectively. For many
|
||||||
|
** applications, xp and yp can be set to zero.
|
||||||
|
**
|
||||||
|
** 8) If hm, the height above the ellipsoid of the observing station
|
||||||
|
** in meters, is not known but phpa, the pressure in hPa (=mB), is
|
||||||
|
** available, an adequate estimate of hm can be obtained from the
|
||||||
|
** expression
|
||||||
|
**
|
||||||
|
** hm = -29.3 * tsl * log ( phpa / 1013.25 );
|
||||||
|
**
|
||||||
|
** where tsl is the approximate sea-level air temperature in K
|
||||||
|
** (See Astrophysical Quantities, C.W.Allen, 3rd edition, section
|
||||||
|
** 52). Similarly, if the pressure phpa is not known, it can be
|
||||||
|
** estimated from the height of the observing station, hm, as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** phpa = 1013.25 * exp ( -hm / ( 29.3 * tsl ) );
|
||||||
|
**
|
||||||
|
** Note, however, that the refraction is nearly proportional to
|
||||||
|
** the pressure and that an accurate phpa value is important for
|
||||||
|
** precise work.
|
||||||
|
**
|
||||||
|
** 9) The argument wl specifies the observing wavelength in
|
||||||
|
** micrometers. The transition from optical to radio is assumed to
|
||||||
|
** occur at 100 micrometers (about 3000 GHz).
|
||||||
|
**
|
||||||
|
** 10) The accuracy of the result is limited by the corrections for
|
||||||
|
** refraction, which use a simple A*tan(z) + B*tan^3(z) model.
|
||||||
|
** Providing the meteorological parameters are known accurately and
|
||||||
|
** there are no gross local effects, the predicted astrometric
|
||||||
|
** coordinates should be within 0.05 arcsec (optical) or 1 arcsec
|
||||||
|
** (radio) for a zenith distance of less than 70 degrees, better
|
||||||
|
** than 30 arcsec (optical or radio) at 85 degrees and better
|
||||||
|
** than 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
|
||||||
|
**
|
||||||
|
** Without refraction, the complementary functions iauAtio13 and
|
||||||
|
** iauAtoi13 are self-consistent to better than 1 microarcsecond
|
||||||
|
** all over the celestial sphere. With refraction included,
|
||||||
|
** consistency falls off at high zenith distances, but is still
|
||||||
|
** better than 0.05 arcsec at 85 degrees.
|
||||||
|
**
|
||||||
|
** 12) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauApio13 astrometry parameters, CIRS-observed, 2013
|
||||||
|
** iauAtoiq quick observed to CIRS
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j;
|
||||||
|
iauASTROM astrom;
|
||||||
|
|
||||||
|
|
||||||
|
/* Star-independent astrometry parameters for CIRS->observed. */
|
||||||
|
j = iauApio13(utc1, utc2, dut1, elong, phi, hm, xp, yp,
|
||||||
|
phpa, tc, rh, wl, &astrom);
|
||||||
|
|
||||||
|
/* Abort if bad UTC. */
|
||||||
|
if ( j < 0 ) return j;
|
||||||
|
|
||||||
|
/* Transform observed to CIRS. */
|
||||||
|
iauAtoiq(type, ob1, ob2, &astrom, ri, di);
|
||||||
|
|
||||||
|
/* Return OK/warning status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
298
20200721/c/src/atoiq.c
Normal file
298
20200721/c/src/atoiq.c
Normal file
@@ -0,0 +1,298 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauAtoiq(const char *type,
|
||||||
|
double ob1, double ob2, iauASTROM *astrom,
|
||||||
|
double *ri, double *di)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u A t o i q
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Quick observed place to CIRS, given the star-independent astrometry
|
||||||
|
** parameters.
|
||||||
|
**
|
||||||
|
** Use of this function is appropriate when efficiency is important and
|
||||||
|
** where many star positions are all to be transformed for one date.
|
||||||
|
** The star-independent astrometry parameters can be obtained by
|
||||||
|
** calling iauApio[13] or iauApco[13].
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** type char[] type of coordinates: "R", "H" or "A" (Note 1)
|
||||||
|
** ob1 double observed Az, HA or RA (radians; Az is N=0,E=90)
|
||||||
|
** ob2 double observed ZD or Dec (radians)
|
||||||
|
** astrom iauASTROM* star-independent astrometry parameters:
|
||||||
|
** pmt double PM time interval (SSB, Julian years)
|
||||||
|
** eb double[3] SSB to observer (vector, au)
|
||||||
|
** eh double[3] Sun to observer (unit vector)
|
||||||
|
** em double distance from Sun to observer (au)
|
||||||
|
** v double[3] barycentric observer velocity (vector, c)
|
||||||
|
** bm1 double sqrt(1-|v|^2): reciprocal of Lorenz factor
|
||||||
|
** bpn double[3][3] bias-precession-nutation matrix
|
||||||
|
** along double longitude + s' (radians)
|
||||||
|
** xpl double polar motion xp wrt local meridian (radians)
|
||||||
|
** ypl double polar motion yp wrt local meridian (radians)
|
||||||
|
** sphi double sine of geodetic latitude
|
||||||
|
** cphi double cosine of geodetic latitude
|
||||||
|
** diurab double magnitude of diurnal aberration vector
|
||||||
|
** eral double "local" Earth rotation angle (radians)
|
||||||
|
** refa double refraction constant A (radians)
|
||||||
|
** refb double refraction constant B (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** ri double* CIRS right ascension (CIO-based, radians)
|
||||||
|
** di double* CIRS declination (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) "Observed" Az,El means the position that would be seen by a
|
||||||
|
** perfect geodetically aligned theodolite. This is related to
|
||||||
|
** the observed HA,Dec via the standard rotation, using the geodetic
|
||||||
|
** latitude (corrected for polar motion), while the observed HA and
|
||||||
|
** RA are related simply through the Earth rotation angle and the
|
||||||
|
** site longitude. "Observed" RA,Dec or HA,Dec thus means the
|
||||||
|
** position that would be seen by a perfect equatorial with its
|
||||||
|
** polar axis aligned to the Earth's axis of rotation. By removing
|
||||||
|
** from the observed place the effects of atmospheric refraction and
|
||||||
|
** diurnal aberration, the CIRS RA,Dec is obtained.
|
||||||
|
**
|
||||||
|
** 2) Only the first character of the type argument is significant.
|
||||||
|
** "R" or "r" indicates that ob1 and ob2 are the observed right
|
||||||
|
** ascension and declination; "H" or "h" indicates that they are
|
||||||
|
** hour angle (west +ve) and declination; anything else ("A" or
|
||||||
|
** "a" is recommended) indicates that ob1 and ob2 are azimuth (north
|
||||||
|
** zero, east 90 deg) and zenith distance. (Zenith distance is used
|
||||||
|
** rather than altitude in order to reflect the fact that no
|
||||||
|
** allowance is made for depression of the horizon.)
|
||||||
|
**
|
||||||
|
** 3) The accuracy of the result is limited by the corrections for
|
||||||
|
** refraction, which use a simple A*tan(z) + B*tan^3(z) model.
|
||||||
|
** Providing the meteorological parameters are known accurately and
|
||||||
|
** there are no gross local effects, the predicted observed
|
||||||
|
** coordinates should be within 0.05 arcsec (optical) or 1 arcsec
|
||||||
|
** (radio) for a zenith distance of less than 70 degrees, better
|
||||||
|
** than 30 arcsec (optical or radio) at 85 degrees and better than
|
||||||
|
** 20 arcmin (optical) or 30 arcmin (radio) at the horizon.
|
||||||
|
**
|
||||||
|
** Without refraction, the complementary functions iauAtioq and
|
||||||
|
** iauAtoiq are self-consistent to better than 1 microarcsecond all
|
||||||
|
** over the celestial sphere. With refraction included, consistency
|
||||||
|
** falls off at high zenith distances, but is still better than
|
||||||
|
** 0.05 arcsec at 85 degrees.
|
||||||
|
**
|
||||||
|
** 4) It is advisable to take great care with units, as even unlikely
|
||||||
|
** values of the input parameters are accepted and processed in
|
||||||
|
** accordance with the models used.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauC2s p-vector to spherical
|
||||||
|
** iauAnp normalize angle into range 0 to 2pi
|
||||||
|
**
|
||||||
|
** This revision: 2013 October 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int c;
|
||||||
|
double c1, c2, sphi, cphi, ce, xaeo, yaeo, zaeo, v[3],
|
||||||
|
xmhdo, ymhdo, zmhdo, az, sz, zdo, refa, refb, tz, dref,
|
||||||
|
zdt, xaet, yaet, zaet, xmhda, ymhda, zmhda,
|
||||||
|
f, xhd, yhd, zhd, xpl, ypl, w, hma;
|
||||||
|
|
||||||
|
|
||||||
|
/* Coordinate type. */
|
||||||
|
c = (int) type[0];
|
||||||
|
|
||||||
|
/* Coordinates. */
|
||||||
|
c1 = ob1;
|
||||||
|
c2 = ob2;
|
||||||
|
|
||||||
|
/* Sin, cos of latitude. */
|
||||||
|
sphi = astrom->sphi;
|
||||||
|
cphi = astrom->cphi;
|
||||||
|
|
||||||
|
/* Standardize coordinate type. */
|
||||||
|
if ( c == 'r' || c == 'R' ) {
|
||||||
|
c = 'R';
|
||||||
|
} else if ( c == 'h' || c == 'H' ) {
|
||||||
|
c = 'H';
|
||||||
|
} else {
|
||||||
|
c = 'A';
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If Az,ZD, convert to Cartesian (S=0,E=90). */
|
||||||
|
if ( c == 'A' ) {
|
||||||
|
ce = sin(c2);
|
||||||
|
xaeo = - cos(c1) * ce;
|
||||||
|
yaeo = sin(c1) * ce;
|
||||||
|
zaeo = cos(c2);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
/* If RA,Dec, convert to HA,Dec. */
|
||||||
|
if ( c == 'R' ) c1 = astrom->eral - c1;
|
||||||
|
|
||||||
|
/* To Cartesian -HA,Dec. */
|
||||||
|
iauS2c ( -c1, c2, v );
|
||||||
|
xmhdo = v[0];
|
||||||
|
ymhdo = v[1];
|
||||||
|
zmhdo = v[2];
|
||||||
|
|
||||||
|
/* To Cartesian Az,El (S=0,E=90). */
|
||||||
|
xaeo = sphi*xmhdo - cphi*zmhdo;
|
||||||
|
yaeo = ymhdo;
|
||||||
|
zaeo = cphi*xmhdo + sphi*zmhdo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Azimuth (S=0,E=90). */
|
||||||
|
az = ( xaeo != 0.0 || yaeo != 0.0 ) ? atan2(yaeo,xaeo) : 0.0;
|
||||||
|
|
||||||
|
/* Sine of observed ZD, and observed ZD. */
|
||||||
|
sz = sqrt ( xaeo*xaeo + yaeo*yaeo );
|
||||||
|
zdo = atan2 ( sz, zaeo );
|
||||||
|
|
||||||
|
/*
|
||||||
|
** Refraction
|
||||||
|
** ----------
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Fast algorithm using two constant model. */
|
||||||
|
refa = astrom->refa;
|
||||||
|
refb = astrom->refb;
|
||||||
|
tz = sz / zaeo;
|
||||||
|
dref = ( refa + refb*tz*tz ) * tz;
|
||||||
|
zdt = zdo + dref;
|
||||||
|
|
||||||
|
/* To Cartesian Az,ZD. */
|
||||||
|
ce = sin(zdt);
|
||||||
|
xaet = cos(az) * ce;
|
||||||
|
yaet = sin(az) * ce;
|
||||||
|
zaet = cos(zdt);
|
||||||
|
|
||||||
|
/* Cartesian Az,ZD to Cartesian -HA,Dec. */
|
||||||
|
xmhda = sphi*xaet + cphi*zaet;
|
||||||
|
ymhda = yaet;
|
||||||
|
zmhda = - cphi*xaet + sphi*zaet;
|
||||||
|
|
||||||
|
/* Diurnal aberration. */
|
||||||
|
f = ( 1.0 + astrom->diurab*ymhda );
|
||||||
|
xhd = f * xmhda;
|
||||||
|
yhd = f * ( ymhda - astrom->diurab );
|
||||||
|
zhd = f * zmhda;
|
||||||
|
|
||||||
|
/* Polar motion. */
|
||||||
|
xpl = astrom->xpl;
|
||||||
|
ypl = astrom->ypl;
|
||||||
|
w = xpl*xhd - ypl*yhd + zhd;
|
||||||
|
v[0] = xhd - xpl*w;
|
||||||
|
v[1] = yhd + ypl*w;
|
||||||
|
v[2] = w - ( xpl*xpl + ypl*ypl ) * zhd;
|
||||||
|
|
||||||
|
/* To spherical -HA,Dec. */
|
||||||
|
iauC2s(v, &hma, di);
|
||||||
|
|
||||||
|
/* Right ascension. */
|
||||||
|
*ri = iauAnp(astrom->eral + hma);
|
||||||
|
|
||||||
|
/* Finished. */
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
166
20200721/c/src/bi00.c
Normal file
166
20200721/c/src/bi00.c
Normal file
@@ -0,0 +1,166 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauBi00(double *dpsibi, double *depsbi, double *dra)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u B i 0 0
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Frame bias components of IAU 2000 precession-nutation models (part
|
||||||
|
** of MHB2000 with additions).
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: canonical model.
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** dpsibi,depsbi double longitude and obliquity corrections
|
||||||
|
** dra double the ICRS RA of the J2000.0 mean equinox
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) 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.
|
||||||
|
**
|
||||||
|
** 2) 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.
|
||||||
|
**
|
||||||
|
** 3) 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,
|
||||||
|
** 2002. The MHB2000 code itself was obtained on 9th September 2002
|
||||||
|
** from ftp://maia.usno.navy.mil/conv2000/chapter5/IAU2000A.
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* The frame bias corrections in longitude and obliquity */
|
||||||
|
const double DPBIAS = -0.041775 * DAS2R,
|
||||||
|
DEBIAS = -0.0068192 * DAS2R;
|
||||||
|
|
||||||
|
/* The ICRS RA of the J2000.0 equinox (Chapront et al., 2002) */
|
||||||
|
const double DRA0 = -0.0146 * DAS2R;
|
||||||
|
|
||||||
|
|
||||||
|
/* Return the results (which are fixed). */
|
||||||
|
*dpsibi = DPBIAS;
|
||||||
|
*depsbi = DEBIAS;
|
||||||
|
*dra = DRA0;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
222
20200721/c/src/bp00.c
Normal file
222
20200721/c/src/bp00.c
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauBp00(double date1, double date2,
|
||||||
|
double rb[3][3], double rp[3][3], double rbp[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u B p 0 0
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Frame bias and precession, IAU 2000.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: canonical model.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rb double[3][3] frame bias matrix (Note 2)
|
||||||
|
** rp double[3][3] precession matrix (Note 3)
|
||||||
|
** rbp double[3][3] bias-precession matrix (Note 4)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by
|
||||||
|
** applying frame bias.
|
||||||
|
**
|
||||||
|
** 3) The matrix rp transforms vectors from J2000.0 mean equator and
|
||||||
|
** equinox to mean equator and equinox of date by applying
|
||||||
|
** precession.
|
||||||
|
**
|
||||||
|
** 4) 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.
|
||||||
|
**
|
||||||
|
** 5) It is permissible to re-use the same array in the returned
|
||||||
|
** arguments. The arrays are filled in the order given.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauBi00 frame bias components, IAU 2000
|
||||||
|
** iauPr00 IAU 2000 precession adjustments
|
||||||
|
** iauIr initialize r-matrix to identity
|
||||||
|
** iauRx rotate around X-axis
|
||||||
|
** iauRy rotate around Y-axis
|
||||||
|
** iauRz rotate around Z-axis
|
||||||
|
** iauCr copy r-matrix
|
||||||
|
** iauRxr 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.
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 21
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* J2000.0 obliquity (Lieske et al. 1977) */
|
||||||
|
const double EPS0 = 84381.448 * DAS2R;
|
||||||
|
|
||||||
|
double t, dpsibi, depsbi, dra0, psia77, oma77, chia,
|
||||||
|
dpsipr, depspr, psia, oma, rbw[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Interval between fundamental epoch J2000.0 and current date (JC). */
|
||||||
|
t = ((date1 - DJ00) + date2) / DJC;
|
||||||
|
|
||||||
|
/* Frame bias. */
|
||||||
|
iauBi00(&dpsibi, &depsbi, &dra0);
|
||||||
|
|
||||||
|
/* Precession angles (Lieske et al. 1977) */
|
||||||
|
psia77 = (5038.7784 + (-1.07259 + (-0.001147) * t) * t) * t * DAS2R;
|
||||||
|
oma77 = EPS0 + ((0.05127 + (-0.007726) * t) * t) * t * DAS2R;
|
||||||
|
chia = ( 10.5526 + (-2.38064 + (-0.001125) * t) * t) * t * DAS2R;
|
||||||
|
|
||||||
|
/* Apply IAU 2000 precession corrections. */
|
||||||
|
iauPr00(date1, date2, &dpsipr, &depspr);
|
||||||
|
psia = psia77 + dpsipr;
|
||||||
|
oma = oma77 + depspr;
|
||||||
|
|
||||||
|
/* Frame bias matrix: GCRS to J2000.0. */
|
||||||
|
iauIr(rbw);
|
||||||
|
iauRz(dra0, rbw);
|
||||||
|
iauRy(dpsibi*sin(EPS0), rbw);
|
||||||
|
iauRx(-depsbi, rbw);
|
||||||
|
iauCr(rbw, rb);
|
||||||
|
|
||||||
|
/* Precession matrix: J2000.0 to mean of date. */
|
||||||
|
iauIr(rp);
|
||||||
|
iauRx(EPS0, rp);
|
||||||
|
iauRz(-psia, rp);
|
||||||
|
iauRx(-oma, rp);
|
||||||
|
iauRz(chia, rp);
|
||||||
|
|
||||||
|
/* Bias-precession matrix: GCRS to mean of date. */
|
||||||
|
iauRxr(rp, rbw, rbp);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
193
20200721/c/src/bp06.c
Normal file
193
20200721/c/src/bp06.c
Normal file
@@ -0,0 +1,193 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauBp06(double date1, double date2,
|
||||||
|
double rb[3][3], double rp[3][3], double rbp[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u B p 0 6
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Frame bias and precession, IAU 2006.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rb double[3][3] frame bias matrix (Note 2)
|
||||||
|
** rp double[3][3] precession matrix (Note 3)
|
||||||
|
** rbp double[3][3] bias-precession matrix (Note 4)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The matrix rb transforms vectors from GCRS to mean J2000.0 by
|
||||||
|
** applying frame bias.
|
||||||
|
**
|
||||||
|
** 3) The matrix rp transforms vectors from mean J2000.0 to mean of
|
||||||
|
** date by applying precession.
|
||||||
|
**
|
||||||
|
** 4) The matrix rbp transforms vectors from GCRS to mean of date by
|
||||||
|
** applying frame bias then precession. It is the product rp x rb.
|
||||||
|
**
|
||||||
|
** 5) It is permissible to re-use the same array in the returned
|
||||||
|
** arguments. The arrays are filled in the order given.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPfw06 bias-precession F-W angles, IAU 2006
|
||||||
|
** iauFw2m F-W angles to r-matrix
|
||||||
|
** iauPmat06 PB matrix, IAU 2006
|
||||||
|
** iauTr transpose r-matrix
|
||||||
|
** iauRxr product of two r-matrices
|
||||||
|
** iauCr copy r-matrix
|
||||||
|
**
|
||||||
|
** References:
|
||||||
|
**
|
||||||
|
** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
|
||||||
|
**
|
||||||
|
** Wallace, P.T. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 21
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double gamb, phib, psib, epsa, rbpw[3][3], rbt[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* B matrix. */
|
||||||
|
iauPfw06(DJM0, DJM00, &gamb, &phib, &psib, &epsa);
|
||||||
|
iauFw2m(gamb, phib, psib, epsa, rb);
|
||||||
|
|
||||||
|
/* PxB matrix (temporary). */
|
||||||
|
iauPmat06(date1, date2, rbpw);
|
||||||
|
|
||||||
|
/* P matrix. */
|
||||||
|
iauTr(rb, rbt);
|
||||||
|
iauRxr(rbpw, rbt, rp);
|
||||||
|
|
||||||
|
/* PxB matrix. */
|
||||||
|
iauCr(rbpw, rbp);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
150
20200721/c/src/bpn2xy.c
Normal file
150
20200721/c/src/bpn2xy.c
Normal file
@@ -0,0 +1,150 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauBpn2xy(double rbpn[3][3], double *x, double *y)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u B p n 2 x y
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Extract from the bias-precession-nutation matrix the X,Y coordinates
|
||||||
|
** of the Celestial Intermediate Pole.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rbpn double[3][3] celestial-to-true matrix (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** x,y double Celestial Intermediate Pole (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The matrix rbpn transforms vectors from GCRS to true equator (and
|
||||||
|
** CIO or equinox) of date, and therefore the Celestial Intermediate
|
||||||
|
** Pole unit vector is the bottom row of the matrix.
|
||||||
|
**
|
||||||
|
** 2) The arguments x,y are components of the Celestial Intermediate
|
||||||
|
** Pole unit vector in the Geocentric Celestial Reference System.
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** "Expressions for the Celestial Intermediate Pole and Celestial
|
||||||
|
** Ephemeris Origin consistent with the IAU 2000A precession-
|
||||||
|
** nutation model", Astron.Astrophys. 400, 1145-1154
|
||||||
|
** (2003)
|
||||||
|
**
|
||||||
|
** n.b. The celestial ephemeris origin (CEO) was renamed "celestial
|
||||||
|
** intermediate origin" (CIO) by IAU 2006 Resolution 2.
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Extract the X,Y coordinates. */
|
||||||
|
*x = rbpn[2][0];
|
||||||
|
*y = rbpn[2][1];
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
189
20200721/c/src/c2i00a.c
Normal file
189
20200721/c/src/c2i00a.c
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2i00a(double date1, double date2, double rc2i[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 i 0 0 a
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial-to-intermediate matrix for a given date using the
|
||||||
|
** IAU 2000A precession-nutation model.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The matrix rc2i is the first stage in the transformation from
|
||||||
|
** celestial to terrestrial coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 3) A faster, but slightly less accurate result (about 1 mas), can be
|
||||||
|
** obtained by using instead the iauC2i00b function.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPnm00a classical NPB matrix, IAU 2000A
|
||||||
|
** iauC2ibpn 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)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rbpn[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Obtain the celestial-to-true matrix (IAU 2000A). */
|
||||||
|
iauPnm00a(date1, date2, rbpn);
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix. */
|
||||||
|
iauC2ibpn(date1, date2, rbpn, rc2i);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
189
20200721/c/src/c2i00b.c
Normal file
189
20200721/c/src/c2i00b.c
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2i00b(double date1, double date2, double rc2i[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 i 0 0 b
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial-to-intermediate matrix for a given date using the
|
||||||
|
** IAU 2000B precession-nutation model.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The matrix rc2i is the first stage in the transformation from
|
||||||
|
** celestial to terrestrial coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 3) The present function is faster, but slightly less accurate (about
|
||||||
|
** 1 mas), than the iauC2i00a function.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPnm00b classical NPB matrix, IAU 2000B
|
||||||
|
** iauC2ibpn 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)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rbpn[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Obtain the celestial-to-true matrix (IAU 2000B). */
|
||||||
|
iauPnm00b(date1, date2, rbpn);
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix. */
|
||||||
|
iauC2ibpn(date1, date2, rbpn, rc2i);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
186
20200721/c/src/c2i06a.c
Normal file
186
20200721/c/src/c2i06a.c
Normal file
@@ -0,0 +1,186 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2i06a(double date1, double date2, double rc2i[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 i 0 6 a
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial-to-intermediate matrix for a given date using the
|
||||||
|
** IAU 2006 precession and IAU 2000A nutation models.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The matrix rc2i is the first stage in the transformation from
|
||||||
|
** celestial to terrestrial coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = RC2T * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPnm06a classical NPB matrix, IAU 2006/2000A
|
||||||
|
** iauBpn2xy extract CIP X,Y coordinates from NPB matrix
|
||||||
|
** iauS06 the CIO locator s, given X,Y, IAU 2006
|
||||||
|
** iauC2ixys 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
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rbpn[3][3], x, y, s;
|
||||||
|
|
||||||
|
|
||||||
|
/* Obtain the celestial-to-true matrix (IAU 2006/2000A). */
|
||||||
|
iauPnm06a(date1, date2, rbpn);
|
||||||
|
|
||||||
|
/* Extract the X,Y coordinates. */
|
||||||
|
iauBpn2xy(rbpn, &x, &y);
|
||||||
|
|
||||||
|
/* Obtain the CIO locator. */
|
||||||
|
s = iauS06(date1, date2, x, y);
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix. */
|
||||||
|
iauC2ixys(x, y, s, rc2i);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
192
20200721/c/src/c2ibpn.c
Normal file
192
20200721/c/src/c2ibpn.c
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2ibpn(double date1, double date2, double rbpn[3][3],
|
||||||
|
double rc2i[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 i b p n
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial-to-intermediate matrix for a given date given
|
||||||
|
** the bias-precession-nutation matrix. IAU 2000.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** rbpn double[3][3] celestial-to-true matrix (Note 2)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The matrix rbpn transforms vectors from GCRS to true equator (and
|
||||||
|
** CIO or equinox) of date. Only the CIP (bottom row) is used.
|
||||||
|
**
|
||||||
|
** 3) The matrix rc2i is the first stage in the transformation from
|
||||||
|
** celestial to terrestrial coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = RC2T * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 4) Although its name does not include "00", This function is in fact
|
||||||
|
** specific to the IAU 2000 models.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauBpn2xy extract CIP X,Y coordinates from NPB matrix
|
||||||
|
** iauC2ixy 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)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double x, y;
|
||||||
|
|
||||||
|
|
||||||
|
/* Extract the X,Y coordinates. */
|
||||||
|
iauBpn2xy(rbpn, &x, &y);
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix (n.b. IAU 2000 specific). */
|
||||||
|
iauC2ixy(date1, date2, x, y, rc2i);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
181
20200721/c/src/c2ixy.c
Normal file
181
20200721/c/src/c2ixy.c
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2ixy(double date1, double date2, double x, double y,
|
||||||
|
double rc2i[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u C 2 i x y
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial to intermediate-frame-of-date matrix for a given
|
||||||
|
** date when the CIP X,Y coordinates are known. IAU 2000.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** x,y double Celestial Intermediate Pole (Note 2)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The Celestial Intermediate Pole coordinates are the x,y components
|
||||||
|
** of the unit vector in the Geocentric Celestial Reference System.
|
||||||
|
**
|
||||||
|
** 3) The matrix rc2i is the first stage in the transformation from
|
||||||
|
** celestial to terrestrial coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = RC2T * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 4) Although its name does not include "00", This function is in fact
|
||||||
|
** specific to the IAU 2000 models.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauC2ixys celestial-to-intermediate matrix, given X,Y and s
|
||||||
|
** iauS00 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)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
|
||||||
|
{
|
||||||
|
/* Compute s and then the matrix. */
|
||||||
|
iauC2ixys(x, y, iauS00(date1, date2, x, y), rc2i);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
173
20200721/c/src/c2ixys.c
Normal file
173
20200721/c/src/c2ixys.c
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2ixys(double x, double y, double s, double rc2i[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 i x y s
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial to intermediate-frame-of-date matrix given the CIP
|
||||||
|
** X,Y and the CIO locator s.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** x,y double Celestial Intermediate Pole (Note 1)
|
||||||
|
** s double the CIO locator s (Note 2)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The Celestial Intermediate Pole coordinates are the x,y
|
||||||
|
** components of the unit vector in the Geocentric Celestial
|
||||||
|
** Reference System.
|
||||||
|
**
|
||||||
|
** 2) The CIO locator s (in radians) positions the Celestial
|
||||||
|
** Intermediate Origin on the equator of the CIP.
|
||||||
|
**
|
||||||
|
** 3) The matrix rc2i is the first stage in the transformation from
|
||||||
|
** celestial to terrestrial coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = RC2T * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauIr initialize r-matrix to identity
|
||||||
|
** iauRz rotate around Z-axis
|
||||||
|
** iauRy rotate around Y-axis
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG (2004)
|
||||||
|
**
|
||||||
|
** This revision: 2014 November 7
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double r2, e, d;
|
||||||
|
|
||||||
|
|
||||||
|
/* Obtain the spherical angles E and d. */
|
||||||
|
r2 = x*x + y*y;
|
||||||
|
e = (r2 > 0.0) ? atan2(y, x) : 0.0;
|
||||||
|
d = atan(sqrt(r2 / (1.0 - r2)));
|
||||||
|
|
||||||
|
/* Form the matrix. */
|
||||||
|
iauIr(rc2i);
|
||||||
|
iauRz(e, rc2i);
|
||||||
|
iauRy(d, rc2i);
|
||||||
|
iauRz(-(e+s), rc2i);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
146
20200721/c/src/c2s.c
Normal file
146
20200721/c/src/c2s.c
Normal file
@@ -0,0 +1,146 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2s(double p[3], double *theta, double *phi)
|
||||||
|
/*
|
||||||
|
** - - - - - - -
|
||||||
|
** i a u C 2 s
|
||||||
|
** - - - - - - -
|
||||||
|
**
|
||||||
|
** P-vector to spherical coordinates.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** p double[3] p-vector
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** theta double longitude angle (radians)
|
||||||
|
** phi double latitude angle (radians)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The vector p can have any magnitude; only its direction is used.
|
||||||
|
**
|
||||||
|
** 2) If p is null, zero theta and phi are returned.
|
||||||
|
**
|
||||||
|
** 3) At either pole, zero theta is returned.
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double x, y, z, d2;
|
||||||
|
|
||||||
|
|
||||||
|
x = p[0];
|
||||||
|
y = p[1];
|
||||||
|
z = p[2];
|
||||||
|
d2 = x*x + y*y;
|
||||||
|
|
||||||
|
*theta = (d2 == 0.0) ? 0.0 : atan2(y, x);
|
||||||
|
*phi = (z == 0.0) ? 0.0 : atan2(z, sqrt(d2));
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
204
20200721/c/src/c2t00a.c
Normal file
204
20200721/c/src/c2t00a.c
Normal file
@@ -0,0 +1,204 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2t00a(double tta, double ttb, double uta, double utb,
|
||||||
|
double xp, double yp, double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 t 0 0 a
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial to terrestrial matrix given the date, the UT1 and
|
||||||
|
** the polar motion, using the IAU 2000A nutation model.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** tta,ttb double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** uta,utb double UT1 as a 2-part Julian Date (Note 1)
|
||||||
|
** xp,yp double coordinates of the pole (radians, Note 2)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
|
||||||
|
** apportioned in any convenient way between the arguments uta and
|
||||||
|
** utb. For example, JD(UT1)=2450123.7 could be expressed in any of
|
||||||
|
** these ways, among others:
|
||||||
|
**
|
||||||
|
** uta utb
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 and MJD methods are good compromises
|
||||||
|
** between resolution and convenience. In the case of uta,utb, the
|
||||||
|
** date & time method is best matched to the Earth rotation angle
|
||||||
|
** algorithm used: maximum precision is delivered when the uta
|
||||||
|
** argument is for 0hrs UT1 on the day in question and the utb
|
||||||
|
** argument lies in the range 0 to 1, or vice versa.
|
||||||
|
**
|
||||||
|
** 2) The arguments xp and yp are the coordinates (in radians) of the
|
||||||
|
** Celestial Intermediate Pole with respect to the International
|
||||||
|
** Terrestrial Reference System (see IERS Conventions 2003),
|
||||||
|
** measured along the meridians to 0 and 90 deg west respectively.
|
||||||
|
**
|
||||||
|
** 3) The matrix rc2t transforms from celestial to terrestrial
|
||||||
|
** coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), RC2I is the
|
||||||
|
** celestial-to-intermediate matrix, ERA is the Earth rotation
|
||||||
|
** angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 4) A faster, but slightly less accurate result (about 1 mas), can
|
||||||
|
** be obtained by using instead the iauC2t00b function.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauC2i00a celestial-to-intermediate matrix, IAU 2000A
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
** iauSp00 the TIO locator s', IERS 2000
|
||||||
|
** iauPom00 polar motion matrix
|
||||||
|
** iauC2tcio form CIO-based celestial-to-terrestrial matrix
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG (2004)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rc2i[3][3], era, sp, rpom[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix for this TT (IAU 2000A). */
|
||||||
|
iauC2i00a(tta, ttb, rc2i );
|
||||||
|
|
||||||
|
/* Predict the Earth rotation angle for this UT1. */
|
||||||
|
era = iauEra00(uta, utb);
|
||||||
|
|
||||||
|
/* Estimate s'. */
|
||||||
|
sp = iauSp00(tta, ttb);
|
||||||
|
|
||||||
|
/* Form the polar motion matrix. */
|
||||||
|
iauPom00(xp, yp, sp, rpom);
|
||||||
|
|
||||||
|
/* Combine to form the celestial-to-terrestrial matrix. */
|
||||||
|
iauC2tcio(rc2i, era, rpom, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
200
20200721/c/src/c2t00b.c
Normal file
200
20200721/c/src/c2t00b.c
Normal file
@@ -0,0 +1,200 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2t00b(double tta, double ttb, double uta, double utb,
|
||||||
|
double xp, double yp, double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 t 0 0 b
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial to terrestrial matrix given the date, the UT1 and
|
||||||
|
** the polar motion, using the IAU 2000B nutation model.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** tta,ttb double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** uta,utb double UT1 as a 2-part Julian Date (Note 1)
|
||||||
|
** xp,yp double coordinates of the pole (radians, Note 2)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
|
||||||
|
** apportioned in any convenient way between the arguments uta and
|
||||||
|
** utb. For example, JD(UT1)=2450123.7 could be expressed in any of
|
||||||
|
** these ways, among others:
|
||||||
|
**
|
||||||
|
** uta utb
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 and MJD methods are good compromises
|
||||||
|
** between resolution and convenience. In the case of uta,utb, the
|
||||||
|
** date & time method is best matched to the Earth rotation angle
|
||||||
|
** algorithm used: maximum precision is delivered when the uta
|
||||||
|
** argument is for 0hrs UT1 on the day in question and the utb
|
||||||
|
** argument lies in the range 0 to 1, or vice versa.
|
||||||
|
**
|
||||||
|
** 2) The arguments xp and yp are the coordinates (in radians) of the
|
||||||
|
** Celestial Intermediate Pole with respect to the International
|
||||||
|
** Terrestrial Reference System (see IERS Conventions 2003),
|
||||||
|
** measured along the meridians to 0 and 90 deg west respectively.
|
||||||
|
**
|
||||||
|
** 3) The matrix rc2t transforms from celestial to terrestrial
|
||||||
|
** coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), RC2I is the
|
||||||
|
** celestial-to-intermediate matrix, ERA is the Earth rotation
|
||||||
|
** angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 4) The present function is faster, but slightly less accurate (about
|
||||||
|
** 1 mas), than the iauC2t00a function.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauC2i00b celestial-to-intermediate matrix, IAU 2000B
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
** iauPom00 polar motion matrix
|
||||||
|
** iauC2tcio form CIO-based celestial-to-terrestrial matrix
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG (2004)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rc2i[3][3], era, rpom[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix for this TT (IAU 2000B). */
|
||||||
|
iauC2i00b(tta, ttb, rc2i);
|
||||||
|
|
||||||
|
/* Predict the Earth rotation angle for this UT1. */
|
||||||
|
era = iauEra00(uta, utb);
|
||||||
|
|
||||||
|
/* Form the polar motion matrix (neglecting s'). */
|
||||||
|
iauPom00(xp, yp, 0.0, rpom);
|
||||||
|
|
||||||
|
/* Combine to form the celestial-to-terrestrial matrix. */
|
||||||
|
iauC2tcio(rc2i, era, rpom, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
202
20200721/c/src/c2t06a.c
Normal file
202
20200721/c/src/c2t06a.c
Normal file
@@ -0,0 +1,202 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2t06a(double tta, double ttb, double uta, double utb,
|
||||||
|
double xp, double yp, double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 t 0 6 a
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** tta,ttb double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** uta,utb double UT1 as a 2-part Julian Date (Note 1)
|
||||||
|
** xp,yp double coordinates of the pole (radians, Note 2)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
|
||||||
|
** apportioned in any convenient way between the arguments uta and
|
||||||
|
** utb. For example, JD(UT1)=2450123.7 could be expressed in any of
|
||||||
|
** these ways, among others:
|
||||||
|
**
|
||||||
|
** uta utb
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 and MJD methods are good compromises
|
||||||
|
** between resolution and convenience. In the case of uta,utb, the
|
||||||
|
** date & time method is best matched to the Earth rotation angle
|
||||||
|
** algorithm used: maximum precision is delivered when the uta
|
||||||
|
** argument is for 0hrs UT1 on the day in question and the utb
|
||||||
|
** argument lies in the range 0 to 1, or vice versa.
|
||||||
|
**
|
||||||
|
** 2) The arguments xp and yp are the coordinates (in radians) of the
|
||||||
|
** Celestial Intermediate Pole with respect to the International
|
||||||
|
** Terrestrial Reference System (see IERS Conventions 2003),
|
||||||
|
** measured along the meridians to 0 and 90 deg west respectively.
|
||||||
|
**
|
||||||
|
** 3) The matrix rc2t transforms from celestial to terrestrial
|
||||||
|
** coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), RC2I is the
|
||||||
|
** celestial-to-intermediate matrix, ERA is the Earth rotation
|
||||||
|
** angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauC2i06a celestial-to-intermediate matrix, IAU 2006/2000A
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
** iauSp00 the TIO locator s', IERS 2000
|
||||||
|
** iauPom00 polar motion matrix
|
||||||
|
** iauC2tcio form CIO-based celestial-to-terrestrial matrix
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rc2i[3][3], era, sp, rpom[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix for this TT. */
|
||||||
|
iauC2i06a(tta, ttb, rc2i);
|
||||||
|
|
||||||
|
/* Predict the Earth rotation angle for this UT1. */
|
||||||
|
era = iauEra00(uta, utb);
|
||||||
|
|
||||||
|
/* Estimate s'. */
|
||||||
|
sp = iauSp00(tta, ttb);
|
||||||
|
|
||||||
|
/* Form the polar motion matrix. */
|
||||||
|
iauPom00(xp, yp, sp, rpom);
|
||||||
|
|
||||||
|
/* Combine to form the celestial-to-terrestrial matrix. */
|
||||||
|
iauC2tcio(rc2i, era, rpom, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
172
20200721/c/src/c2tcio.c
Normal file
172
20200721/c/src/c2tcio.c
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2tcio(double rc2i[3][3], double era, double rpom[3][3],
|
||||||
|
double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 t c i o
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Assemble the celestial to terrestrial matrix from CIO-based
|
||||||
|
** components (the celestial-to-intermediate matrix, the Earth Rotation
|
||||||
|
** Angle and the polar motion matrix).
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rc2i double[3][3] celestial-to-intermediate matrix
|
||||||
|
** era double Earth rotation angle (radians)
|
||||||
|
** rpom double[3][3] polar-motion matrix
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) This function constructs the rotation matrix that transforms
|
||||||
|
** vectors in the celestial system into vectors in the terrestrial
|
||||||
|
** system. It does so starting from precomputed components, namely
|
||||||
|
** the matrix which rotates from celestial coordinates to the
|
||||||
|
** intermediate frame, the Earth rotation angle and the polar motion
|
||||||
|
** matrix. One use of the present function is when generating a
|
||||||
|
** series of celestial-to-terrestrial matrices where only the Earth
|
||||||
|
** Rotation Angle changes, avoiding the considerable overhead of
|
||||||
|
** recomputing the precession-nutation more often than necessary to
|
||||||
|
** achieve given accuracy objectives.
|
||||||
|
**
|
||||||
|
** 2) The relationship between the arguments is as follows:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * rc2i * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCr copy r-matrix
|
||||||
|
** iauRz rotate around Z-axis
|
||||||
|
** iauRxr product of two r-matrices
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 24
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double r[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Construct the matrix. */
|
||||||
|
iauCr(rc2i, r);
|
||||||
|
iauRz(era, r);
|
||||||
|
iauRxr(rpom, r, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
172
20200721/c/src/c2teqx.c
Normal file
172
20200721/c/src/c2teqx.c
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2teqx(double rbpn[3][3], double gst, double rpom[3][3],
|
||||||
|
double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C 2 t e q x
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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).
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rbpn double[3][3] celestial-to-true matrix
|
||||||
|
** gst double Greenwich (apparent) Sidereal Time (radians)
|
||||||
|
** rpom double[3][3] polar-motion matrix
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) This function constructs the rotation matrix that transforms
|
||||||
|
** vectors in the celestial system into vectors in the terrestrial
|
||||||
|
** system. It does so starting from precomputed components, namely
|
||||||
|
** the matrix which rotates from celestial coordinates to the
|
||||||
|
** true equator and equinox of date, the Greenwich Apparent Sidereal
|
||||||
|
** Time and the polar motion matrix. One use of the present function
|
||||||
|
** is when generating a series of celestial-to-terrestrial matrices
|
||||||
|
** where only the Sidereal Time changes, avoiding the considerable
|
||||||
|
** overhead of recomputing the precession-nutation more often than
|
||||||
|
** necessary to achieve given accuracy objectives.
|
||||||
|
**
|
||||||
|
** 2) The relationship between the arguments is as follows:
|
||||||
|
**
|
||||||
|
** [TRS] = rpom * R_3(gst) * rbpn * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCr copy r-matrix
|
||||||
|
** iauRz rotate around Z-axis
|
||||||
|
** iauRxr product of two r-matrices
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG (2004)
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 24
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double r[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Construct the matrix. */
|
||||||
|
iauCr(rbpn, r);
|
||||||
|
iauRz(gst, r);
|
||||||
|
iauRxr(rpom, r, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
217
20200721/c/src/c2tpe.c
Normal file
217
20200721/c/src/c2tpe.c
Normal file
@@ -0,0 +1,217 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2tpe(double tta, double ttb, double uta, double utb,
|
||||||
|
double dpsi, double deps, double xp, double yp,
|
||||||
|
double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u C 2 t p e
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial to terrestrial matrix given the date, the UT1,
|
||||||
|
** the nutation and the polar motion. IAU 2000.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** tta,ttb double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** uta,utb double UT1 as a 2-part Julian Date (Note 1)
|
||||||
|
** dpsi,deps double nutation (Note 2)
|
||||||
|
** xp,yp double coordinates of the pole (radians, Note 3)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
|
||||||
|
** apportioned in any convenient way between the arguments uta and
|
||||||
|
** utb. For example, JD(UT1)=2450123.7 could be expressed in any of
|
||||||
|
** these ways, among others:
|
||||||
|
**
|
||||||
|
** uta utb
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 and MJD methods are good compromises
|
||||||
|
** between resolution and convenience. In the case of uta,utb, the
|
||||||
|
** date & time method is best matched to the Earth rotation angle
|
||||||
|
** algorithm used: maximum precision is delivered when the uta
|
||||||
|
** argument is for 0hrs UT1 on the day in question and the utb
|
||||||
|
** argument lies in the range 0 to 1, or vice versa.
|
||||||
|
**
|
||||||
|
** 2) The caller is responsible for providing the nutation components;
|
||||||
|
** they are in longitude and obliquity, in radians and are with
|
||||||
|
** respect to the equinox and ecliptic of date. For high-accuracy
|
||||||
|
** applications, free core nutation should be included as well as
|
||||||
|
** any other relevant corrections to the position of the CIP.
|
||||||
|
**
|
||||||
|
** 3) The arguments xp and yp are the coordinates (in radians) of the
|
||||||
|
** Celestial Intermediate Pole with respect to the International
|
||||||
|
** Terrestrial Reference System (see IERS Conventions 2003),
|
||||||
|
** measured along the meridians to 0 and 90 deg west respectively.
|
||||||
|
**
|
||||||
|
** 4) The matrix rc2t transforms from celestial to terrestrial
|
||||||
|
** coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(GST) * RBPN * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), RBPN is the
|
||||||
|
** bias-precession-nutation matrix, GST is the Greenwich (apparent)
|
||||||
|
** Sidereal Time and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 5) Although its name does not include "00", This function is in fact
|
||||||
|
** specific to the IAU 2000 models.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPn00 bias/precession/nutation results, IAU 2000
|
||||||
|
** iauGmst00 Greenwich mean sidereal time, IAU 2000
|
||||||
|
** iauSp00 the TIO locator s', IERS 2000
|
||||||
|
** iauEe00 equation of the equinoxes, IAU 2000
|
||||||
|
** iauPom00 polar motion matrix
|
||||||
|
** iauC2teqx form equinox-based celestial-to-terrestrial matrix
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG (2004)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double epsa, rb[3][3], rp[3][3], rbp[3][3], rn[3][3],
|
||||||
|
rbpn[3][3], gmst, ee, sp, rpom[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Form the celestial-to-true matrix for this TT. */
|
||||||
|
iauPn00(tta, ttb, dpsi, deps, &epsa, rb, rp, rbp, rn, rbpn);
|
||||||
|
|
||||||
|
/* Predict the Greenwich Mean Sidereal Time for this UT1 and TT. */
|
||||||
|
gmst = iauGmst00(uta, utb, tta, ttb);
|
||||||
|
|
||||||
|
/* Predict the equation of the equinoxes given TT and nutation. */
|
||||||
|
ee = iauEe00(tta, ttb, epsa, dpsi);
|
||||||
|
|
||||||
|
/* Estimate s'. */
|
||||||
|
sp = iauSp00(tta, ttb);
|
||||||
|
|
||||||
|
/* Form the polar motion matrix. */
|
||||||
|
iauPom00(xp, yp, sp, rpom);
|
||||||
|
|
||||||
|
/* Combine to form the celestial-to-terrestrial matrix. */
|
||||||
|
iauC2teqx(rbpn, gmst + ee, rpom, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
209
20200721/c/src/c2txy.c
Normal file
209
20200721/c/src/c2txy.c
Normal file
@@ -0,0 +1,209 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauC2txy(double tta, double ttb, double uta, double utb,
|
||||||
|
double x, double y, double xp, double yp,
|
||||||
|
double rc2t[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u C 2 t x y
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Form the celestial to terrestrial matrix given the date, the UT1,
|
||||||
|
** the CIP coordinates and the polar motion. IAU 2000.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** tta,ttb double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** uta,utb double UT1 as a 2-part Julian Date (Note 1)
|
||||||
|
** x,y double Celestial Intermediate Pole (Note 2)
|
||||||
|
** xp,yp double coordinates of the pole (radians, Note 3)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rc2t double[3][3] celestial-to-terrestrial matrix (Note 4)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT and UT1 dates tta+ttb and uta+utb are Julian Dates,
|
||||||
|
** apportioned in any convenient way between the arguments uta and
|
||||||
|
** utb. For example, JD(UT1)=2450123.7 could be expressed in any o
|
||||||
|
** these ways, among others:
|
||||||
|
**
|
||||||
|
** uta utb
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution is
|
||||||
|
** acceptable. The J2000 and MJD methods are good compromises
|
||||||
|
** between resolution and convenience. In the case of uta,utb, the
|
||||||
|
** date & time method is best matched to the Earth rotation angle
|
||||||
|
** algorithm used: maximum precision is delivered when the uta
|
||||||
|
** argument is for 0hrs UT1 on the day in question and the utb
|
||||||
|
** argument lies in the range 0 to 1, or vice versa.
|
||||||
|
**
|
||||||
|
** 2) The Celestial Intermediate Pole coordinates are the x,y
|
||||||
|
** components of the unit vector in the Geocentric Celestial
|
||||||
|
** Reference System.
|
||||||
|
**
|
||||||
|
** 3) The arguments xp and yp are the coordinates (in radians) of the
|
||||||
|
** Celestial Intermediate Pole with respect to the International
|
||||||
|
** Terrestrial Reference System (see IERS Conventions 2003),
|
||||||
|
** measured along the meridians to 0 and 90 deg west respectively.
|
||||||
|
**
|
||||||
|
** 4) The matrix rc2t transforms from celestial to terrestrial
|
||||||
|
** coordinates:
|
||||||
|
**
|
||||||
|
** [TRS] = RPOM * R_3(ERA) * RC2I * [CRS]
|
||||||
|
**
|
||||||
|
** = rc2t * [CRS]
|
||||||
|
**
|
||||||
|
** where [CRS] is a vector in the Geocentric Celestial Reference
|
||||||
|
** System and [TRS] is a vector in the International Terrestrial
|
||||||
|
** Reference System (see IERS Conventions 2003), ERA is the Earth
|
||||||
|
** Rotation Angle and RPOM is the polar motion matrix.
|
||||||
|
**
|
||||||
|
** 5) Although its name does not include "00", This function is in fact
|
||||||
|
** specific to the IAU 2000 models.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauC2ixy celestial-to-intermediate matrix, given X,Y
|
||||||
|
** iauEra00 Earth rotation angle, IAU 2000
|
||||||
|
** iauSp00 the TIO locator s', IERS 2000
|
||||||
|
** iauPom00 polar motion matrix
|
||||||
|
** iauC2tcio form CIO-based celestial-to-terrestrial matrix
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG (2004)
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rc2i[3][3], era, sp, rpom[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Form the celestial-to-intermediate matrix for this TT. */
|
||||||
|
iauC2ixy(tta, ttb, x, y, rc2i);
|
||||||
|
|
||||||
|
/* Predict the Earth rotation angle for this UT1. */
|
||||||
|
era = iauEra00(uta, utb);
|
||||||
|
|
||||||
|
/* Estimate s'. */
|
||||||
|
sp = iauSp00(tta, ttb);
|
||||||
|
|
||||||
|
/* Form the polar motion matrix. */
|
||||||
|
iauPom00(xp, yp, sp, rpom);
|
||||||
|
|
||||||
|
/* Combine to form the celestial-to-terrestrial matrix. */
|
||||||
|
iauC2tcio(rc2i, era, rpom, rc2t);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
189
20200721/c/src/cal2jd.c
Normal file
189
20200721/c/src/cal2jd.c
Normal file
@@ -0,0 +1,189 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauCal2jd(int iy, int im, int id, double *djm0, double *djm)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u C a l 2 j d
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Gregorian Calendar to Julian Date.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** iy,im,id int year, month, day in Gregorian calendar (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** djm0 double MJD zero-point: always 2400000.5
|
||||||
|
** djm double Modified Julian Date for 0 hrs
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status:
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = bad year (Note 3: JD not computed)
|
||||||
|
** -2 = bad month (JD not computed)
|
||||||
|
** -3 = bad day (JD computed)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The algorithm used is valid from -4800 March 1, but this
|
||||||
|
** implementation rejects dates before -4799 January 1.
|
||||||
|
**
|
||||||
|
** 2) The Julian Date is returned in two pieces, in the usual SOFA
|
||||||
|
** manner, which is designed to preserve time resolution. The
|
||||||
|
** Julian Date is available as a single number by adding djm0 and
|
||||||
|
** djm.
|
||||||
|
**
|
||||||
|
** 3) In early eras the conversion is from the "Proleptic Gregorian
|
||||||
|
** Calendar"; no account is taken of the date(s) of adoption of
|
||||||
|
** the Gregorian Calendar, nor is the AD/BC numbering convention
|
||||||
|
** observed.
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** Explanatory Supplement to the Astronomical Almanac,
|
||||||
|
** P. Kenneth Seidelmann (ed), University Science Books (1992),
|
||||||
|
** Section 12.92 (p604).
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 7
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int j, ly, my;
|
||||||
|
long iypmy;
|
||||||
|
|
||||||
|
/* Earliest year allowed (4800BC) */
|
||||||
|
const int IYMIN = -4799;
|
||||||
|
|
||||||
|
/* Month lengths in days */
|
||||||
|
static const int mtab[]
|
||||||
|
= {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
|
||||||
|
|
||||||
|
|
||||||
|
/* Preset status. */
|
||||||
|
j = 0;
|
||||||
|
|
||||||
|
/* Validate year and month. */
|
||||||
|
if (iy < IYMIN) return -1;
|
||||||
|
if (im < 1 || im > 12) return -2;
|
||||||
|
|
||||||
|
/* If February in a leap year, 1, otherwise 0. */
|
||||||
|
ly = ((im == 2) && !(iy%4) && (iy%100 || !(iy%400)));
|
||||||
|
|
||||||
|
/* Validate day, taking into account leap years. */
|
||||||
|
if ( (id < 1) || (id > (mtab[im-1] + ly))) j = -3;
|
||||||
|
|
||||||
|
/* Return result. */
|
||||||
|
my = (im - 14) / 12;
|
||||||
|
iypmy = (long) (iy + my);
|
||||||
|
*djm0 = DJM0;
|
||||||
|
*djm = (double)((1461L * (iypmy + 4800L)) / 4L
|
||||||
|
+ (367L * (long) (im - 2 - 12 * my)) / 12L
|
||||||
|
- (3L * ((iypmy + 4900L) / 100L)) / 4L
|
||||||
|
+ (long) id - 2432076L);
|
||||||
|
|
||||||
|
/* Return status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
130
20200721/c/src/cp.c
Normal file
130
20200721/c/src/cp.c
Normal file
@@ -0,0 +1,130 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauCp(double p[3], double c[3])
|
||||||
|
/*
|
||||||
|
** - - - - - -
|
||||||
|
** i a u C p
|
||||||
|
** - - - - - -
|
||||||
|
**
|
||||||
|
** Copy a p-vector.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** p double[3] p-vector to be copied
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** c double[3] copy
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
c[0] = p[0];
|
||||||
|
c[1] = p[1];
|
||||||
|
c[2] = p[2];
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
132
20200721/c/src/cpv.c
Normal file
132
20200721/c/src/cpv.c
Normal file
@@ -0,0 +1,132 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauCpv(double pv[2][3], double c[2][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - -
|
||||||
|
** i a u C p v
|
||||||
|
** - - - - - - -
|
||||||
|
**
|
||||||
|
** Copy a position/velocity vector.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** pv double[2][3] position/velocity vector to be copied
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** c double[2][3] copy
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCp copy p-vector
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
iauCp(pv[0], c[0]);
|
||||||
|
iauCp(pv[1], c[1]);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
133
20200721/c/src/cr.c
Normal file
133
20200721/c/src/cr.c
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauCr(double r[3][3], double c[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - -
|
||||||
|
** i a u C r
|
||||||
|
** - - - - - -
|
||||||
|
**
|
||||||
|
** Copy an r-matrix.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** r double[3][3] r-matrix to be copied
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** c double[3][3] copy
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCp copy p-vector
|
||||||
|
**
|
||||||
|
** This revision: 2016 May 19
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
iauCp(r[0], c[0]);
|
||||||
|
iauCp(r[1], c[1]);
|
||||||
|
iauCp(r[2], c[2]);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
286
20200721/c/src/d2dtf.c
Normal file
286
20200721/c/src/d2dtf.c
Normal file
@@ -0,0 +1,286 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int iauD2dtf(const char *scale, int ndp, double d1, double d2,
|
||||||
|
int *iy, int *im, int *id, int ihmsf[4])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u D 2 d t f
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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).
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** scale char[] time scale ID (Note 1)
|
||||||
|
** ndp int resolution (Note 2)
|
||||||
|
** d1,d2 double time as a 2-part Julian Date (Notes 3,4)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** iy,im,id int year, month, day in Gregorian calendar (Note 5)
|
||||||
|
** ihmsf int[4] hours, minutes, seconds, fraction (Note 1)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +1 = dubious year (Note 5)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = unacceptable date (Note 6)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) scale identifies the time scale. Only the value "UTC" (in upper
|
||||||
|
** case) is significant, and enables handling of leap seconds (see
|
||||||
|
** Note 4).
|
||||||
|
**
|
||||||
|
** 2) ndp is the number of decimal places in the seconds field, and can
|
||||||
|
** have negative as well as positive values, such as:
|
||||||
|
**
|
||||||
|
** ndp resolution
|
||||||
|
** -4 1 00 00
|
||||||
|
** -3 0 10 00
|
||||||
|
** -2 0 01 00
|
||||||
|
** -1 0 00 10
|
||||||
|
** 0 0 00 01
|
||||||
|
** 1 0 00 00.1
|
||||||
|
** 2 0 00 00.01
|
||||||
|
** 3 0 00 00.001
|
||||||
|
**
|
||||||
|
** The limits are platform dependent, but a safe range is -5 to +9.
|
||||||
|
**
|
||||||
|
** 3) d1+d2 is Julian Date, apportioned in any convenient way between
|
||||||
|
** the two arguments, for example where d1 is the Julian Day Number
|
||||||
|
** and d2 is the fraction of a day. In the case of UTC, where the
|
||||||
|
** use of JD is problematical, special conventions apply: see the
|
||||||
|
** next note.
|
||||||
|
**
|
||||||
|
** 4) JD cannot unambiguously represent UTC during a leap second unless
|
||||||
|
** special measures are taken. The SOFA internal convention is that
|
||||||
|
** the quasi-JD day represents UTC days whether the length is 86399,
|
||||||
|
** 86400 or 86401 SI seconds. In the 1960-1972 era there were
|
||||||
|
** smaller jumps (in either direction) each time the linear UTC(TAI)
|
||||||
|
** expression was changed, and these "mini-leaps" are also included
|
||||||
|
** in the SOFA convention.
|
||||||
|
**
|
||||||
|
** 5) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the future
|
||||||
|
** to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 6) For calendar conventions and limitations, see iauCal2jd.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauJd2cal JD to Gregorian calendar
|
||||||
|
** iauD2tf decompose days to hms
|
||||||
|
** iauDat delta(AT) = TAI-UTC
|
||||||
|
**
|
||||||
|
** This revision: 2014 February 15
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int leap;
|
||||||
|
char s;
|
||||||
|
int iy1, im1, id1, js, iy2, im2, id2, ihmsf1[4], i;
|
||||||
|
double a1, b1, fd, dat0, dat12, w, dat24, dleap;
|
||||||
|
|
||||||
|
|
||||||
|
/* The two-part JD. */
|
||||||
|
a1 = d1;
|
||||||
|
b1 = d2;
|
||||||
|
|
||||||
|
/* Provisional calendar date. */
|
||||||
|
js = iauJd2cal(a1, b1, &iy1, &im1, &id1, &fd);
|
||||||
|
if ( js ) return -1;
|
||||||
|
|
||||||
|
/* Is this a leap second day? */
|
||||||
|
leap = 0;
|
||||||
|
if ( ! strcmp(scale,"UTC") ) {
|
||||||
|
|
||||||
|
/* TAI-UTC at 0h today. */
|
||||||
|
js = iauDat(iy1, im1, id1, 0.0, &dat0);
|
||||||
|
if ( js < 0 ) return -1;
|
||||||
|
|
||||||
|
/* TAI-UTC at 12h today (to detect drift). */
|
||||||
|
js = iauDat(iy1, im1, id1, 0.5, &dat12);
|
||||||
|
if ( js < 0 ) return -1;
|
||||||
|
|
||||||
|
/* TAI-UTC at 0h tomorrow (to detect jumps). */
|
||||||
|
js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w);
|
||||||
|
if ( js ) return -1;
|
||||||
|
js = iauDat(iy2, im2, id2, 0.0, &dat24);
|
||||||
|
if ( js < 0 ) return -1;
|
||||||
|
|
||||||
|
/* Any sudden change in TAI-UTC (seconds). */
|
||||||
|
dleap = dat24 - (2.0*dat12 - dat0);
|
||||||
|
|
||||||
|
/* If leap second day, scale the fraction of a day into SI. */
|
||||||
|
leap = (dleap != 0.0);
|
||||||
|
if (leap) fd += fd * dleap/DAYSEC;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Provisional time of day. */
|
||||||
|
iauD2tf ( ndp, fd, &s, ihmsf1 );
|
||||||
|
|
||||||
|
/* Has the (rounded) time gone past 24h? */
|
||||||
|
if ( ihmsf1[0] > 23 ) {
|
||||||
|
|
||||||
|
/* Yes. We probably need tomorrow's calendar date. */
|
||||||
|
js = iauJd2cal(a1+1.5, b1-fd, &iy2, &im2, &id2, &w);
|
||||||
|
if ( js ) return -1;
|
||||||
|
|
||||||
|
/* Is today a leap second day? */
|
||||||
|
if ( ! leap ) {
|
||||||
|
|
||||||
|
/* No. Use 0h tomorrow. */
|
||||||
|
iy1 = iy2;
|
||||||
|
im1 = im2;
|
||||||
|
id1 = id2;
|
||||||
|
ihmsf1[0] = 0;
|
||||||
|
ihmsf1[1] = 0;
|
||||||
|
ihmsf1[2] = 0;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
/* Yes. Are we past the leap second itself? */
|
||||||
|
if ( ihmsf1[2] > 0 ) {
|
||||||
|
|
||||||
|
/* Yes. Use tomorrow but allow for the leap second. */
|
||||||
|
iy1 = iy2;
|
||||||
|
im1 = im2;
|
||||||
|
id1 = id2;
|
||||||
|
ihmsf1[0] = 0;
|
||||||
|
ihmsf1[1] = 0;
|
||||||
|
ihmsf1[2] = 0;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
/* No. Use 23 59 60... today. */
|
||||||
|
ihmsf1[0] = 23;
|
||||||
|
ihmsf1[1] = 59;
|
||||||
|
ihmsf1[2] = 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* If rounding to 10s or coarser always go up to new day. */
|
||||||
|
if ( ndp < 0 && ihmsf1[2] == 60 ) {
|
||||||
|
iy1 = iy2;
|
||||||
|
im1 = im2;
|
||||||
|
id1 = id2;
|
||||||
|
ihmsf1[0] = 0;
|
||||||
|
ihmsf1[1] = 0;
|
||||||
|
ihmsf1[2] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Results. */
|
||||||
|
*iy = iy1;
|
||||||
|
*im = im1;
|
||||||
|
*id = id1;
|
||||||
|
for ( i = 0; i < 4; i++ ) {
|
||||||
|
ihmsf[i] = ihmsf1[i];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Status. */
|
||||||
|
return js;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
210
20200721/c/src/d2tf.c
Normal file
210
20200721/c/src/d2tf.c
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauD2tf(int ndp, double days, char *sign, int ihmsf[4])
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u D 2 t f
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Decompose days to hours, minutes, seconds, fraction.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: vector/matrix support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** ndp int resolution (Note 1)
|
||||||
|
** days double interval in days
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** sign char* '+' or '-'
|
||||||
|
** ihmsf int[4] hours, minutes, seconds, fraction
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) 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...
|
||||||
|
**
|
||||||
|
** 2) 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.
|
||||||
|
**
|
||||||
|
** 3) 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.
|
||||||
|
**
|
||||||
|
** This revision: 2020 April 20
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int nrs, n;
|
||||||
|
double rs, rm, rh, a, w, ah, am, as, af;
|
||||||
|
|
||||||
|
|
||||||
|
/* Handle sign. */
|
||||||
|
*sign = (char) ( ( days >= 0.0 ) ? '+' : '-' );
|
||||||
|
|
||||||
|
/* Interval in seconds. */
|
||||||
|
a = DAYSEC * fabs(days);
|
||||||
|
|
||||||
|
/* Pre-round if resolution coarser than 1s (then pretend ndp=1). */
|
||||||
|
if (ndp < 0) {
|
||||||
|
nrs = 1;
|
||||||
|
for (n = 1; n <= -ndp; n++) {
|
||||||
|
nrs *= (n == 2 || n == 4) ? 6 : 10;
|
||||||
|
}
|
||||||
|
rs = (double) nrs;
|
||||||
|
w = a / rs;
|
||||||
|
a = rs * dnint(w);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Express the unit of each field in resolution units. */
|
||||||
|
nrs = 1;
|
||||||
|
for (n = 1; n <= ndp; n++) {
|
||||||
|
nrs *= 10;
|
||||||
|
}
|
||||||
|
rs = (double) nrs;
|
||||||
|
rm = rs * 60.0;
|
||||||
|
rh = rm * 60.0;
|
||||||
|
|
||||||
|
/* Round the interval and express in resolution units. */
|
||||||
|
a = dnint(rs * a);
|
||||||
|
|
||||||
|
/* Break into fields. */
|
||||||
|
ah = a / rh;
|
||||||
|
ah = dint(ah);
|
||||||
|
a -= ah * rh;
|
||||||
|
am = a / rm;
|
||||||
|
am = dint(am);
|
||||||
|
a -= am * rm;
|
||||||
|
as = a / rs;
|
||||||
|
as = dint(as);
|
||||||
|
af = a - as * rs;
|
||||||
|
|
||||||
|
/* Return results. */
|
||||||
|
ihmsf[0] = (int) ah;
|
||||||
|
ihmsf[1] = (int) am;
|
||||||
|
ihmsf[2] = (int) as;
|
||||||
|
ihmsf[3] = (int) af;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
352
20200721/c/src/dat.c
Normal file
352
20200721/c/src/dat.c
Normal file
@@ -0,0 +1,352 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauDat(int iy, int im, int id, double fd, double *deltat)
|
||||||
|
/*
|
||||||
|
** - - - - - - -
|
||||||
|
** i a u D a t
|
||||||
|
** - - - - - - -
|
||||||
|
**
|
||||||
|
** For a given UTC date, calculate Delta(AT) = TAI-UTC.
|
||||||
|
**
|
||||||
|
** :------------------------------------------:
|
||||||
|
** : :
|
||||||
|
** : IMPORTANT :
|
||||||
|
** : :
|
||||||
|
** : A new version of this function must be :
|
||||||
|
** : produced whenever a new leap second is :
|
||||||
|
** : announced. There are four items to :
|
||||||
|
** : change on each such occasion: :
|
||||||
|
** : :
|
||||||
|
** : 1) A new line must be added to the set :
|
||||||
|
** : of statements that initialize the :
|
||||||
|
** : array "changes". :
|
||||||
|
** : :
|
||||||
|
** : 2) The constant IYV must be set to the :
|
||||||
|
** : current year. :
|
||||||
|
** : :
|
||||||
|
** : 3) The "Latest leap second" comment :
|
||||||
|
** : below must be set to the new leap :
|
||||||
|
** : second date. :
|
||||||
|
** : :
|
||||||
|
** : 4) The "This revision" comment, later, :
|
||||||
|
** : must be set to the current date. :
|
||||||
|
** : :
|
||||||
|
** : Change (2) must also be carried out :
|
||||||
|
** : whenever the function is re-issued, :
|
||||||
|
** : even if no leap seconds have been :
|
||||||
|
** : added. :
|
||||||
|
** : :
|
||||||
|
** : Latest leap second: 2016 December 31 :
|
||||||
|
** : :
|
||||||
|
** :__________________________________________:
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: user-replaceable support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** iy int UTC: year (Notes 1 and 2)
|
||||||
|
** im int month (Note 2)
|
||||||
|
** id int day (Notes 2 and 3)
|
||||||
|
** fd double fraction of day (Note 4)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** deltat double TAI minus UTC, seconds
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status (Note 5):
|
||||||
|
** 1 = dubious year (Note 1)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = bad year
|
||||||
|
** -2 = bad month
|
||||||
|
** -3 = bad day (Note 3)
|
||||||
|
** -4 = bad fraction (Note 4)
|
||||||
|
** -5 = internal error (Note 5)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) UTC began at 1960 January 1.0 (JD 2436934.5) and it is improper
|
||||||
|
** to call the function with an earlier date. If this is attempted,
|
||||||
|
** zero is returned together with a warning status.
|
||||||
|
**
|
||||||
|
** Because leap seconds cannot, in principle, be predicted in
|
||||||
|
** advance, a reliable check for dates beyond the valid range is
|
||||||
|
** impossible. To guard against gross errors, a year five or more
|
||||||
|
** after the release year of the present function (see the constant
|
||||||
|
** IYV) is considered dubious. In this case a warning status is
|
||||||
|
** returned but the result is computed in the normal way.
|
||||||
|
**
|
||||||
|
** For both too-early and too-late years, the warning status is +1.
|
||||||
|
** This is distinct from the error status -1, which signifies a year
|
||||||
|
** so early that JD could not be computed.
|
||||||
|
**
|
||||||
|
** 2) If the specified date is for a day which ends with a leap second,
|
||||||
|
** the 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.
|
||||||
|
**
|
||||||
|
** 3) The day number must be in the normal calendar range, for example
|
||||||
|
** 1 through 30 for April. The "almanac" convention of allowing
|
||||||
|
** such dates as January 0 and December 32 is not supported in this
|
||||||
|
** function, in order to avoid confusion near leap seconds.
|
||||||
|
**
|
||||||
|
** 4) The fraction of day is used only for dates before the
|
||||||
|
** introduction of leap seconds, the first of which occurred at the
|
||||||
|
** end of 1971. It is tested for validity (0 to 1 is the valid
|
||||||
|
** range) even if not used; if invalid, zero is used and status -4
|
||||||
|
** is returned. For many applications, setting fd to zero is
|
||||||
|
** acceptable; the resulting error is always less than 3 ms (and
|
||||||
|
** occurs only pre-1972).
|
||||||
|
**
|
||||||
|
** 5) The status value returned in the case where there are multiple
|
||||||
|
** errors refers to the first error detected. For example, if the
|
||||||
|
** month and day are 13 and 32 respectively, status -2 (bad month)
|
||||||
|
** will be returned. The "internal error" status refers to a
|
||||||
|
** case that is impossible but causes some compilers to issue a
|
||||||
|
** warning.
|
||||||
|
**
|
||||||
|
** 6) In cases where a valid result is not available, zero is returned.
|
||||||
|
**
|
||||||
|
** References:
|
||||||
|
**
|
||||||
|
** 1) For dates from 1961 January 1 onwards, the expressions from the
|
||||||
|
** file ftp://maia.usno.navy.mil/ser7/tai-utc.dat are used.
|
||||||
|
**
|
||||||
|
** 2) The 5ms timestep at 1961 January 1 is taken from 2.58.1 (p87) of
|
||||||
|
** the 1992 Explanatory Supplement.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCal2jd Gregorian calendar to JD
|
||||||
|
**
|
||||||
|
** This revision: 2020 May 31
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Release year for this version of iauDat */
|
||||||
|
enum { IYV = 2020};
|
||||||
|
|
||||||
|
/* Reference dates (MJD) and drift rates (s/day), pre leap seconds */
|
||||||
|
static const double drift[][2] = {
|
||||||
|
{ 37300.0, 0.0012960 },
|
||||||
|
{ 37300.0, 0.0012960 },
|
||||||
|
{ 37300.0, 0.0012960 },
|
||||||
|
{ 37665.0, 0.0011232 },
|
||||||
|
{ 37665.0, 0.0011232 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 38761.0, 0.0012960 },
|
||||||
|
{ 39126.0, 0.0025920 },
|
||||||
|
{ 39126.0, 0.0025920 }
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Number of Delta(AT) expressions before leap seconds were introduced */
|
||||||
|
enum { NERA1 = (int) (sizeof drift / sizeof (double) / 2) };
|
||||||
|
|
||||||
|
/* Dates and Delta(AT)s */
|
||||||
|
static const struct {
|
||||||
|
int iyear, month;
|
||||||
|
double delat;
|
||||||
|
} changes[] = {
|
||||||
|
{ 1960, 1, 1.4178180 },
|
||||||
|
{ 1961, 1, 1.4228180 },
|
||||||
|
{ 1961, 8, 1.3728180 },
|
||||||
|
{ 1962, 1, 1.8458580 },
|
||||||
|
{ 1963, 11, 1.9458580 },
|
||||||
|
{ 1964, 1, 3.2401300 },
|
||||||
|
{ 1964, 4, 3.3401300 },
|
||||||
|
{ 1964, 9, 3.4401300 },
|
||||||
|
{ 1965, 1, 3.5401300 },
|
||||||
|
{ 1965, 3, 3.6401300 },
|
||||||
|
{ 1965, 7, 3.7401300 },
|
||||||
|
{ 1965, 9, 3.8401300 },
|
||||||
|
{ 1966, 1, 4.3131700 },
|
||||||
|
{ 1968, 2, 4.2131700 },
|
||||||
|
{ 1972, 1, 10.0 },
|
||||||
|
{ 1972, 7, 11.0 },
|
||||||
|
{ 1973, 1, 12.0 },
|
||||||
|
{ 1974, 1, 13.0 },
|
||||||
|
{ 1975, 1, 14.0 },
|
||||||
|
{ 1976, 1, 15.0 },
|
||||||
|
{ 1977, 1, 16.0 },
|
||||||
|
{ 1978, 1, 17.0 },
|
||||||
|
{ 1979, 1, 18.0 },
|
||||||
|
{ 1980, 1, 19.0 },
|
||||||
|
{ 1981, 7, 20.0 },
|
||||||
|
{ 1982, 7, 21.0 },
|
||||||
|
{ 1983, 7, 22.0 },
|
||||||
|
{ 1985, 7, 23.0 },
|
||||||
|
{ 1988, 1, 24.0 },
|
||||||
|
{ 1990, 1, 25.0 },
|
||||||
|
{ 1991, 1, 26.0 },
|
||||||
|
{ 1992, 7, 27.0 },
|
||||||
|
{ 1993, 7, 28.0 },
|
||||||
|
{ 1994, 7, 29.0 },
|
||||||
|
{ 1996, 1, 30.0 },
|
||||||
|
{ 1997, 7, 31.0 },
|
||||||
|
{ 1999, 1, 32.0 },
|
||||||
|
{ 2006, 1, 33.0 },
|
||||||
|
{ 2009, 1, 34.0 },
|
||||||
|
{ 2012, 7, 35.0 },
|
||||||
|
{ 2015, 7, 36.0 },
|
||||||
|
{ 2017, 1, 37.0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Number of Delta(AT) changes */
|
||||||
|
enum { NDAT = (int) (sizeof changes / sizeof changes[0]) };
|
||||||
|
|
||||||
|
/* Miscellaneous local variables */
|
||||||
|
int j, i, m;
|
||||||
|
double da, djm0, djm;
|
||||||
|
|
||||||
|
|
||||||
|
/* Initialize the result to zero. */
|
||||||
|
*deltat = da = 0.0;
|
||||||
|
|
||||||
|
/* If invalid fraction of a day, set error status and give up. */
|
||||||
|
if (fd < 0.0 || fd > 1.0) return -4;
|
||||||
|
|
||||||
|
/* Convert the date into an MJD. */
|
||||||
|
j = iauCal2jd(iy, im, id, &djm0, &djm);
|
||||||
|
|
||||||
|
/* If invalid year, month, or day, give up. */
|
||||||
|
if (j < 0) return j;
|
||||||
|
|
||||||
|
/* If pre-UTC year, set warning status and give up. */
|
||||||
|
if (iy < changes[0].iyear) return 1;
|
||||||
|
|
||||||
|
/* If suspiciously late year, set warning status but proceed. */
|
||||||
|
if (iy > IYV + 5) j = 1;
|
||||||
|
|
||||||
|
/* Combine year and month to form a date-ordered integer... */
|
||||||
|
m = 12*iy + im;
|
||||||
|
|
||||||
|
/* ...and use it to find the preceding table entry. */
|
||||||
|
for (i = NDAT-1; i >=0; i--) {
|
||||||
|
if (m >= (12 * changes[i].iyear + changes[i].month)) break;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Prevent underflow warnings. */
|
||||||
|
if (i < 0) return -5;
|
||||||
|
|
||||||
|
/* Get the Delta(AT). */
|
||||||
|
da = changes[i].delat;
|
||||||
|
|
||||||
|
/* If pre-1972, adjust for drift. */
|
||||||
|
if (i < NERA1) da += (djm + fd - drift[i][0]) * drift[i][1];
|
||||||
|
|
||||||
|
/* Return the Delta(AT) value. */
|
||||||
|
*deltat = da;
|
||||||
|
|
||||||
|
/* Return the status. */
|
||||||
|
return j;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2018
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) UNLIKE OTHER SOFA SOFTWARE, WHICH IS STRICTLY "READ ONLY",
|
||||||
|
** USERS ARE PERMITTED TO REPLACE THIS FUNCTION WITH ONE USING
|
||||||
|
** THE SAME NAME BUT DIFFERENT CODE. This is to allow use of
|
||||||
|
** locally supported mechanisms for keeping track of leap
|
||||||
|
** seconds, perhaps file or network based. It avoids the need
|
||||||
|
** for applications to be relinked periodically in order to pick
|
||||||
|
** up SOFA updates.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
}
|
||||||
1263
20200721/c/src/dtdb.c
Normal file
1263
20200721/c/src/dtdb.c
Normal file
File diff suppressed because it is too large
Load Diff
253
20200721/c/src/dtf2d.c
Normal file
253
20200721/c/src/dtf2d.c
Normal file
@@ -0,0 +1,253 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
int iauDtf2d(const char *scale, int iy, int im, int id,
|
||||||
|
int ihr, int imn, double sec, double *d1, double *d2)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u D t f 2 d
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** 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).
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** scale char[] time scale ID (Note 1)
|
||||||
|
** iy,im,id int year, month, day in Gregorian calendar (Note 2)
|
||||||
|
** ihr,imn int hour, minute
|
||||||
|
** sec double seconds
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** d1,d2 double 2-part Julian Date (Notes 3,4)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: +3 = both of next two
|
||||||
|
** +2 = time is after end of day (Note 5)
|
||||||
|
** +1 = dubious year (Note 6)
|
||||||
|
** 0 = OK
|
||||||
|
** -1 = bad year
|
||||||
|
** -2 = bad month
|
||||||
|
** -3 = bad day
|
||||||
|
** -4 = bad hour
|
||||||
|
** -5 = bad minute
|
||||||
|
** -6 = bad second (<0)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) scale identifies the time scale. Only the value "UTC" (in upper
|
||||||
|
** case) is significant, and enables handling of leap seconds (see
|
||||||
|
** Note 4).
|
||||||
|
**
|
||||||
|
** 2) For calendar conventions and limitations, see iauCal2jd.
|
||||||
|
**
|
||||||
|
** 3) The sum of the results, d1+d2, is Julian Date, where normally d1
|
||||||
|
** is the Julian Day Number and d2 is the fraction of a day. In the
|
||||||
|
** case of UTC, where the use of JD is problematical, special
|
||||||
|
** conventions apply: see the next note.
|
||||||
|
**
|
||||||
|
** 4) JD cannot unambiguously represent UTC during a leap second unless
|
||||||
|
** special measures are taken. The SOFA internal convention is that
|
||||||
|
** the quasi-JD day represents UTC days whether the length is 86399,
|
||||||
|
** 86400 or 86401 SI seconds. In the 1960-1972 era there were
|
||||||
|
** smaller jumps (in either direction) each time the linear UTC(TAI)
|
||||||
|
** expression was changed, and these "mini-leaps" are also included
|
||||||
|
** in the SOFA convention.
|
||||||
|
**
|
||||||
|
** 5) The warning status "time is after end of day" usually means that
|
||||||
|
** the sec argument is greater than 60.0. However, in a day ending
|
||||||
|
** in a leap second the limit changes to 61.0 (or 59.0 in the case
|
||||||
|
** of a negative leap second).
|
||||||
|
**
|
||||||
|
** 6) The warning status "dubious year" flags UTCs that predate the
|
||||||
|
** introduction of the time scale or that are too far in the future
|
||||||
|
** to be trusted. See iauDat for further details.
|
||||||
|
**
|
||||||
|
** 7) Only in the case of continuous and regular time scales (TAI, TT,
|
||||||
|
** TCG, TCB and TDB) is the result d1+d2 a Julian Date, strictly
|
||||||
|
** speaking. In the other cases (UT1 and UTC) the result must be
|
||||||
|
** used with circumspection; in particular the difference between
|
||||||
|
** two such results cannot be interpreted as a precise time
|
||||||
|
** interval.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauCal2jd Gregorian calendar to JD
|
||||||
|
** iauDat delta(AT) = TAI-UTC
|
||||||
|
** iauJd2cal JD to Gregorian calendar
|
||||||
|
**
|
||||||
|
** This revision: 2013 July 26
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
int js, iy2, im2, id2;
|
||||||
|
double dj, w, day, seclim, dat0, dat12, dat24, dleap, time;
|
||||||
|
|
||||||
|
|
||||||
|
/* Today's Julian Day Number. */
|
||||||
|
js = iauCal2jd(iy, im, id, &dj, &w);
|
||||||
|
if ( js ) return js;
|
||||||
|
dj += w;
|
||||||
|
|
||||||
|
/* Day length and final minute length in seconds (provisional). */
|
||||||
|
day = DAYSEC;
|
||||||
|
seclim = 60.0;
|
||||||
|
|
||||||
|
/* Deal with the UTC leap second case. */
|
||||||
|
if ( ! strcmp(scale,"UTC") ) {
|
||||||
|
|
||||||
|
/* TAI-UTC at 0h today. */
|
||||||
|
js = iauDat(iy, im, id, 0.0, &dat0);
|
||||||
|
if ( js < 0 ) return js;
|
||||||
|
|
||||||
|
/* TAI-UTC at 12h today (to detect drift). */
|
||||||
|
js = iauDat(iy, im, id, 0.5, &dat12);
|
||||||
|
if ( js < 0 ) return js;
|
||||||
|
|
||||||
|
/* TAI-UTC at 0h tomorrow (to detect jumps). */
|
||||||
|
js = iauJd2cal ( dj, 1.5, &iy2, &im2, &id2, &w);
|
||||||
|
if ( js ) return js;
|
||||||
|
js = iauDat(iy2, im2, id2, 0.0, &dat24);
|
||||||
|
if ( js < 0 ) return js;
|
||||||
|
|
||||||
|
/* Any sudden change in TAI-UTC between today and tomorrow. */
|
||||||
|
dleap = dat24 - (2.0*dat12 - dat0);
|
||||||
|
|
||||||
|
/* If leap second day, correct the day and final minute lengths. */
|
||||||
|
day += dleap;
|
||||||
|
if ( ihr == 23 && imn == 59 ) seclim += dleap;
|
||||||
|
|
||||||
|
/* End of UTC-specific actions. */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Validate the time. */
|
||||||
|
if ( ihr >= 0 && ihr <= 23 ) {
|
||||||
|
if ( imn >= 0 && imn <= 59 ) {
|
||||||
|
if ( sec >= 0 ) {
|
||||||
|
if ( sec >= seclim ) {
|
||||||
|
js += 2;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
js = -6;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
js = -5;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
js = -4;
|
||||||
|
}
|
||||||
|
if ( js < 0 ) return js;
|
||||||
|
|
||||||
|
/* The time in days. */
|
||||||
|
time = ( 60.0 * ( (double) ( 60 * ihr + imn ) ) + sec ) / day;
|
||||||
|
|
||||||
|
/* Return the date and time. */
|
||||||
|
*d1 = dj;
|
||||||
|
*d2 = time;
|
||||||
|
|
||||||
|
/* Status. */
|
||||||
|
return js;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
182
20200721/c/src/eceq06.c
Normal file
182
20200721/c/src/eceq06.c
Normal file
@@ -0,0 +1,182 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauEceq06(double date1, double date2, double dl, double db,
|
||||||
|
double *dr, double *dd)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u E c e q 0 6
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Transformation from ecliptic coordinates (mean equinox and ecliptic
|
||||||
|
** of date) to ICRS RA,Dec, using the IAU 2006 precession model.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian date (Note 1)
|
||||||
|
** dl,db double ecliptic longitude and latitude (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** dr,dd double ICRS right ascension and declination (radians)
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) No assumptions are made about whether the coordinates represent
|
||||||
|
** starlight and embody astrometric effects such as parallax or
|
||||||
|
** aberration.
|
||||||
|
**
|
||||||
|
** 3) The transformation is approximately that from ecliptic longitude
|
||||||
|
** and latitude (mean equinox and ecliptic of date) to mean J2000.0
|
||||||
|
** right ascension and declination, with only frame bias (always
|
||||||
|
** less than 25 mas) to disturb this classical picture.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006
|
||||||
|
** iauTrxp product of transpose of r-matrix and p-vector
|
||||||
|
** iauC2s unit vector to spherical coordinates
|
||||||
|
** iauAnp normalize angle into range 0 to 2pi
|
||||||
|
** iauAnpm normalize angle into range +/- pi
|
||||||
|
**
|
||||||
|
** This revision: 2016 February 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rm[3][3], v1[3], v2[3], a, b;
|
||||||
|
|
||||||
|
|
||||||
|
/* Spherical to Cartesian. */
|
||||||
|
iauS2c(dl, db, v1);
|
||||||
|
|
||||||
|
/* Rotation matrix, ICRS equatorial to ecliptic. */
|
||||||
|
iauEcm06(date1, date2, rm);
|
||||||
|
|
||||||
|
/* The transformation from ecliptic to ICRS. */
|
||||||
|
iauTrxp(rm, v1, v2);
|
||||||
|
|
||||||
|
/* Cartesian to spherical. */
|
||||||
|
iauC2s(v2, &a, &b);
|
||||||
|
|
||||||
|
/* Express in conventional ranges. */
|
||||||
|
*dr = iauAnp(a);
|
||||||
|
*dd = iauAnpm(b);
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
185
20200721/c/src/ecm06.c
Normal file
185
20200721/c/src/ecm06.c
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauEcm06(double date1, double date2, double rm[3][3])
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u E c m 0 6
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** ICRS equatorial to ecliptic rotation matrix, IAU 2006.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** rm double[3][3] ICRS to ecliptic rotation matrix
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 1) The matrix is in the sense
|
||||||
|
**
|
||||||
|
** E_ep = rm x P_ICRS,
|
||||||
|
**
|
||||||
|
** where P_ICRS is a vector with respect to ICRS right ascension
|
||||||
|
** and declination axes and E_ep is the same vector with respect to
|
||||||
|
** the (inertial) ecliptic and equinox of date.
|
||||||
|
**
|
||||||
|
** 2) P_ICRS is a free vector, merely a direction, typically of unit
|
||||||
|
** magnitude, and not bound to any particular spatial origin, such
|
||||||
|
** as the Earth, Sun or SSB. No assumptions are made about whether
|
||||||
|
** it represents starlight and embodies astrometric effects such as
|
||||||
|
** parallax or aberration. The transformation is approximately that
|
||||||
|
** between mean J2000.0 right ascension and declination and ecliptic
|
||||||
|
** longitude and latitude, with only frame bias (always less than
|
||||||
|
** 25 mas) to disturb this classical picture.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauObl06 mean obliquity, IAU 2006
|
||||||
|
** iauPmat06 PB matrix, IAU 2006
|
||||||
|
** iauIr initialize r-matrix to identity
|
||||||
|
** iauRx rotate around X-axis
|
||||||
|
** iauRxr product of two r-matrices
|
||||||
|
**
|
||||||
|
** This revision: 2015 December 11
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double ob, bp[3][3], e[3][3];
|
||||||
|
|
||||||
|
|
||||||
|
/* Obliquity, IAU 2006. */
|
||||||
|
ob = iauObl06(date1, date2);
|
||||||
|
|
||||||
|
/* Precession-bias matrix, IAU 2006. */
|
||||||
|
iauPmat06(date1, date2, bp);
|
||||||
|
|
||||||
|
/* Equatorial of date to ecliptic matrix. */
|
||||||
|
iauIr(e);
|
||||||
|
iauRx(ob, e);
|
||||||
|
|
||||||
|
/* ICRS to ecliptic coordinates rotation matrix, IAU 2006. */
|
||||||
|
iauRxr(e, bp, rm);
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
178
20200721/c/src/ee00.c
Normal file
178
20200721/c/src/ee00.c
Normal file
@@ -0,0 +1,178 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEe00(double date1, double date2, double epsa, double dpsi)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u E e 0 0
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** The equation of the equinoxes, compatible with IAU 2000 resolutions,
|
||||||
|
** given the nutation in longitude and the mean obliquity.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: canonical model.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
** epsa double mean obliquity (Note 2)
|
||||||
|
** dpsi double nutation in longitude (Note 3)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double equation of the equinoxes (Note 4)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The obliquity, in radians, is mean of date.
|
||||||
|
**
|
||||||
|
** 3) The result, which is in radians, operates in the following sense:
|
||||||
|
**
|
||||||
|
** Greenwich apparent ST = GMST + equation of the equinoxes
|
||||||
|
**
|
||||||
|
** 4) The result is compatible with the IAU 2000 resolutions. For
|
||||||
|
** further details, see IERS Conventions 2003 and Capitaine et al.
|
||||||
|
** (2002).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauEect00 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)
|
||||||
|
**
|
||||||
|
** This revision: 2008 May 16
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double ee;
|
||||||
|
|
||||||
|
|
||||||
|
/* Equation of the equinoxes. */
|
||||||
|
ee = dpsi * cos(epsa) + iauEect00(date1, date2);
|
||||||
|
|
||||||
|
return ee;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
185
20200721/c/src/ee00a.c
Normal file
185
20200721/c/src/ee00a.c
Normal file
@@ -0,0 +1,185 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEe00a(double date1, double date2)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u E e 0 0 a
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Equation of the equinoxes, compatible with IAU 2000 resolutions.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double equation of the equinoxes (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The result, which is in radians, operates in the following sense:
|
||||||
|
**
|
||||||
|
** Greenwich apparent ST = GMST + equation of the equinoxes
|
||||||
|
**
|
||||||
|
** 3) The result is compatible with the IAU 2000 resolutions. For
|
||||||
|
** further details, see IERS Conventions 2003 and Capitaine et al.
|
||||||
|
** (2002).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPr00 IAU 2000 precession adjustments
|
||||||
|
** iauObl80 mean obliquity, IAU 1980
|
||||||
|
** iauNut00a nutation, IAU 2000A
|
||||||
|
** iauEe00 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).
|
||||||
|
**
|
||||||
|
** This revision: 2008 May 16
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double dpsipr, depspr, epsa, dpsi, deps, ee;
|
||||||
|
|
||||||
|
|
||||||
|
/* IAU 2000 precession-rate adjustments. */
|
||||||
|
iauPr00(date1, date2, &dpsipr, &depspr);
|
||||||
|
|
||||||
|
/* Mean obliquity, consistent with IAU 2000 precession-nutation. */
|
||||||
|
epsa = iauObl80(date1, date2) + depspr;
|
||||||
|
|
||||||
|
/* Nutation in longitude. */
|
||||||
|
iauNut00a(date1, date2, &dpsi, &deps);
|
||||||
|
|
||||||
|
/* Equation of the equinoxes. */
|
||||||
|
ee = iauEe00(date1, date2, epsa, dpsi);
|
||||||
|
|
||||||
|
return ee;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
191
20200721/c/src/ee00b.c
Normal file
191
20200721/c/src/ee00b.c
Normal file
@@ -0,0 +1,191 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEe00b(double date1, double date2)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u E e 0 0 b
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Equation of the equinoxes, compatible with IAU 2000 resolutions but
|
||||||
|
** using the truncated nutation model IAU 2000B.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double equation of the equinoxes (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The result, which is in radians, operates in the following sense:
|
||||||
|
**
|
||||||
|
** Greenwich apparent ST = GMST + equation of the equinoxes
|
||||||
|
**
|
||||||
|
** 3) The result is compatible with the IAU 2000 resolutions except
|
||||||
|
** that accuracy has been compromised for the sake of speed. For
|
||||||
|
** further details, see McCarthy & Luzum (2001), IERS Conventions
|
||||||
|
** 2003 and Capitaine et al. (2003).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPr00 IAU 2000 precession adjustments
|
||||||
|
** iauObl80 mean obliquity, IAU 1980
|
||||||
|
** iauNut00b nutation, IAU 2000B
|
||||||
|
** iauEe00 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)
|
||||||
|
**
|
||||||
|
** This revision: 2008 May 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double dpsipr, depspr, epsa, dpsi, deps, ee;
|
||||||
|
|
||||||
|
|
||||||
|
/* IAU 2000 precession-rate adjustments. */
|
||||||
|
iauPr00(date1, date2, &dpsipr, &depspr);
|
||||||
|
|
||||||
|
/* Mean obliquity, consistent with IAU 2000 precession-nutation. */
|
||||||
|
epsa = iauObl80(date1, date2) + depspr;
|
||||||
|
|
||||||
|
/* Nutation in longitude. */
|
||||||
|
iauNut00b(date1, date2, &dpsi, &deps);
|
||||||
|
|
||||||
|
/* Equation of the equinoxes. */
|
||||||
|
ee = iauEe00(date1, date2, epsa, dpsi);
|
||||||
|
|
||||||
|
return ee;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
172
20200721/c/src/ee06a.c
Normal file
172
20200721/c/src/ee06a.c
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEe06a(double date1, double date2)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u E e 0 6 a
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Equation of the equinoxes, compatible with IAU 2000 resolutions and
|
||||||
|
** IAU 2006/2000A precession-nutation.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double equation of the equinoxes (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The result, which is in radians, operates in the following sense:
|
||||||
|
**
|
||||||
|
** Greenwich apparent ST = GMST + equation of the equinoxes
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauAnpm normalize angle into range +/- pi
|
||||||
|
** iauGst06a Greenwich apparent sidereal time, IAU 2006/2000A
|
||||||
|
** iauGmst06 Greenwich mean sidereal time, IAU 2006
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** McCarthy, D. D., Petit, G. (eds.), 2004, IERS Conventions (2003),
|
||||||
|
** IERS Technical Note No. 32, BKG
|
||||||
|
**
|
||||||
|
** This revision: 2008 May 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double gst06a, gmst06, ee;
|
||||||
|
|
||||||
|
|
||||||
|
/* Apparent and mean sidereal times. */
|
||||||
|
gst06a = iauGst06a(0.0, 0.0, date1, date2);
|
||||||
|
gmst06 = iauGmst06(0.0, 0.0, date1, date2);
|
||||||
|
|
||||||
|
/* Equation of the equinoxes. */
|
||||||
|
ee = iauAnpm(gst06a - gmst06);
|
||||||
|
|
||||||
|
return ee;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
332
20200721/c/src/eect00.c
Normal file
332
20200721/c/src/eect00.c
Normal file
@@ -0,0 +1,332 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEect00(double date1, double date2)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u E e c t 0 0
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Equation of the equinoxes complementary terms, consistent with
|
||||||
|
** IAU 2000 resolutions.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: canonical model.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double complementary terms (Note 2)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The "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:
|
||||||
|
** iauFal03 mean anomaly of the Moon
|
||||||
|
** iauFalp03 mean anomaly of the Sun
|
||||||
|
** iauFaf03 mean argument of the latitude of the Moon
|
||||||
|
** iauFad03 mean elongation of the Moon from the Sun
|
||||||
|
** iauFaom03 mean longitude of the Moon's ascending node
|
||||||
|
** iauFave03 mean longitude of Venus
|
||||||
|
** iauFae03 mean longitude of Earth
|
||||||
|
** iauFapa03 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", Astron.Astrophys., 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)
|
||||||
|
**
|
||||||
|
** This revision: 2019 June 23
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* Time since J2000.0, in Julian centuries */
|
||||||
|
double t;
|
||||||
|
|
||||||
|
/* Miscellaneous */
|
||||||
|
int i, j;
|
||||||
|
double a, s0, s1;
|
||||||
|
|
||||||
|
/* Fundamental arguments */
|
||||||
|
double fa[14];
|
||||||
|
|
||||||
|
/* Returned value. */
|
||||||
|
double eect;
|
||||||
|
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
/* The series for the EE complementary terms */
|
||||||
|
/* ----------------------------------------- */
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int nfa[8]; /* coefficients of l,l',F,D,Om,LVe,LE,pA */
|
||||||
|
double s, c; /* sine and cosine coefficients */
|
||||||
|
} TERM;
|
||||||
|
|
||||||
|
/* Terms of order t^0 */
|
||||||
|
static const TERM e0[] = {
|
||||||
|
|
||||||
|
/* 1-10 */
|
||||||
|
{{ 0, 0, 0, 0, 1, 0, 0, 0}, 2640.96e-6, -0.39e-6 },
|
||||||
|
{{ 0, 0, 0, 0, 2, 0, 0, 0}, 63.52e-6, -0.02e-6 },
|
||||||
|
{{ 0, 0, 2, -2, 3, 0, 0, 0}, 11.75e-6, 0.01e-6 },
|
||||||
|
{{ 0, 0, 2, -2, 1, 0, 0, 0}, 11.21e-6, 0.01e-6 },
|
||||||
|
{{ 0, 0, 2, -2, 2, 0, 0, 0}, -4.55e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 2, 0, 3, 0, 0, 0}, 2.02e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 2, 0, 1, 0, 0, 0}, 1.98e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 0, 0, 3, 0, 0, 0}, -1.72e-6, 0.00e-6 },
|
||||||
|
{{ 0, 1, 0, 0, 1, 0, 0, 0}, -1.41e-6, -0.01e-6 },
|
||||||
|
{{ 0, 1, 0, 0, -1, 0, 0, 0}, -1.26e-6, -0.01e-6 },
|
||||||
|
|
||||||
|
/* 11-20 */
|
||||||
|
{{ 1, 0, 0, 0, -1, 0, 0, 0}, -0.63e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, 0, 0, 1, 0, 0, 0}, -0.63e-6, 0.00e-6 },
|
||||||
|
{{ 0, 1, 2, -2, 3, 0, 0, 0}, 0.46e-6, 0.00e-6 },
|
||||||
|
{{ 0, 1, 2, -2, 1, 0, 0, 0}, 0.45e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 4, -4, 4, 0, 0, 0}, 0.36e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 1, -1, 1, -8, 12, 0}, -0.24e-6, -0.12e-6 },
|
||||||
|
{{ 0, 0, 2, 0, 0, 0, 0, 0}, 0.32e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 2, 0, 2, 0, 0, 0}, 0.28e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, 2, 0, 3, 0, 0, 0}, 0.27e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, 2, 0, 1, 0, 0, 0}, 0.26e-6, 0.00e-6 },
|
||||||
|
|
||||||
|
/* 21-30 */
|
||||||
|
{{ 0, 0, 2, -2, 0, 0, 0, 0}, -0.21e-6, 0.00e-6 },
|
||||||
|
{{ 0, 1, -2, 2, -3, 0, 0, 0}, 0.19e-6, 0.00e-6 },
|
||||||
|
{{ 0, 1, -2, 2, -1, 0, 0, 0}, 0.18e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 0, 0, 0, 8,-13, -1}, -0.10e-6, 0.05e-6 },
|
||||||
|
{{ 0, 0, 0, 2, 0, 0, 0, 0}, 0.15e-6, 0.00e-6 },
|
||||||
|
{{ 2, 0, -2, 0, -1, 0, 0, 0}, -0.14e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, 0, -2, 1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
|
||||||
|
{{ 0, 1, 2, -2, 2, 0, 0, 0}, -0.14e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, 0, -2, -1, 0, 0, 0}, 0.14e-6, 0.00e-6 },
|
||||||
|
{{ 0, 0, 4, -2, 4, 0, 0, 0}, 0.13e-6, 0.00e-6 },
|
||||||
|
|
||||||
|
/* 31-33 */
|
||||||
|
{{ 0, 0, 2, -2, 4, 0, 0, 0}, -0.11e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, -2, 0, -3, 0, 0, 0}, 0.11e-6, 0.00e-6 },
|
||||||
|
{{ 1, 0, -2, 0, -1, 0, 0, 0}, 0.11e-6, 0.00e-6 }
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Terms of order t^1 */
|
||||||
|
static const TERM e1[] = {
|
||||||
|
{{ 0, 0, 0, 0, 1, 0, 0, 0}, -0.87e-6, 0.00e-6 }
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Number of terms in the series */
|
||||||
|
const int NE0 = (int) (sizeof e0 / sizeof (TERM));
|
||||||
|
const int NE1 = (int) (sizeof e1 / sizeof (TERM));
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------ */
|
||||||
|
|
||||||
|
/* Interval between fundamental epoch J2000.0 and current date (JC). */
|
||||||
|
t = ((date1 - DJ00) + date2) / DJC;
|
||||||
|
|
||||||
|
/* Fundamental Arguments (from IERS Conventions 2003) */
|
||||||
|
|
||||||
|
/* Mean anomaly of the Moon. */
|
||||||
|
fa[0] = iauFal03(t);
|
||||||
|
|
||||||
|
/* Mean anomaly of the Sun. */
|
||||||
|
fa[1] = iauFalp03(t);
|
||||||
|
|
||||||
|
/* Mean longitude of the Moon minus that of the ascending node. */
|
||||||
|
fa[2] = iauFaf03(t);
|
||||||
|
|
||||||
|
/* Mean elongation of the Moon from the Sun. */
|
||||||
|
fa[3] = iauFad03(t);
|
||||||
|
|
||||||
|
/* Mean longitude of the ascending node of the Moon. */
|
||||||
|
fa[4] = iauFaom03(t);
|
||||||
|
|
||||||
|
/* Mean longitude of Venus. */
|
||||||
|
fa[5] = iauFave03(t);
|
||||||
|
|
||||||
|
/* Mean longitude of Earth. */
|
||||||
|
fa[6] = iauFae03(t);
|
||||||
|
|
||||||
|
/* General precession in longitude. */
|
||||||
|
fa[7] = iauFapa03(t);
|
||||||
|
|
||||||
|
/* Evaluate the EE complementary terms. */
|
||||||
|
s0 = 0.0;
|
||||||
|
s1 = 0.0;
|
||||||
|
|
||||||
|
for (i = NE0-1; i >= 0; i--) {
|
||||||
|
a = 0.0;
|
||||||
|
for (j = 0; j < 8; j++) {
|
||||||
|
a += (double)(e0[i].nfa[j]) * fa[j];
|
||||||
|
}
|
||||||
|
s0 += e0[i].s * sin(a) + e0[i].c * cos(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = NE1-1; i >= 0; i--) {
|
||||||
|
a = 0.0;
|
||||||
|
for (j = 0; j < 8; j++) {
|
||||||
|
a += (double)(e1[i].nfa[j]) * fa[j];
|
||||||
|
}
|
||||||
|
s1 += e1[i].s * sin(a) + e1[i].c * cos(a);
|
||||||
|
}
|
||||||
|
|
||||||
|
eect = (s0 + s1 * t ) * DAS2R;
|
||||||
|
|
||||||
|
return eect;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
196
20200721/c/src/eform.c
Normal file
196
20200721/c/src/eform.c
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
int iauEform ( int n, double *a, double *f )
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u E f o r m
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Earth reference ellipsoids.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: canonical.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** n int ellipsoid identifier (Note 1)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** a double equatorial radius (meters, Note 2)
|
||||||
|
** f double flattening (Note 2)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** int status: 0 = OK
|
||||||
|
** -1 = illegal identifier (Note 3)
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The identifier n is a number that specifies the choice of
|
||||||
|
** reference ellipsoid. The following are supported:
|
||||||
|
**
|
||||||
|
** n ellipsoid
|
||||||
|
**
|
||||||
|
** 1 WGS84
|
||||||
|
** 2 GRS80
|
||||||
|
** 3 WGS72
|
||||||
|
**
|
||||||
|
** The n value has no significance outside the SOFA software. For
|
||||||
|
** convenience, symbols WGS84 etc. are defined in sofam.h.
|
||||||
|
**
|
||||||
|
** 2) 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.
|
||||||
|
**
|
||||||
|
** 3) 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.
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
|
||||||
|
/* Look up a and f for the specified reference ellipsoid. */
|
||||||
|
switch ( n ) {
|
||||||
|
|
||||||
|
case WGS84:
|
||||||
|
*a = 6378137.0;
|
||||||
|
*f = 1.0 / 298.257223563;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case GRS80:
|
||||||
|
*a = 6378137.0;
|
||||||
|
*f = 1.0 / 298.257222101;
|
||||||
|
break;
|
||||||
|
|
||||||
|
case WGS72:
|
||||||
|
*a = 6378135.0;
|
||||||
|
*f = 1.0 / 298.26;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
|
||||||
|
/* Invalid identifier. */
|
||||||
|
*a = 0.0;
|
||||||
|
*f = 0.0;
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/* OK status. */
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
181
20200721/c/src/eo06a.c
Normal file
181
20200721/c/src/eo06a.c
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEo06a(double date1, double date2)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - -
|
||||||
|
** i a u E o 0 6 a
|
||||||
|
** - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Equation of the origins, IAU 2006 precession and IAU 2000A nutation.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian Date (Note 1)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double equation of the origins in radians
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) The equation of the origins is the distance between the true
|
||||||
|
** equinox and the celestial intermediate origin and, equivalently,
|
||||||
|
** the difference between Earth rotation angle and Greenwich
|
||||||
|
** apparent sidereal time (ERA-GST). It comprises the precession
|
||||||
|
** (since J2000.0) in right ascension plus the equation of the
|
||||||
|
** equinoxes (including the small correction terms).
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauPnm06a classical NPB matrix, IAU 2006/2000A
|
||||||
|
** iauBpn2xy extract CIP X,Y coordinates from NPB matrix
|
||||||
|
** iauS06 the CIO locator s, given X,Y, IAU 2006
|
||||||
|
** iauEors 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
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double r[3][3], x, y, s, eo;
|
||||||
|
|
||||||
|
|
||||||
|
/* Classical nutation x precession x bias matrix. */
|
||||||
|
iauPnm06a(date1, date2, r);
|
||||||
|
|
||||||
|
/* Extract CIP coordinates. */
|
||||||
|
iauBpn2xy(r, &x, &y);
|
||||||
|
|
||||||
|
/* The CIO locator, s. */
|
||||||
|
s = iauS06(date1, date2, x, y);
|
||||||
|
|
||||||
|
/* Solve for the EO. */
|
||||||
|
eo = iauEors(r, s);
|
||||||
|
|
||||||
|
return eo;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
158
20200721/c/src/eors.c
Normal file
158
20200721/c/src/eors.c
Normal file
@@ -0,0 +1,158 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEors(double rnpb[3][3], double s)
|
||||||
|
/*
|
||||||
|
** - - - - - - - -
|
||||||
|
** i a u E o r s
|
||||||
|
** - - - - - - - -
|
||||||
|
**
|
||||||
|
** Equation of the origins, given the classical NPB matrix and the
|
||||||
|
** quantity s.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** rnpb double[3][3] classical nutation x precession x bias matrix
|
||||||
|
** s double the quantity s (the CIO locator)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double the equation of the origins in radians.
|
||||||
|
**
|
||||||
|
** Notes:
|
||||||
|
**
|
||||||
|
** 1) The equation of the origins is the distance between the true
|
||||||
|
** equinox and the celestial intermediate origin and, equivalently,
|
||||||
|
** the difference between Earth rotation angle and Greenwich
|
||||||
|
** apparent sidereal time (ERA-GST). It comprises the precession
|
||||||
|
** (since J2000.0) in right ascension plus the equation of the
|
||||||
|
** equinoxes (including the small correction terms).
|
||||||
|
**
|
||||||
|
** 2) The algorithm is from Wallace & Capitaine (2006).
|
||||||
|
**
|
||||||
|
** References:
|
||||||
|
**
|
||||||
|
** Capitaine, N. & Wallace, P.T., 2006, Astron.Astrophys. 450, 855
|
||||||
|
**
|
||||||
|
** Wallace, P. & Capitaine, N., 2006, Astron.Astrophys. 459, 981
|
||||||
|
**
|
||||||
|
** This revision: 2013 June 18
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double x, ax, xs, ys, zs, p, q, eo;
|
||||||
|
|
||||||
|
|
||||||
|
/* Evaluate Wallace & Capitaine (2006) expression (16). */
|
||||||
|
x = rnpb[2][0];
|
||||||
|
ax = x / (1.0 + rnpb[2][2]);
|
||||||
|
xs = 1.0 - ax * x;
|
||||||
|
ys = -ax * rnpb[2][1];
|
||||||
|
zs = -x;
|
||||||
|
p = rnpb[0][0] * xs + rnpb[0][1] * ys + rnpb[0][2] * zs;
|
||||||
|
q = rnpb[1][0] * xs + rnpb[1][1] * ys + rnpb[1][2] * zs;
|
||||||
|
eo = ((p != 0) || (q != 0)) ? s - atan2(q, p) : s;
|
||||||
|
|
||||||
|
return eo;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
141
20200721/c/src/epb.c
Normal file
141
20200721/c/src/epb.c
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEpb(double dj1, double dj2)
|
||||||
|
/*
|
||||||
|
** - - - - - - -
|
||||||
|
** i a u E p b
|
||||||
|
** - - - - - - -
|
||||||
|
**
|
||||||
|
** Julian Date to Besselian Epoch.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** dj1,dj2 double Julian Date (see note)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double Besselian Epoch.
|
||||||
|
**
|
||||||
|
** Note:
|
||||||
|
**
|
||||||
|
** The Julian Date is supplied in two pieces, in the usual SOFA
|
||||||
|
** manner, which is designed to preserve time resolution. The
|
||||||
|
** Julian Date is available as a single number by adding dj1 and
|
||||||
|
** dj2. The maximum resolution is achieved if dj1 is 2451545.0
|
||||||
|
** (J2000.0).
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** Lieske, J.H., 1979. Astron.Astrophys., 73, 282.
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 21
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
/* J2000.0-B1900.0 (2415019.81352) in days */
|
||||||
|
const double D1900 = 36524.68648;
|
||||||
|
|
||||||
|
return 1900.0 + ((dj1 - DJ00) + (dj2 + D1900)) / DTY;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
141
20200721/c/src/epb2jd.c
Normal file
141
20200721/c/src/epb2jd.c
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauEpb2jd(double epb, double *djm0, double *djm)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u E p b 2 j d
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Besselian Epoch to Julian Date.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** epb double Besselian Epoch (e.g. 1957.3)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** djm0 double MJD zero-point: always 2400000.5
|
||||||
|
** djm double Modified Julian Date
|
||||||
|
**
|
||||||
|
** Note:
|
||||||
|
**
|
||||||
|
** The Julian Date is returned in two pieces, in the usual SOFA
|
||||||
|
** manner, which is designed to preserve time resolution. The
|
||||||
|
** Julian Date is available as a single number by adding djm0 and
|
||||||
|
** djm.
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 13
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
*djm0 = DJM0;
|
||||||
|
*djm = 15019.81352 + (epb - 1900.0) * DTY;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
143
20200721/c/src/epj.c
Normal file
143
20200721/c/src/epj.c
Normal file
@@ -0,0 +1,143 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
double iauEpj(double dj1, double dj2)
|
||||||
|
/*
|
||||||
|
** - - - - - - -
|
||||||
|
** i a u E p j
|
||||||
|
** - - - - - - -
|
||||||
|
**
|
||||||
|
** Julian Date to Julian Epoch.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** dj1,dj2 double Julian Date (see note)
|
||||||
|
**
|
||||||
|
** Returned (function value):
|
||||||
|
** double Julian Epoch
|
||||||
|
**
|
||||||
|
** Note:
|
||||||
|
**
|
||||||
|
** The Julian Date is supplied in two pieces, in the usual SOFA
|
||||||
|
** manner, which is designed to preserve time resolution. The
|
||||||
|
** Julian Date is available as a single number by adding dj1 and
|
||||||
|
** dj2. The maximum resolution is achieved if dj1 is 2451545.0
|
||||||
|
** (J2000.0).
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 7
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double epj;
|
||||||
|
|
||||||
|
|
||||||
|
epj = 2000.0 + ((dj1 - DJ00) + dj2) / DJY;
|
||||||
|
|
||||||
|
return epj;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
141
20200721/c/src/epj2jd.c
Normal file
141
20200721/c/src/epj2jd.c
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauEpj2jd(double epj, double *djm0, double *djm)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u E p j 2 j d
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Julian Epoch to Julian Date.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards Of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** epj double Julian Epoch (e.g. 1996.8)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** djm0 double MJD zero-point: always 2400000.5
|
||||||
|
** djm double Modified Julian Date
|
||||||
|
**
|
||||||
|
** Note:
|
||||||
|
**
|
||||||
|
** The Julian Date is returned in two pieces, in the usual SOFA
|
||||||
|
** manner, which is designed to preserve time resolution. The
|
||||||
|
** Julian Date is available as a single number by adding djm0 and
|
||||||
|
** djm.
|
||||||
|
**
|
||||||
|
** Reference:
|
||||||
|
**
|
||||||
|
** Lieske, J.H., 1979, Astron.Astrophys. 73, 282.
|
||||||
|
**
|
||||||
|
** This revision: 2013 August 7
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
*djm0 = DJM0;
|
||||||
|
*djm = DJM00 + (epj - 2000.0) * 365.25;
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
2639
20200721/c/src/epv00.c
Normal file
2639
20200721/c/src/epv00.c
Normal file
File diff suppressed because it is too large
Load Diff
183
20200721/c/src/eqec06.c
Normal file
183
20200721/c/src/eqec06.c
Normal file
@@ -0,0 +1,183 @@
|
|||||||
|
#include "sofa.h"
|
||||||
|
|
||||||
|
void iauEqec06(double date1, double date2, double dr, double dd,
|
||||||
|
double *dl, double *db)
|
||||||
|
/*
|
||||||
|
** - - - - - - - - - -
|
||||||
|
** i a u E q e c 0 6
|
||||||
|
** - - - - - - - - - -
|
||||||
|
**
|
||||||
|
** Transformation from ICRS equatorial coordinates to ecliptic
|
||||||
|
** coordinates (mean equinox and ecliptic of date) using IAU 2006
|
||||||
|
** precession model.
|
||||||
|
**
|
||||||
|
** This function is part of the International Astronomical Union's
|
||||||
|
** SOFA (Standards of Fundamental Astronomy) software collection.
|
||||||
|
**
|
||||||
|
** Status: support function.
|
||||||
|
**
|
||||||
|
** Given:
|
||||||
|
** date1,date2 double TT as a 2-part Julian date (Note 1)
|
||||||
|
** dr,dd double ICRS right ascension and declination (radians)
|
||||||
|
**
|
||||||
|
** Returned:
|
||||||
|
** dl,db double ecliptic longitude and latitude (radians)
|
||||||
|
**
|
||||||
|
** 1) The TT date date1+date2 is a Julian Date, apportioned in any
|
||||||
|
** convenient way between the two arguments. For example,
|
||||||
|
** JD(TT)=2450123.7 could be expressed in any of these ways,
|
||||||
|
** among others:
|
||||||
|
**
|
||||||
|
** date1 date2
|
||||||
|
**
|
||||||
|
** 2450123.7 0.0 (JD method)
|
||||||
|
** 2451545.0 -1421.3 (J2000 method)
|
||||||
|
** 2400000.5 50123.2 (MJD method)
|
||||||
|
** 2450123.5 0.2 (date & time method)
|
||||||
|
**
|
||||||
|
** The JD method is the most natural and convenient to use in
|
||||||
|
** cases where the loss of several decimal digits of resolution
|
||||||
|
** is acceptable. The J2000 method is best matched to the way
|
||||||
|
** the argument is handled internally and will deliver the
|
||||||
|
** optimum resolution. The MJD method and the date & time methods
|
||||||
|
** are both good compromises between resolution and convenience.
|
||||||
|
**
|
||||||
|
** 2) No assumptions are made about whether the coordinates represent
|
||||||
|
** starlight and embody astrometric effects such as parallax or
|
||||||
|
** aberration.
|
||||||
|
**
|
||||||
|
** 3) The transformation is approximately that from mean J2000.0 right
|
||||||
|
** ascension and declination to ecliptic longitude and latitude
|
||||||
|
** (mean equinox and ecliptic of date), with only frame bias (always
|
||||||
|
** less than 25 mas) to disturb this classical picture.
|
||||||
|
**
|
||||||
|
** Called:
|
||||||
|
** iauS2c spherical coordinates to unit vector
|
||||||
|
** iauEcm06 J2000.0 to ecliptic rotation matrix, IAU 2006
|
||||||
|
** iauRxp product of r-matrix and p-vector
|
||||||
|
** iauC2s unit vector to spherical coordinates
|
||||||
|
** iauAnp normalize angle into range 0 to 2pi
|
||||||
|
** iauAnpm normalize angle into range +/- pi
|
||||||
|
**
|
||||||
|
** This revision: 2016 February 9
|
||||||
|
**
|
||||||
|
** SOFA release 2020-07-21
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020 IAU SOFA Board. See notes at end.
|
||||||
|
*/
|
||||||
|
{
|
||||||
|
double rm[3][3], v1[3], v2[3], a, b;
|
||||||
|
|
||||||
|
|
||||||
|
/* Spherical to Cartesian. */
|
||||||
|
iauS2c(dr, dd, v1);
|
||||||
|
|
||||||
|
/* Rotation matrix, ICRS equatorial to ecliptic. */
|
||||||
|
iauEcm06(date1, date2, rm);
|
||||||
|
|
||||||
|
/* The transformation from ICRS to ecliptic. */
|
||||||
|
iauRxp(rm, v1, v2);
|
||||||
|
|
||||||
|
/* Cartesian to spherical. */
|
||||||
|
iauC2s(v2, &a, &b);
|
||||||
|
|
||||||
|
/* Express in conventional ranges. */
|
||||||
|
*dl = iauAnp(a);
|
||||||
|
*db = iauAnpm(b);
|
||||||
|
|
||||||
|
/*----------------------------------------------------------------------
|
||||||
|
**
|
||||||
|
** Copyright (C) 2020
|
||||||
|
** Standards Of Fundamental Astronomy Board
|
||||||
|
** of the International Astronomical Union.
|
||||||
|
**
|
||||||
|
** =====================
|
||||||
|
** SOFA Software License
|
||||||
|
** =====================
|
||||||
|
**
|
||||||
|
** NOTICE TO USER:
|
||||||
|
**
|
||||||
|
** BY USING THIS SOFTWARE YOU ACCEPT THE FOLLOWING SIX TERMS AND
|
||||||
|
** CONDITIONS WHICH APPLY TO ITS USE.
|
||||||
|
**
|
||||||
|
** 1. The Software is owned by the IAU SOFA Board ("SOFA").
|
||||||
|
**
|
||||||
|
** 2. Permission is granted to anyone to use the SOFA software for any
|
||||||
|
** purpose, including commercial applications, free of charge and
|
||||||
|
** without payment of royalties, subject to the conditions and
|
||||||
|
** restrictions listed below.
|
||||||
|
**
|
||||||
|
** 3. You (the user) may copy and distribute SOFA source code to others,
|
||||||
|
** and use and adapt its code and algorithms in your own software,
|
||||||
|
** on a world-wide, royalty-free basis. That portion of your
|
||||||
|
** distribution that does not consist of intact and unchanged copies
|
||||||
|
** of SOFA source code files is a "derived work" that must comply
|
||||||
|
** with the following requirements:
|
||||||
|
**
|
||||||
|
** a) Your work shall be marked or carry a statement that it
|
||||||
|
** (i) uses routines and computations derived by you from
|
||||||
|
** software provided by SOFA under license to you; and
|
||||||
|
** (ii) does not itself constitute software provided by and/or
|
||||||
|
** endorsed by SOFA.
|
||||||
|
**
|
||||||
|
** b) The source code of your derived work must contain descriptions
|
||||||
|
** of how the derived work is based upon, contains and/or differs
|
||||||
|
** from the original SOFA software.
|
||||||
|
**
|
||||||
|
** c) The names of all routines in your derived work shall not
|
||||||
|
** include the prefix "iau" or "sofa" or trivial modifications
|
||||||
|
** thereof such as changes of case.
|
||||||
|
**
|
||||||
|
** d) The origin of the SOFA components of your derived work must
|
||||||
|
** not be misrepresented; you must not claim that you wrote the
|
||||||
|
** original software, nor file a patent application for SOFA
|
||||||
|
** software or algorithms embedded in the SOFA software.
|
||||||
|
**
|
||||||
|
** e) These requirements must be reproduced intact in any source
|
||||||
|
** distribution and shall apply to anyone to whom you have
|
||||||
|
** granted a further right to modify the source code of your
|
||||||
|
** derived work.
|
||||||
|
**
|
||||||
|
** Note that, as originally distributed, the SOFA software is
|
||||||
|
** intended to be a definitive implementation of the IAU standards,
|
||||||
|
** and consequently third-party modifications are discouraged. All
|
||||||
|
** variations, no matter how minor, must be explicitly marked as
|
||||||
|
** such, as explained above.
|
||||||
|
**
|
||||||
|
** 4. You shall not cause the SOFA software to be brought into
|
||||||
|
** disrepute, either by misuse, or use for inappropriate tasks, or
|
||||||
|
** by inappropriate modification.
|
||||||
|
**
|
||||||
|
** 5. The SOFA software is provided "as is" and SOFA makes no warranty
|
||||||
|
** as to its use or performance. SOFA does not and cannot warrant
|
||||||
|
** the performance or results which the user may obtain by using the
|
||||||
|
** SOFA software. SOFA makes no warranties, express or implied, as
|
||||||
|
** to non-infringement of third party rights, merchantability, or
|
||||||
|
** fitness for any particular purpose. In no event will SOFA be
|
||||||
|
** liable to the user for any consequential, incidental, or special
|
||||||
|
** damages, including any lost profits or lost savings, even if a
|
||||||
|
** SOFA representative has been advised of such damages, or for any
|
||||||
|
** claim by any third party.
|
||||||
|
**
|
||||||
|
** 6. The provision of any version of the SOFA software under the terms
|
||||||
|
** and conditions specified herein does not imply that future
|
||||||
|
** versions will also be made available under the same terms and
|
||||||
|
** conditions.
|
||||||
|
*
|
||||||
|
** In any published work or commercial product which uses the SOFA
|
||||||
|
** software directly, acknowledgement (see www.iausofa.org) is
|
||||||
|
** appreciated.
|
||||||
|
**
|
||||||
|
** Correspondence concerning SOFA software should be addressed as
|
||||||
|
** follows:
|
||||||
|
**
|
||||||
|
** By email: sofa@ukho.gov.uk
|
||||||
|
** By post: IAU SOFA Center
|
||||||
|
** HM Nautical Almanac Office
|
||||||
|
** UK Hydrographic Office
|
||||||
|
** Admiralty Way, Taunton
|
||||||
|
** Somerset, TA1 2DN
|
||||||
|
** United Kingdom
|
||||||
|
**
|
||||||
|
**--------------------------------------------------------------------*/
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user