Sofa Class

Presentation facade for the IAU SOFA library

Definition

Namespace: ASCOM.Tools
Assembly: ASCOM.AstrometryTools (in ASCOM.AstrometryTools.dll) Version: 3.0.0-rc.1+86c25ce733aebb4d8b1b8a62e84770ea5e972bea
C#
public class Sofa
Inheritance
Object    Sofa

Remarks

This component assumes that a native library called libsofa exists in the same folder as the ASCOM.Tools DLL. This library must be compiled from the IAU SOFA C code base for each supported OS platform: linux64, arm32, win64 etc.

Constructors

SofaInitializes a new instance of the Sofa class

Methods

A2af Angle to degrees, arcminutes, arcseconds, fraction.
A2tf Angle to hours, minutes, seconds, fraction.
Ab Aberration helper: convert position vector in star's natural system to proper place with observer velocity etc.
Ae2hd Azimuth and altitude to hour angle and declination.
Af2a Convert degrees, arcminutes, arcseconds to radians.
Anp Normalize angle into the range 0 <= a < 2pi.
Anpm Normalize angle into the range -pi to +pi.
Apcg Prepare star-independent astrometry parameters using observer EBPV and Sun vector.
Apcg13 Prepare star-independent astrometry parameters (IAU 2000/2006) using internal Earth ephemeris.
Apci Prepare astrometry parameters given observer PV and Sun vector.
Apci13 Prepare astrometry parameters (IAU 2000/2006) and return equation of the origins.
Apco Prepare astrometry parameters for observed place (with refraction constants).
Apco13 Convenience wrapper to prepare astrometry parameters for observed place (IAU 2000/2006). Returns status: 0 = ok, non-zero signals problems (see SOFA docs).
Apcs Prepare astrometry parameters using pv and Earth heliocentric/barycentric vectors.
Apcs13 Prepare astrometry parameters using pv (IAU 2000/2006).
Aper Apply refraction/perception corrections to astrometry parameters.
Aper13 Apply refraction/perception corrections (IAU 2000/2006).
Apio Prepare observer-related astrometry parameters.
Apio13 Convenience Apio (IAU 2000/2006) returning status.
Atcc13 Catalog-to-catalog transformation (example).
Atccq Catalog-to-catalog using prepared astrometry.
Atci13 Transform ICRS star data, epoch J2000.0, to CIRS using the SOFA Atci13 function.
Atciq ICRS->CIRS using prepared astrometry (inverse of atci).
Atciqn Variant with bodies for light deflection corrections.
Atciqz Quick form of atci for zeroing proper motion/parallax.
Atco13 ICRS RA,Dec to observed place using the SOFA Atco13 function.
Atic13 Transform star RA,Dec from geocentric CIRS to ICRS astrometric using the SOFA Atic13 function.
Aticq CIRS->ICRS using prepared astrometry.
Aticqn CIRS->ICRS with body corrections.
Atio13 CIRS RA,Dec to observed place using the SOFA Atio13 funciton.
Atioq CIRS to observed place using prepared astrometry.
Atoc13 Observed place at a ground based site to ICRS astrometric RA,Dec using the SOFA Atoc13 function.
Atoi13 Observed place to CIRS using the SOFA Atoi13 function.
Atoiq Observed place to CIRS using prepared astrometry.
Bi00 Fundamental arguments: Delaunay arguments and mean longitude of the ascending node of the Moon.
Bp00 Frame bias and precession, IAU 2000.
Bp06 Frame bias and precession, IAU 2006.
Bpn2xy Extract the CIP X,Y coordinates from a bias-precession-nutation matrix.
C2i00a Form the celestial-to-intermediate matrix using the IAU 2000A precession-nutation model.
C2i00b Form the celestial-to-intermediate matrix using the IAU 2000B precession-nutation model.
C2i06a Bias-precession-nutation matrix, IAU 2000/2006, using ICRS X,Y.
C2ibpn CIO-based bias-precession-nutation matrix (IAU 2006 precession, IAU 2000A nutation).
C2ixy CIO coordinates from X,Y.
C2ixys CIO coordinates from CIO locator.
C2s Cartesian to spherical coordinates.
C2t00a ICRS to ITRS matrix (IAU 2000/2006).
C2t00b ICRS to ITRS matrix (IAU 2000B).
C2t06a ICRS to ITRS matrix (IAU 2006/2000A).
C2tcio Form ICRS to ITRS matrix from CIO and polar motion.
C2teqx Form ICRS to ITRS matrix from bias-precession-nutation and Greenwich Apparent Sidereal Time.
C2tpe ICRS to ITRS matrix given nutation.
C2txy ICRS to ITRS matrix given CIO coordinates.
Cal2jd Convert calendar date to 2-part Julian Date.
Cp Copies the contents of a 3-element position vector to another 3-element vector.
Cpv Copy a position vector.
Cr Copies the elements of a 3×3 rotation matrix from one array to another.
CreateAstrom Return a fully initialised Astrom struct. Only required for frameworks earlier than .NET 8.
CreateLdBody Returns a fully initialised LdBody struct. Only required for frameworks earlier than .NET 8.
D2dtf Format a 2-part Julian Date into Gregorian calendar date and time fields.
D2tf Decompose days into hours, minutes, seconds, fraction.
Dat For a given UTC date, calculate Delta(AT) = TAI−UTC (number of leap seconds).
Dtdb Approximate TDB−TT for an observer on the Earth.
Dtf2d 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).
Eceq06 Transform ecliptic to equatorial coordinates.
Ecm06 Ecliptic to equatorial matrix (IAU 2006).
Ee00 Equation of the Equinoxes, IAU 2000 model.
Ee00a Equation of the Equinoxes, IAU 2000 model.
Ee00b Equation of the Equinoxes, IAU 2000B model.
Ee06a Equation of the Equinoxes, IAU 2000B model.
Eect00 Equation of the Equinoxes Complement, IAU 2000.
Eform Reference ellipsoid parameters.
Eo06a Equation of the origins, IAU 2006 precession and IAU 2000A nutation.
Eors Equation of the origins given nutation matrix.
Epb Return Besselian epoch for given JD pair.
Epb2jd Split Besselian epoch into JD pair.
Epj Return Julian epoch for given JD pair.
Epj2jd Split Julian epoch into JD pair.
Epv00 Earth position and velocity (heliocentric and barycentric).
Eqec06 Transform equatorial to ecliptic coordinates.
Eqeq94 Equation of the Equinoxes, IAU 1994 model.
Era00 Earth rotation angle (IAU 2000 model)
Fad03 Mean elongation of the Moon from the Sun (IERS Conventions 2003).
Fae03 Mean longitude of Earth (IERS Conventions 2003).
Faf03 Mean longitude of the Moon minus that of the ascending node (IERS Conventions 2003).
Faju03 Mean longitude of Jupiter (IERS Conventions 2003).
Fal03 Mean anomaly of the Moon (IERS Conventions 2003).
Falp03 Mean anomaly of the Sun (IERS Conventions 2003).
Fama03 Mean longitude of Mars (IERS Conventions 2003).
Fame03 Mean longitude of Mercury (IERS Conventions 2003).
Fane03 Mean longitude of Neptune (IERS Conventions 2003).
Faom03 Mean longitude of the Moon's ascending node (IERS Conventions 2003).
Fapa03 General accumulated precession in longitude.
Fasa03 Mean longitude of Saturn (IERS Conventions 2003).
Faur03 Mean longitude of Uranus (IERS Conventions 2003).
Fave03 Mean longitude of Venus (IERS Conventions 2003).
Fk425 Transform between FK4 and FK5 star catalog systems.
Fk45z Transform from FK4 to FK5 (catalog).
Fk524 Transform between FK5 and FK4 star catalog systems.
Fk52h Transform from FK5 (J2000.0) to Hipparcos.
Fk54z Transform from FK5 to FK4 (catalog).
Fk5hip FK5 to Hipparcos rotation matrix.
Fk5hz Transform from FK5 to Hipparcos (catalog).
Fw2m Frame Tie and precession, IAU 1976 (Bessel epoch related parameters).
Fw2xy CIO coordinates from Frame Tie parameters.
G2icrs Transform Galactic to ICRS coordinates.
Gc2gd Geocentric to geodetic coordinates.
Gc2gde Geocentric to geodetic coordinates (given ellipsoid).
Gd2gc Geodetic to geocentric coordinates.
Gd2gce Geodetic to geocentric coordinates (given ellipsoid).
Gmst00 Greenwich mean sidereal time (model consistent with IAU 2000 resolutions
Gmst06 Greenwich Mean Sidereal Time (UT1 to TT).
Gmst82 Greenwich Mean Sidereal Time (UT1 only).
Gst00a Calculates the Greenwich apparent sidereal time (GAST) at 0h UT1, using the IAU 2000A precession-nutation model.
Gst00b Greenwich Apparent Sidereal Time (UT1 only, precedes IAU 2000).
Gst06 Greenwich Apparent Sidereal Time (IAU 2000/2006).
Gst06a Greenwich Apparent Sidereal Time (IAU 2000/2006).
Gst94 Greenwich Apparent Sidereal Time (UT1 only, precedes IAU 2000).
H2fk5 Transform from Hipparcos to FK5 (J2000.0).
Hd2ae Hour angle and declination to azimuth and altitude.
Hd2pa Hour angle and declination to parallactic angle.
Hfk5z Transform from Hipparcos to FK5 (catalog).
Icrs2g Transform ICRS to Galactic coordinates.
Ir Initialize a rotation matrix to the identity matrix.
Jd2cal Convert JD pair to calendar date.
Jdcalf Julian date conversion with specified decimal places.
Ld Light deflection by a single body.
Ldn Light deflection for list of bodies.
Ldsun Sun-specific light deflection helper.
Lteceq Transform ecliptic to equatorial (FK4 epoch related).
Ltecm Ecliptic to equatorial matrix (FK4 epoch related).
Lteqec Transform equatorial to ecliptic (FK4 epoch related).
Ltp Precession matrix, Besselian epoch.
Ltpb Precession matrix, Besselian epoch, including E-terms.
Ltpecl Transform ecliptic coordinates to FK4 J1900.0 (flat Earth model).
Ltpequ Transform equatorial coordinates to FK4 J1900.0 (flat Earth model).
Moon98 Moon position helper.
Num00a Computes the nutation matrix for a given date using the IAU 2000A nutation model.
Num00b Bias-precession-nutation matrix, precession IAU 2000 or IAU 1976, nutation IAU 2000B.
Num06a Computes the nutation, precession, and frame bias rotation matrix for a given date using the IAU 2006 precession and IAU 2000A nutation models.
Numat Bias-precession-nutation matrix, IAU 2000 precession with IAU 2000A or 2000B nutation.
Nut00a Computes the nutation in longitude and obliquity for a given date using the IAU 2000A model.
Nut00b Bias-precession-nutation matrix, precession IAU 2000 or IAU 1976, nutation IAU 2000B.
Nut06a Nutation: IAU 2000B model.
Nut80 Nutation: IAU 1980 model.
Nutm80 Nutation-matrix: IAU 1980.
Obl06 Calculates the mean obliquity of the ecliptic for a given date using the IAU 2006 precession model.
Obl80 Mean obliquity of the ecliptic, IAU 1980 model.
P06e CIO RA and Earth Orientation parameters (high precision).
P2pv Extend a 3D position vector to a 6D position-velocity vector by copying the position to the velocity.
P2s Cartesian to spherical polar coordinates.
Pap Parallactic angle for a star.
Pas Parallactic angle for two directions.
Pb06 Precession matrix, IAU 2006 (Besselian epoch related parameters).
Pdp Scalar product of two 3D vectors.
Pfw06 Precession matrix elements (Fukushima-Williams precession angles).
Plan94 Planetary ephemeris (approximate).
Pm Magnitude of a 3D vector.
Pmat00 Precession matrix, IAU 2000.
Pmat06 Precession matrix, IAU 2006.
Pmat76 Precession matrix, IAU 1976.
Pmp Subtract two 3D vectors.
Pmpx Proper motion an parallax propagation helper.
Pmsafe Safe proper-motion propagation (returns status).
Pn Normalize a 3D vector.
Pn00 Precession-nutation matrix (full precision).
Pn00a Precession-nutation matrix (IAU 2000A).
Pn00b Precession-nutation matrix (IAU 2000B).
Pn06 Precession-nutation matrix (full precision, given nutation).
Pn06a Precession-nutation matrix (IAU 2006/2000A).
Pnm00a Precession-nutation matrix, IAU 1976 precession and IAU 1980 nutation.
Pnm00b Precession-nutation matrix, IAU 2000 or IAU 1976 precession, IAU 2000B nutation.
Pnm06a Precession-nutation matrix, IAU 2000/2006 using precession IAU 2006 and nutation IAU 2000A.
Pnm80 Precession-nutation matrix, IAU 1976 precession and IAU 1980 nutation.
Pom00 Polar motion matrix.
Ppp Add two 3D vectors.
Ppsp Add a scaled 3D vector to another 3D vector.
Pr00 Fundamental arguments (mean elements of lunar orbit).
Prec76 Precession matrix from Besselian epoch to Besselian epoch.
Pv2p Extract a 3D position vector from a 6D position-velocity vector.
Pv2s Position-velocity vector to spherical coordinates.
Pvdpv Scalar product of two 6D position-velocity vectors.
Pvm Magnitude and unit vector of a 6D position-velocity vector.
Pvmpv Subtract two 6D position-velocity vectors.
Pvppv Add two 6D position-velocity vectors.
Pvstar Position-velocity vector to spherical polar coordinates.
Pvtob Convert site geodetic coordinates to PV.
Pvu Update a 6D position-velocity vector by adding a constant velocity step.
Pvup Update a 6D position-velocity vector by interpolating to a different time.
Pvxpv Cross product of two 6D position-velocity vectors.
Pxp Cross product of two 3D vectors.
Refco Refraction constants from meteorology and wavelength.
Rm2v Convert a rotation matrix to a rotation vector.
Rv2m Convert a rotation vector to a rotation matrix.
Rx Applies a rotation around the X-axis to a 3×3 rotation matrix by a specified angle, in radians.
Rxp Multiply a 3x3 matrix by a 3D vector.
Rxpv Multiply a 3x3 matrix by a 6D position-velocity vector.
Rxr Multiply two 3x3 matrices.
Ry Applies a rotation about the Y-axis by the specified angle and returns the corresponding rotation matrix.
Rz Rotates a 3x3 rotation matrix about the Z-axis by a specified angle.
S00 CIO locator.
S00a Calculates the CIO locator s, given the IAU 2000A precession-nutation model and the specified Terrestrial Time (TT) date.
S00b CIO locator (IAU 2000B).
S06 CIO locator (IAU 2006).
S06a CIO locator (IAU 2006, high precision).
S2c Spherical to Cartesian coordinates.
S2p Spherical to Cartesian polar coordinates.
S2pv Spherical to position-velocity vector.
S2xpv Multiply a 6D position-velocity vector by a scalar and another 6D position-velocity vector.
Sepp Separation between two 3D vectors.
Seps Separation between two 2D spherical positions.
SofaIssueDate Release date of the SOFA issue currently used by this component.
SofaReleaseNumber Major number of the SOFA issue currently used by this component.
SofaRevisionDate Release date of the revision to the SOFA Issue that is actually being used by this component.
SofaRevisionNumber Revision number of the SOFA issue currently used by this component.
Sp00 The TIO locator (sp).
Starpm Proper motion and parallax propagation.
Starpv Spherical polar coordinates to position-velocity vector.
Sxp Multiply a 3D vector by a scalar.
Sxpv Multiply a 6D position-velocity vector by a scalar.
Taitt Time scale transformation: International Atomic Time, TAI, to Terrestrial Time, TT.
Taiut1 Time scale transformation: International Atomic Time (TAI) to Universal Time (UT1).
Taiutc Time scale transformation: International Atomic Time, TAI, to Coordinated Universal Time, UTC.
Tcbtdb Time scale transformation: Barycentric Coordinate Time (TCB) to Barycentric Dynamical Time (TDB).
Tcgtt Time scale transformation: Geocentric Coordinate Time (TCG) to Terrestrial Time (TT).
Tdbtcb Time scale transformation: Barycentric Dynamical Time (TDB) to Terrestrial Coordinate Time (TCB).
Tdbtt Time scale transformation: Barycentric Dynamical Time (TDB) to Terrestrial Time (TT).
Tf2a Convert hours, minutes, seconds to radians.
Tf2d Convert hours, minutes, seconds to days.
Tpors Gnomonic projection: (ξ,η) to (α,δ).
Tporv Gnomonic projection: (ξ,η) to unit vector.
Tpsts Gnomonic projection: (α,δ) to (ξ,η).
Tpstv Gnomonic projection: unit vector to (ξ,η).
Tpxes Gnomonic projection: (α,δ) to (ξ,η) plane coordinates.
Tpxev Gnomonic projection: unit vector to (ξ,η) plane coordinates.
Tr Transpose a 3x3 matrix.
Trxp Multiply the transpose of a 3x3 matrix by a 3D vector.
Trxpv Multiply the transpose of a 3x3 matrix by a 6D position-velocity vector.
Tttai Time scale transformation: Terrestrial Time, TT, to International Atomic Time, TAI.
Tttcg Time scale transformation: Terrestrial Time (TT) to Geocentric Coordinate Time (TCG).
Tttdb Time scale transformation: Terrestrial Time (TT) to Barycentric Dynamical Time (TDB).
Ttut1 Time scale transformation: Terrestrial Time (TT) to Universal Time (UT1).
Ut1tai Time scale transformation: Universal Time (UT1) to International Atomic Time (TAI).
Ut1tt Time scale transformation: Universal Time (UT1) to Terrestrial Time (TT).
Ut1utc Time scale transformation: Universal Time (UT1) to Coordinated Universal Time (UTC).
Utctai Time scale transformation: Coordinated Universal Time, UTC, to International Atomic Time, TAI.
Utcut1 Time scale transformation: Coordinated Universal Time (UTC) to Universal Time (UT1).
Xy06 CIO RA and related parameters.
Xys00a CIO coordinates (IAU 2000A).
Xys00b CIO coordinates (IAU 2000B).
Xys06a CIO coordinates (IAU 2006/2000A, high precision).
Zp Zero a 3-element position vector.
Zpv Initialize a position-velocity vector to zero.
Zr Initialize a rotation matrix to the null (all zeros) matrix.

Version Information

.NET Standard

Supported in: 2.0

See Also