Standards of Fundamental Astronomy
SOFA, which stands for "Standards of Fundamental Astronomy", is an International Astronomical Union (IAU) service that maintains an authoritative and accessible set of algorithms and procedures to implement standard models used in fundamental astronomy. Included are procedures for precession-nutation, Earth rotation, sidereal time, conversions between time scales, and so on; a more detailed list is given below.
SOFA consists of a dedicated web site, the SOFA Center, and an International Board, of experts that establishes, maintains and checks the material. Within the IAU, SOFA is a Division I activity that reports to Commission 19. The Board membership represents all of the Commissions from Division I, Commission 5 from Division XII, as well as the IERS. The SOFA website provides access to the current SOFA Software Collection, and an archive to all the previous releases, which may be viewed and downloaded. The SOFA Software Collection currently provides subroutine libraries, in Fortran 77 and ANSI C, as building blocks for experienced users wishing to write their own applications using authoritative methods. For example, there are routines that calculate precession and nutation angles, and the transformation matrix between the celestial and terrestrial reference systems, all compliant with IAU Resolutions.
SOFA was set up by the IAU in 1994 under the Division I Working Group on Astronomical Standards. Patrick Wallace (Rutherford Appleton Laboratory, UK) was appointed as the first Chair of the SOFA Board in February 1996, a position he held for the first 15 years. The first Fortran 77 release was made in 2001 March, while the first ANSI C release was achieved in February 2009. The latest release, in December 2010, contained the eighth Fortran release and the third ANSI C release. The current Chair is Catherine Hohenkerk of Her Majesty’s Nautical Almanac Office (HMNAO), UK.
The SOFA Center
The SOFA Center comprises its web site at http://www.iausofa.org, which is maintained by HMNAO staff at the UK Hydrographic Office; this is the public face of SOFA. From this web site, users may navigate to each routine and view or copy its source code. Alternatively, either of the current libraries, Fortran 77 or ANSI C, may be downloaded. From the SOFA Archive Section, any previous version of an individual routine may be viewed and downloaded, or the whole release downloaded. Users are encouraged to register their e-mail addresses, so that they may receive news about updates and known problems.
SOFA's Current Software Collection
The routines are divided into two main groups: there are 131 astronomical routines and another 55 that provide support for vector/matrix operations and working with angles.
SOFA's Astronomical Library
This is the group of routines that implement astronomical algorithms. It is divided into two groups: those that are canonical and support IAU resolutions, and those that are designated support routines. The following eight categories summarize what is presently available in this group.
|Category (No.)||Brief Description of Routines|
|Calendars (7)|| Civil and Julian date conversions.
Besselian and Julian epoch conversions.
|Time scales (20)|| There are 16 routines that link the time scales TAI, UTC, UT1, TT, TCG, TDB, and TCB; see SOFA Time Scales and Calendar Tools. These routines require the user to provide supplementary quantities such as ΔT and UT1−UTC, which either cannot be predicted or for which there are choices of model to be made.
There are two routines that handle the conversion between civil date and time, i.e. year, month, day, hour, minute and seconds and SOFA’s two-part Julian date (or in the case of UTC, quasi-JD). In the case of UTC, this includes dealing with leap seconds and the rare but crucial cases when it is necessary to display a seconds field that begins with 60.
Difference between TAI and UTC.
An approximation to TDB−TT.
|Earth rotation and sidereal time (15)|| Greenwich mean sidereal time (IAU 1982, 2000, 2006).
Greenwich (apparent) sidereal time (IAU 1994, 2000A, 2000B, 2006/2000A).
Equation of the equinoxes (IAU 1994, 2000A, 2000B 2006/2000A).
Equation of the equinoxes "complementary terms" (IAU 2000).
Earth rotation angle (IAU 2000).
|Ephemerides (2)|| Barycentric and heliocentric position and velocity of the Earth (medium precision).
Approximate heliocentric position and velocity of planets.
|Fundamental arguments (14)||Fundamental arguments used in the IAU 2000A nutation and taken from the IERS Conventions (2003).|
|Geocentric / geodetic transformations (5)||Conversions between geocentric and geodetic systems. The three standard reference ellipsoids supported are WGS84, GRS80 and WGS72, as well as a user specified ellipsoid.|
|Precession / nutation / polar motion (60)|| Matrices for frame bias (IAU 2000), precession (IAU 1976, 2000, 2006), nutation (IAU 1980, 2000A, 2000B, 2006/2000A).
Frame bias components (IAU 2000).
Precession angles ζ, z, θ, (IAU 1976, 2000, 2006).
Precession angles ζ, z, θ, including frame bias (IAU 2006).
All equinox based precession angles (IAU 2006).
Fukushima-Williams precession angles, including frame bias (IAU 2006).
Mean obliquity (IAU 1980, 2006).
Nutation angles Δψ, Δε (IAU 1980, 2000A, 2000B).
CIP X,Y and CIO Locator s and s' (IAU 2000A, 2000B, 2006/2000A).
Equation of the origins.
Polar motion matrix given position of the pole.
Celestial to intermediate matrix (IAU 1976/1980, 2000A, 2000B, 2006/2000A).
Celestial to true equinox of date (NPB) matrix (IAU 1976/1980, 2000A, 2000B, 2006/2000A).
Celestial to terrestrial, classical (IAU 2000A, 2000B, 2006/2000A).
Celestial to terrestrial, CIO (IAU 2000A, 2000B, 2006/2000A).
Routines that use inputs from these routines to produce a range of quantities.
|Star catalog conversions and space motion (8)|| Conversions between the star catalog coordinates and the rectangular position and velocity vectors.
Conversion between FK5 and Hipparcos star catalog coordinates.
Update a star’s catalog position due to space motion.
SOFA's Vector/Matrix Support Library
This is a group of routines that support the astronomical algorithms. Vectors are either position vectors P(3) or p or position and velocity vectors PV(3,2) or pv, in Fortran 77 or ANSI C, respectively, while matrices are all 3x3.
|Category (No.)||Brief Description of Routines|
|Initialization (4), and copy / extend / extract (5)||Zeroize, initialize to identity, and manipulate a p-vector, pv-vector or matrix.|
|Build rotations (3)||Rotations about the x, y, or z-axis.|
|Spherical/Cartesian conversions (6)||Conversions between spherical and Cartesian coordinates.|
|Operations on vectors (17), matrices (2), and matrix-vector products (4)|| Vector algebra; plus, minus, dot (scalar) and cross (vector) products, modulus, normalize, scalar times vector.
Product of two matrices and transpose of a matrix.
Product of a matrix and vector.
|Rotation vectors (2)||Conversions between matrices and rotation vectors.|
|Separation and position angle (4)||Conversions between vectors and position angle and separation.|
|Operations on angles (8)||Conversions between radians and ° (degrees) ' (arc minutes) " (arc seconds), radians and h (hours) m (minutes) s (seconds), and days and h m s. Normalize radians between 0 and 2π and −π to +π.|
Documentation of SOFA's Routines
There are two types of documentation: the manual and the "cookbooks". The former is merely reference material; the latter (at present there are two) contain descriptive and tutorial material, and include examples, with code and numerical results.
The code to each routine contains introductory comments giving detailed information, such as what the routine does and how it is used, the input and output arguments, the accuracy of the algorithm, as well as the references that it is based on. These preambles are pulled together into the manual entiitled The SOFA Software Libraries, one for each supported language. The manual is therefore terse, and although it fully specifies the routines, it is not aimed at the beginner.
SOFA Tools for Earth Attitude
This cookbook deals with both the equinox based and CIO based methods of transformations from the Geocentric Celestial Reference System to the International Terrestrial Reference System. Included is a complete Fortran program (there is no ANSI C version at present) that computes the transformation that demonstrates five methods, namely:
- IAU 1976/1980/1982/1994, equinox based,
- IAU 2000A, CIO based using classical angles,
- IAU 2000A, equinox based, using classical angles,
- IAU 2006/2000A, CIO based using classical angles, and
- IAU 2006/2000A, CIO based, using X,Y series.
SOFA Time Scale & Calendar Tools
There are both Fortran and ANSI C versions of this cookbook; however, the texts are identical, but the numerical examples have different program code. The most complete example takes an observer's UTC and computes the equivalent time in all the other supported time scales.
Tools for Validation of the SOFA Collection
SOFA provides a validation program for each of the supported languages:
- t_sofa_f.for (for Fortran 77) and
- t_sofa_c.c (for ANSI C).
Users are urged to build and run this program as part of the installation of the library concerned. It is not an exhaustive test, but the validation program does at least call all the routines and checks the calculated results against trusted values (produced using quadruple precision). Users who encounter a failure of the validation program are encouraged to contact the Board (email@example.com), noting details of the system (i.e. compiler, operating system, and hardware) upon which the failure took place.
Installation of the SOFA Library
The complete SOFA Library source set is available in a single download tarball for UNIX (UNIX line-terminators), or Zip archives for Windows and Macintosh systems (DOS line-terminators)
SOFA receives no direct funding, and its work is possible only through goodwill. Thanks are due to all the Board members, the webmaster, and all the host institutions.
The Board would like to record and acknowledge the leadership of Patrick Wallace over its first fifteen years during his chairmanship. The Board also acknowledges the huge contribution that he has made and is still making to SOFA and for the wider astronomical community.
The Board acknowledges the UK Hydrographic Office for hosting the SOFA web site.
Fukushima, T., 1995, “Report of the IAU WGAS Subgroup on Standard Procedures”, Highlights of Astronomy, 10.
Wallace, P.T., 1996, “The IAU SOFA Initiative”, Astronomical Society of the Pacific Conference Series, 101, pp 207-210.
Wallace, P. T., 1998, “SOFA: Standards of Fundamental Astronomy”, Highlights of Astronomy, 11, p 191.
Wallace, P., 2000, “SOFA Software Progress Report”, Proceedings of IAU Colloquium 180: Towards Models and Constants for Sub-Microarcsecond Astrometry, pp 353-362.
Wallace, P., 2000, SOFA, IAU Joint Discussion, 2.
Wallace, P., 2002, “Update to SOFA Report”, Highlights in Astronomy, 12, p 128.
Wallace, P.T., 2002, “Software for Implementing the IAU 2000 Resolutions”, IERS Technical Note, No. 29, pp 65-69.
Wallace, P.T., 2004, “SOFA software support for IAU 2000”, Bulletin of the American Astronomical Society, 36, p 694.
Wallace, P.T., 2009, “Recent SOFA Developments”, Proceedings of the Journées 2008 Systèmes de référence spatio-temporels, pp 50-53.
Hohenkerk, C.Y., “SOFA—A Status Report, Review and Look to the Future”, Proceedings of the Journées 2010 Systèmes de référence spatio-temporels, (in press).