Click or drag to resize
SOFA Class
This class presents a subset of the SOFA (Standards of Fundamental Astronomy) astrometry routines in a form that is easily accessible from both 32bit and 64bit .NET and COM applications.
Inheritance Hierarchy

Namespace: ASCOM.Astrometry.SOFA
Assembly: ASCOM.Astrometry (in ASCOM.Astrometry.dll) Version: (
public class SOFA : IDisposable

The SOFA type exposes the following members.

Public methodSOFA
Creates a new instance of the SOFA component
Public methodAf2a
Convert degrees, arcminutes, arcseconds to radians.
Public methodAnp
Normalize angle into the range 0 <= a < 2pi.
Public methodCelestialToIntermediate
Transform ICRS star data, epoch J2000.0, to CIRS using the SOFA Atci13 function.
Public methodCelestialToObserved
ICRS RA,Dec to observed place using the SOFA Atco13 function.
Public methodDispose
Cleans up the SOFA object
Public methodDtf2d
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).
Public methodEo06a
Equation of the origins, IAU 2006 precession and IAU 2000A nutation.
Public methodStatic memberFreeLibrary
Unloads a library DLL
Public methodIntermediateToCelestial
Transform star RA,Dec from geocentric CIRS to ICRS astrometric using the SOFA Atic13 function.
Public methodIntermediateToObserved
CIRS RA,Dec to observed place using the SOFA Atio13 funciton.
Public methodStatic memberLoadLibrary
Loads a library DLL
Public methodObservedToCelestial
Observed place at a groundbased site to to ICRS astrometric RA,Dec using the SOFA Atoc13 function.
Public methodObservedToIntermediate
Observed place to CIRS using the SOFA Atoi13 function.
Public methodSofaIssueDate
Release date of the SOFA issue currently used by this component.
Public methodSofaReleaseNumber
Major number of the SOFA issue currently used by this component.
Public methodSofaRevisionDate
Release date of the revision to the SOFA Issue that is actually being used by this component.
Public methodTaiTt
Time scale transformation: International Atomic Time, TAI, to Terrestrial Time, TT.
Public methodTaiUtc
Time scale transformation: International Atomic Time, TAI, to Coordinated Universal Time, UTC.
Public methodTf2a
Convert hours, minutes, seconds to radians.
Public methodTtTai
Time scale transformation: Terrestrial Time, TT, to International Atomic Time, TAI.
Public methodUtcTai
Time scale transformation: Coordinated Universal Time, UTC, to International Atomic Time, TAI.
SOFA operates under the auspices of the International Astronomical Union (IAU) to provide algorithms and software for use in astronomical computing. The entire SOFA collection comprises many authoritative routines across a number of areas including:
  • Astrometry
  • Calendars
  • Time Scales
  • Earth rotation and sidereal time
  • Ephemerides (medium precision)
  • Geocentric/geodetic transformations
  • Precession, nutation, polar motion
  • Star space motion
  • Star catalogue conversion

The class's functionality is provided by underlying DLLs compiled from unmodified original C source code distributed by SOFA but the class does not constitute software provided by and/or endorsed by SOFA. No change whatsoever has been made to the algorithms implemented by SOFA that realise IAU standards.

SOFA provides a validation routine to confirm that the compiled library provides expected results. 32 and 64bit versions of this routine (SofaTestXX.exe and SofaTestXX-64.exe, where XX is the issue number) are included in this distribution and can be found in the Common Files\ASCOM\Astrometry directory. To run them open a command prompt in the Astrometry directory and enter the commands SofaTest10 /verbose and SofaTest10-64 /verbose. The susbset of these tests that is relevant to the routines presented in this component have also been incorporated in the ASCOM Diagnostics tool and expected operation of the SOFA routnines can be confirmed through this tool.

Further information on the full library of SOFA routines is available here:

See Also