ASCOM.Astrometry A strongly-typed resource class, for looking up localized strings, etc. Returns the cached ResourceManager instance used by this class. Overrides the current thread's CurrentUICulture property for all resource lookups using this strongly typed resource class. Exception thrown when an attempt is made to read from the transform component before it has had co-ordinates set once by SetJ2000 or SetJNow. Create a new exception with message Message to be reported by the exception Create a new exception with message Message to be reported by the exception Exception to be reported as the inner exception Serialise the exception Serialisation information Serialisation context Exception thrown when an incompatible component is encountered that prevents an Astrometric compoent from functioning correctly. correctly. Create a new exception with message Message to be reported by the exception Create a new exception with message Message to be reported by the exception Exception to be reported as the inner exception Serialise the exception Serialisation information Serialisation context Exception thrown when an attempt is made to read a value that has not yet been set. Create a new exception with message Message to be reported by the exception Create a new exception with message Message to be reported by the exception Exception to be reported as the inner exception Serialise the exception Serialisation information Serialisation context Exception thrown when an attempt is made to read a value that has not yet been calculated. This probably occurs because another variable has not been set or a required method has not been called. Create a new exception with message Message to be reported by the exception Create a new exception with message Message to be reported by the exception Exception to be reported as the inner exception Serialise the exception Serialisation information Serialisation context Exception thrown when a NOVAS function returns a non-zero, error completion code. This probably occurs because another variable has not been set or a required method has not been called. Create a new exception with message, function name and error code Message to be reported by the exception Name of the NOVAS function giving rise to the exception Error code returned by the NOVAS function Create a new exception with message Message to be reported by the exception Exception to be reported as the inner exception Serialise the exception Serialisation information Serialisation context Exception thrown when an iterative Transform function fails to converge. Create a new exception with the message Message to be reported by the exception Create a new exception with message Message to be reported by the exception Exception to be reported as the inner exception Serialise the exception Serialisation information Serialisation context Class providing a suite of tested astronomy support functions to save develpment effort and provide consistant behaviour. A number of these routines are provided to support migration from the Astro32.dll. Unlike Astro32, these routines will work in both 32bit and 64bit applications. Releases all resources owned by the AstroUtils component and readies it for disposal Flexible routine to range a number into a given range between a lower and an higher bound. Value to be ranged Lowest value of the range Boolean flag indicating whether the ranged value can have the lower bound value Highest value of the range Boolean flag indicating whether the ranged value can have the upper bound value The ranged nunmber as a double Thrown if the lower bound is greater than the upper bound. Thrown if LowerEqual and UpperEqual are both false and the ranged value equals one of these values. This is impossible to handle as the algorithm will always violate one of the rules! UpperEqual and LowerEqual switches control whether the ranged value can be equal to either the upper and lower bounds. So, to range an hour angle into the range 0 to 23.999999.. hours, use this call: RangedValue = Range(InputValue, 0.0, True, 24.0, False) The input value will be returned in the range where 0.0 is an allowable value and 24.0 is not i.e. in the range 0..23.999999.. It is not permissible for both LowerEqual and UpperEqual to be false because it will not be possible to return a value that is exactly equal to either lower or upper bounds. An exception is thrown if this scenario is requested. Conditions an hour angle to be in the range -12.0 to +12.0 by adding or subtracting 24.0 hours Hour angle to condition Hour angle in the range -12.0 to +12.0 Conditions a Right Ascension value to be in the range 0 to 23.999999.. hours Right ascension to be conditioned Right ascension in the range 0 to 23.999999... Returns the current DeltaT value in seconds DeltaT in seconds DeltaT is the difference between terrestrial time and the UT1 variant of universal time. ie.e TT = UT1 + DeltaT Current Julian date based on the UTC time scale Julian day Current Julian date based on the terrestrial time (TT) time scale Current value for Delta-UT1, the difference between UTC and UT1; always in the range -0.9 to +0.9 seconds. Use 0.0 to calculate TT through TAI. Delta-UT1 varies irregularly throughout the year. Double - Julian date on the UT1 timescale. When Delta-UT1 is provided, Terrestrial time is calculated as TT = UTC + DeltaUT1 + DeltaT. Otherwise, when Delta-UT1 is 0.0, TT is calculated as TT = UTC + ΔAT + 32.184s, where ΔAT is the current number of leap seconds applied to UTC (34 at April 2012, with the 35th being added at the end of June 2012). The resulting TT value is then converted to a Julian date and returned. Forecast values of Delta-UT1 are published by IERS Bulletin A at http://maia.usno.navy.mil/ser7/ser7.dat Current Julian date based on the UT1 time scale Current value for Delta-UT1, the difference between UTC and UT1; always in the range -0.9 to +0.9 seconds. Use 0.0 if you do not know this value; it varies irregularly throughout the year. Double - Julian date on the UT1 timescale. UT1 time is calculated as UT1 = UTC + DeltaUT1 when DeltaUT1 is non zero. otherwise it is calaulcated through TAI and DeltaT. This value is then converted to a Julian date and returned. When Delta-UT1 is provided, UT1 is calculated as UT1 = UTC + DeltaUT1. Otherwise, when Delta-UT1 is 0.0, DeltaUT1 is calculated as DeltaUT1 = TT - DeltaT = UTC + ΔAT + 32.184s - DeltaT, where ΔAT is the current number of leap seconds applied to UTC (34 at April 2012, with the 35th being added at the end of June 2012). Forecast values of DUT1 are published by IERS Bulletin A at http://maia.usno.navy.mil/ser7/ser7.dat Computes atmospheric refraction in zenith distance. Structure containing observer's location. 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric parameters input in the 'Location' structure. Observed zenith distance, in degrees. Unrefracted zenith distance in degrees. This version computes approximate refraction for optical wavelengths. This function can be used for planning observations or telescope pointing, but should not be used for the reduction of precise observations. Note: Unlike the NOVAS Refract method, Unrefract returns the unrefracted zenith distance itself rather than the difference between the refracted and unrefracted zenith distances. Converts a calendar day, month, year to a modified Julian date Integer day of ther month Integer month of the year Integer year Double modified julian date Translates a modified Julian date to a VB ole automation date, presented as a double Modified Julian date Date as a VB ole automation date Translates a modified Julian date to a date Modified Julian date Date representing the modified Julian date Returns a modified Julian date as a string formatted acording to the supplied presentation format Mofified julian date Format representation Date string Thrown if the provided PresentationFormat is not valid. This expects the standard Microsoft date and time formatting characters as described in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx Proivides an estimates of DeltaUT1, the difference between UTC and UT1. DeltaUT1 = UT1 - UTC Julian date when DeltaUT is required Double DeltaUT in seconds DeltaUT varies only slowly, so the Julian date can be based on UTC, UT1 or Terrestrial Time. Returns a Julian date as a string formatted according to the supplied presentation format Julian date Format representation Date as a string This expects the standard Microsoft date and time formatting characters as described in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx Sets or returns the number of leap seconds used in ASCOM Astrometry functions Integer number of seconds Current number of leap seconds The property value is stored in the ASCOM Profile under the name \Astrometry\Leap Seconds. Any change made to this property will be persisted to the ASCOM Profile store and will be immediately availble to this and all future instances of AstroUtils. The current value and any announced but not yet actioned change are listed here: ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat Function that returns a list of rise and set events of a particular type that occur on a particular day at a given latitude, longitude and time zone Type of event e.g. Sunrise or Astronomical twilight Integer Day number Integer Month number Integer Year number Site latitude Site longitude (West of Greenwich is negative) Site time zone offset (West of Greenwich is negative) An arraylist of event information (see Remarks for arraylist structure). If the combination of day, month and year is invalid e.g. 31st September. The definitions of sunrise, sunset and the various twilights that are used in this method are taken from the US Naval Observatory Definitions. The dynamics of the sun, Earth and Moon can result at some latitudes in days where there may be no, 1 or 2 rise or set events during a 24 hour period; in consequence, results are returned in the flexible form of arraylist. The returned zero based arraylist has the following values: Arraylist(0) - Boolean - True if the body is above the event limit at midnight (the beginning of the 24 hour day), false if it is below the event limit Arraylist(1) - Integer - Number of rise events in this 24 hour period Arraylist(2) - Integer - Number of set events in this 24 hour period Arraylist(3) onwards - Double - Values of rise events in hours Arraylist(3 + NumberOfRiseEvents) onwards - Double - Values of set events in hours If the number of rise events is zero the first double value will be the first set event. If the numbers of both rise and set events are zero, there will be no double values and the arraylist will just contain elements 0, 1 and 2, the above/below horizon flag and the integer count values. The algorithm employed in this method is taken from Astronomy on the Personal Computer (Montenbruck and Pfleger) pp 46..56, Springer Fourth Edition 2000, Fourth Printing 2009. The day is divided into twelve two hour intervals and a quadratic equation is fitted to the altitudes at the beginning, middle and end of each interval. The resulting equation coefficients are then processed to determine the number of roots within the interval (each of which corresponds to a rise or set event) and their sense (rise or set). These results are are then aggregated over the day and the resultant list of values returned as the function result. High precision ephemeredes for the Sun, Moon and Earth and other planets from the JPL DE421 series are employed as delivered by the ASCOM NOVAS 3.1 component rather than using the lower precision ephemeredes employed by Montenbruck and Pfleger. Accuracy Whole year almanacs for Sunrise/Sunset, Moonrise/Moonset and the various twilights every 5 degrees from the North pole to the South Pole at a variety of longitudes, timezones and dates have been compared to data from the US Naval Observatory Astronomical Data web site. The RMS error has been found to be better than 0.5 minute over the latitude range 80 degrees North to 80 degrees South and better than 5 minutes from 80 degrees to the relevant pole. Most returned values are within 1 minute of the USNO values although some very infrequent grazing event times at lattiudes from 67 to 90 degrees North and South can be up to 10 minutes different. An Almanac program that creates a year's worth of information for a given event, lattitude, longitude and timezone is included in the developer code examples elsewhere in this help file. This creates an output file with an almost identical format to that used by the USNO web site and allows comprehensive checking of acccuracy for a given set of parameters. Returns the altitude of the body given the input parameters Type of event to be calaculated UTC Julian date Hour of Julian day Site Latitude Site Longitude The altitude of the body (degrees) Returns the fraction of the Moon's surface that is illuminated Julian day (UTC) for which the Moon illumination is required Percentage illumination of the Moon The algorithm used is that given in Astronomical Algorithms (Second Edition, Corrected to August 2009) Chapter 48 p345 by Jean Meeus (Willmann-Bell 1991). The Sun and Moon positions are calculated by high precision NOVAS 3.1 library using JPL DE 421 ephemeredes. Returns the Moon phase as an angle Julian day (UTC) for which the Moon phase is required Moon phase as an angle between -180.0 amd +180.0 (see Remarks for further description) To allow maximum freedom in displaying the Moon phase, this function returns the excess of the apparent geocentric longitude of the Moon over the apparent geocentric longitude of the Sun, expressed as an angle in the range -180.0 to +180.0 degrees. This definition is taken from Astronomical Algorithms (Second Edition, Corrected to August 2009) Chapter 49 p349 by Jean Meeus (Willmann-Bell 1991). The frequently used eight phase description for phases of the Moon can be easily constructed from the results of this function using logic similar to the following: Select Case MoonPhase Case -180.0 To -135.0 Phase = "Full Moon" Case -135.0 To -90.0 Phase = "Waning Gibbous" Case -90.0 To -45.0 Phase = "Last Quarter" Case -45.0 To 0.0 Phase = "Waning Crescent" Case 0.0 To 45.0 Phase = "New Moon" Case 45.0 To 90.0 Phase = "Waxing Crescent" Case 90.0 To 135.0 Phase = "First Quarter" Case 135.0 To 180.0 Phase = "Waxing Gibbous" End Select Other representations can be easily constructed by changing the angle ranges and text descriptors as desired. The result range -180 to +180 was chosen so that negative values represent the Moon waning and positive values represent the Moon waxing. Refresh to parameter values and invalidate caches in the parameters object so that any new values wil be used Flexible routine to range a number between a lower and an higher bound. Switches control whether the ranged value can be equal to either the lower or upper bounds. Value to be ranged Lowest value of the range Boolean flag indicating whether the ranged value can have the lower bound value Highest value of the range Boolean flag indicating whether the ranged value can have the upper bound value The ranged nunmber as a double Thrown if the lower bound is greater than the upper bound. Thrown if LowerEqual and UpperEqual are both false and the ranged value equals one of these values. This is impossible to handle as the algorithm will always violate one of the rules! Converts a calendar day, month, year to a modified Julian date Integer day of ther month Integer month of the year Integer year Double modified julian date Translates a modified Julian date to a VB ole automation date, presented as a double Modified Julian date Date as a VB ole automation date Translates a modified Julian date to a date Modified Julian date Date representing the modified Julian date Returns a modified Julian date as a string formatted according to the supplied presentation format Mofified julian date Format representation Date string Thrown if the provided PresentationFormat is not valid. This expects the standard Microsoft date and time formatting characters as described in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx Proivides an estimates of DeltaUT1, the difference between UTC and UT1. DeltaUT1 = UT1 - UTC Julian date when DeltaUT is required Double DeltaUT in seconds DeltaUT varies only slowly, so the Julian date can be based on UTC, UT1 or Terrestrial Time. Returns a Julian date as a string formatted according to the supplied presentation format Julian date Format representation Date as a string This expects the standard Microsoft date and time formatting characters as described in http://msdn.microsoft.com/en-us/library/362btx8f(v=VS.90).aspx Sets or returns the number of leap seconds used in ASCOM Astrometry functions Integer number of seconds Current number of leap seconds The property value is stored in the ASCOM Profile under the name \Astrometry\Leap Seconds. Any change made to this property will be persisted to the ASCOM Profile store and will be immediately availble to this and all future instances of AstroUtils. The current value and any announced but not yet actioned change are listed here: ftp://hpiers.obspm.fr/iers/bul/bulc/bulletinc.dat Function that returns a list of rise and set events of a particular type that occur on a particular day at a given latitude, longitude and time zone Type of event e.g. Sunrise or Astronomical twilight Integer Day number Integer Month number Integer Year number Site latitude Site longitude (West of Greenwich is negative) Site time zone offset (West of Greenwich is negative) An arraylist of event information (see Remarks for arraylist structure). If the combination of day, month and year is invalid e.g. 31st September. The definitions of sunrise, sunset and the various twilights that are used in this method are taken from the US Naval Observatory Definitions. The dynamics of the sun, Earth and Moon can result at some latitudes in days where there may be no, 1 or 2 rise or set events during a 24 hour period; in consequence, results are returned in the flexible form of arraylist. The returned zero based arraylist has the following values: Arraylist(0) - Boolean - True if the body is above the event limit at midnight (the beginning of the 24 hour day), false if it is below the event limit Arraylist(1) - Integer - Number of rise events in this 24 hour period Arraylist(2) - Integer - Number of set events in this 24 hour period Arraylist(3) onwards - Double - Values of rise events in hours Arraylist(3 + NumberOfRiseEvents) onwards - Double - Values of set events in hours If the number of rise events is zero the first double value will be the first set event. If the numbers of both rise and set events are zero, there will be no double values and the arraylist will just contain elements 0, 1 and 2, the above/below horizon flag and the integer count values. The algorithm employed in this method is taken from Astronomy on the Personal Computer (Montenbruck and Pfleger) pp 46..56, Springer Fourth Edition 2000, Fourth Printing 2009. The day is divided into twelve two hour intervals and a quadratic equation is fitted to the altitudes at the beginning, middle and end of each interval. The resulting equation coefficients are then processed to determine the number of roots within the interval (each of which corresponds to a rise or set event) and their sense (rise or set). These results are are then aggregated over the day and the resultant list of values returned as the function result. High precision ephemeredes for the Sun, Moon and Earth and other planets from the JPL DE421 series are employed as delivered by the ASCOM NOVAS 3.1 component rather than using the lower precision ephemeredes employed by Montenbruck and Pfleger. Accuracy Whole year almanacs for Sunrise/Sunset, Moonrise/Moonset and the various twilights every 5 degrees from the North pole to the South Pole at a variety of longitudes, timezones and dates have been compared to data from the US Naval Observatory Astronomical Data web site. The RMS error has been found to be better than 0.5 minute over the latitude range 80 degrees North to 80 degrees South and better than 5 minutes from 80 degrees to the relevant pole. Most returned values are within 1 minute of the USNO values although some very infrequent grazing event times at lattiudes from 67 to 90 degrees North and South can be up to 10 minutes different. An Almanac program that creates a year's worth of information for a given event, lattitude, longitude and timezone is included in the developer code examples elsewhere in this help file. This creates an output file with an almost identical format to that used by the USNO web site and allows comprehensive checking of acccuracy for a given set of parameters. Returns the fraction of the Moon's surface that is illuminated Julian day (UTC) for which the Moon illumination is required Percentage illumination of the Moon The algorithm used is that given in Astronomical Algorithms (Second Edition, Corrected to August 2009) Chapter 48 p345 by Jean Meeus (Willmann-Bell 1991). The Sun and Moon positions are calculated by high precision NOVAS 3.1 library using JPL DE 421 ephemeredes. Returns the Moon phase as an angle Julian day (UTC) for which the Moon phase is required Moon phase as an angle between -180.0 amd +180.0 (see Remarks for further description) To allow maximum freedom in displaying the Moon phase, this function returns the excess of the apparent geocentric longitude of the Moon over the apparent geocentric longitude of the Sun, expressed as an angle in the range -180.0 to +180.0 degrees. This definition is taken from Astronomical Algorithms (Second Edition, Corrected to August 2009) Chapter 49 p349 by Jean Meeus (Willmann-Bell 1991). The frequently used eight phase description for phases of the Moon can be easily constructed from the results of this function using logic similar to the following: Select Case MoonPhase Case -180.0 To -135.0 Phase = "Full Moon" Case -135.0 To -90.0 Phase = "Waning Gibbous" Case -90.0 To -45.0 Phase = "Last Quarter" Case -45.0 To 0.0 Phase = "Waning Crescent" Case 0.0 To 45.0 Phase = "New Moon" Case 45.0 To 90.0 Phase = "Waxing Crescent" Case 90.0 To 135.0 Phase = "First Quarter" Case 135.0 To 180.0 Phase = "Waxing Gibbous" End Select Other representations can be easily constructed by changing the angle ranges and text descriptors as desired. The result range -180 to +180 was chosen so that negative values represent the Moon waning and positive values represent the Moon waxing. Return today's number of leap seconds Current leap seconds as a double Return the specified Julian day's number of leap seconds Leap seconds as a double Return today's DeltaT value DeltaT value as a double Return the specified Julian day's DeltaT value DeltaT value as a double Return today's DeltaUT1 value DeltaUT1 value as a double Return the specified Julian day'DeltaUT1 value DeltaUT1 value as a double Type of event for which an ephemeris is required Type of body, Major Planet, Moon, Sun or Minor Planet Luna The Sun Major planet Minor planet Comet Co-ordinate origin: centre of Sun or solar system barycentre Centre of mass of the solar system Centre of mass of the Sun Body number starting with Mercury = 1 Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Pluto Sun Moon Type of refraction correction No refraction correction will be applied Refraction will be applied based on "standard" weather values of temperature = 10.0C and sea level pressure = 1010 millibar Refraction will be applied based on the temperature and pressure supplied in the site location structure Type of transformation: Epoch, Equator and Equinox or all three Change epoch only Change equator and equinox Change equator, equinox and epoch Direction of nutation correction Convert mean equator and equinox to true equator and equinox Convert true equator and equinox to mean equator and equinox Direction of transformation: ITRS to Terrestrial Intermediate or vice versa Location of observer Observer at centre of the earth Observer on earth's surface Observer in near-earth spacecraft Calculation accuracy In full-accuracy mode, nutation calculations use the IAU 2000A model [iau2000a, nutation_angles]; gravitational deflection is calculated using three bodies: Sun, Jupiter, and Saturn [grav_def]; the equation of the equinoxes includes the entire series when computing the “complementary terms" [ee_ct]; geocentric positions of solar system bodies are adjusted for light travel time using split, or two-part, Julian dates in calls to ephemeris and iterate with a convergence tolerance of 10-12 days [light_time, ephemeris]; ephemeris calls the appropriate solar system ephemeris using split, or two-part, Julian dates primarily to support light-time calculations [ephemeris, solarsystem_hp, light_time]. In reduced-accuracy mode, nutation calculations use the 2000K model, which is the default for this mode; gravitational deflection is calculated using only one body, the Sun [grav_def]; the equation of the equinoxes excludes terms smaller than 2 microarcseconds when computing the "complementary terms" [ee_ct]; geocentric positions of solar system bodies are adjusted for light travel time using single-value Julian dates in calls to ephemeris and iterate with a convergence tolerance of 10-9 days [light-time, ephemeris, solarsystem]; ephemeris calls the appropriate solar system ephemeris using single-value Julian dates [ephemeris, solarsystem]. In full-accuracy mode, the IAU 2000A nutation series (1,365 terms) is used [iau2000a]. Evaluating the series for nutation is usually the main computational burden in NOVAS, so using reduced-accuracy mode improves execution time, often noticeably. In reduced-accuracy mode, the NOVAS 2000K nutation series (488 terms) is used by default [nu2000k]. This mode can be used when the accuracy requirements are not better than 0.1 milliarcsecond for stars or 3.5 milliarcseconds for solar system bodies. Selecting this approach can reduce the time required for Earth-rotation computations by about two-thirds. Full accuracy Suitable when precision of better than 0.1 milliarcsecond for stars or 3.5 milliarcseconds for solar system bodies is required. Reduced accuracy Suitable when precision of less than 0.1 milliarcsecond for stars or 3.5 milliarcseconds for solar system bodies is required. Coordinate system of the output position Used by function Place GCRS or "local GCRS" True equator and equinox of date True equator and CIO of date Astrometric coordinates, i.e., without light deflection or aberration. Type of sidereal time Greenwich mean sidereal time Greenwich apparent sidereal time Computation method Based on CIO Based on equinox Output vector reference system Referred to GCRS axes Referred to the equator and equinox of date Type of pole ofset Used by CelPole. For corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. For corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. Direction of frame conversion Used by FrameTie method. Dynamical to ICRS transformation. ICRS to dynamical transformation. Location of observer, determining whether the gravitational deflection due to the earth itself is applied. Used by GravDef method. No earth deflection (normally means observer is at geocenter) Add in earth deflection (normally means observer is on or above surface of earth, including earth orbit) Reference system in which right ascension is given GCRS True equator and equinox of date Type of equinox Mean equinox True equinox Type of transformation Change epoch only Change equator and equinox; sane epoch Change equator, equinox and epoch change equator and equinox J2000.0 to ICRS change ICRS to equator and equinox of J2000.0 Type of object Major planet, sun or moon Minor planet Object located outside the solar system Body or location This numbering convention is used by ephemeris routines; do not confuse with the Body enum, which is used in most other places within NOVAS3. The numbering convention for 'target' and'center' is:
             0  =  Mercury           7 = Neptune
             1  =  Venus             8 = Pluto
             2  =  Earth             9 = Moon
             3  =  Mars             10 = Sun
             4  =  Jupiter          11 = Solar system bary.
             5  =  Saturn           12 = Earth-Moon bary.
             6  =  Uranus           13 = Nutations (long. and obliq.)
If nutations are desired, set 'target' = 14; 'center' will be ignored on that call.
Mercury Venus Earth Mars Jupiter Saturn Uranus Neptune Pluto Moon Sun Solar system barycentre Earth moon barycentre Nutations Structure to hold body type, number and name Designates a celestial object. Type of body 0 = Major planet, Sun, or Moon 1 = Minor planet body number
 For 'type' = 0: Mercury = 1, ..., Pluto = 9, Sun = 10, Moon = 11
 For 'type' = 1: minor planet number
 
Name of the body (limited to 99 characters) Structure to hold astrometric catalogue data The astrometric catalog data for a star; equator and equinox and units will depend on the catalog. While this structure can be used as a generic container for catalog data, all high-level NOVAS-C functions require J2000.0 catalog data with FK5-type units (shown in square brackets below). 3-character catalog designator. Name of star. Integer identifier assigned to star. Mean right ascension [hours]. Mean declination [degrees]. Proper motion in RA [seconds of time per century]. Proper motion in declination [arcseconds per century]. Parallax [arcseconds]. Radial velocity [kilometers per second] Structure to hold site information Data for the observer's location. The atmospheric parameters are used only by the refraction function called from function 'equ_to_hor'. Additional parameters can be added to this structure if a more sophisticated refraction model is employed. Geodetic latitude in degrees; north positive. Geodetic longitude in degrees; east positive. Height of the observer in meters. Temperature (degrees Celsius). Atmospheric pressure (millibars) Structure to hold a position vector Object position vector x co-ordinate y co-ordinate z co-ordinate Structure to hold a velocity vector Object velocity vector x velocity component y velocity component z velocity component Structure to hold Sun and Moon fundamental arguments Fundamental arguments, in radians l (mean anomaly of the Moon) l' (mean anomaly of the Sun) F (L - omega; L = mean longitude of the Moon) D (mean elongation of the Moon from the Sun) Omega (mean longitude of the Moon's ascending node) Catalogue entry structure Basic astrometric data for any celestial object located outside the solar system; the catalog data for a star. This structure is identical to the NOVAS2 CatEntry structure expect that, for some reason, the StarName and Catalog fields have been swapped in the NOVAS3 structure. Please note that some units have changed from those used in NOVAS2 as follows: proper motion in right ascension: from seconds per century to milliarcseconds per year proper motion in declination: from arcseconds per century to milliarcseconds per year parallax: from arcseconds to milliarcseconds Name of celestial object. (maximum 50 characters) 3-character catalog designator. Integer identifier assigned to object. ICRS right ascension (hours) ICRS declination (degrees) ICRS proper motion in right ascension (milliarcseconds/year) ICRS proper motion in declination (milliarcseconds/year) Parallax (milli-arcseconds) Radial velocity (km/s) Celestial object structure Designates a celestial object Type of object Object identification number Name of object(maximum 50 characters) Catalogue entry for the object Celestial object's place in the sky Unit vector toward object (dimensionless) Apparent, topocentric, or astrometric right ascension (hours) Apparent, topocentric, or astrometric declination (degrees) True (geometric, Euclidian) distance to solar system body or 0.0 for star (AU) Radial velocity (km/s) Observer’s position and velocity in a near-Earth spacecraft. Geocentric position vector (x, y, z), components in km with respect to true equator and equinox of date Geocentric velocity vector (x_dot, y_dot, z_dot), components in km/s with respect to true equator and equinox of date Right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS. TDB Julian date Right ascension of the CIO with respect to the GCRS (arcseconds) Parameters of observer's location This structure is identical to the NOVAS2 SiteInfo structure but is included so that NOVAS3 naming conventions are maintained, making it easier to relate this code to the NOVAS3 documentation and C code. Geodetic (ITRS) latitude; north positive (degrees) Geodetic (ITRS) longitude; east positive (degrees) Observer's height above sea level Observer's location's ambient temperature (degrees Celsius) Observer's location's atmospheric pressure (millibars) General specification for the observer's location Code specifying the location of the observer: 0=at geocenter; 1=surface of earth; 2=near-earth spacecraft Data for an observer's location on the surface of the Earth (where = 1) Data for an observer's location on a near-Earth spacecraft (where = 2) Interface to the coordinate transform component; J2000 - apparent - topocentric Use this component to transform between J2000, apparent and topocentric coordinates or vice versa. To use the component, instantiate it, then use one of SetJ2000 or SetJNow or SetApparent to initialise with known values. Now use the RAJ2000, DECJ200, RAJNow, DECJNow, RAApparent and DECApparent properties to read off the required transformed values. The component can be reused simply by setting new co-ordinates with a Set command, there is no need to create a new component each time a transform is required. Transforms are effected through the ASCOM NOVAS-COM engine that encapsulates the USNO NOVAS2 library. The USNO NOVAS reference web page is: http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas/novas-fortran/novas-fortran Gets or sets the site latitude Site latitude Latitude in degrees Positive numbers north of the equator, negative numbers south. Gets or sets the site longitude Site longitude Longitude in degrees Positive numbers east of the Greenwich meridian, negative numbes west of the Greenwich meridian. Gets or sets the site elevation above sea level Site elevation Elevation in metres Gets or sets the site ambient temperature Site ambient temperature Temperature in degrees Celsius Gets or sets a flag indicating whether refraction is calculated for topocentric co-ordinates True / false flag indicating refaction is included / omitted from topocentric co-ordinates Boolean flag Causes the transform component to recalculate values derrived from the last Set command Use this when you have set J2000 co-ordinates and wish to ensure that the mount points to the same co-ordinates allowing for local effects that change with time such as refraction. Sets the known J2000 Right Ascension and Declination coordinates that are to be transformed RA in J2000 co-ordinates DEC in J2000 co-ordinates Sets the known apparent Right Ascension and Declination coordinates that are to be transformed RA in apparent co-ordinates DEC in apparent co-ordinates Sets the known topocentric Right Ascension and Declination coordinates that are to be transformed RA in topocentric co-ordinates DEC in topocentric co-ordinates Returns the Right Ascension in J2000 co-ordinates J2000 Right Ascension Right Ascension in hours Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Declination in J2000 co-ordinates J2000 Declination J2000 Declination Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Right Ascension in topocentric co-ordinates Topocentric Right Ascension Topocentric Right Ascension Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Declination in topocentric co-ordinates Topocentric Declination Topocentric Declination Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Right Ascension in apparent co-ordinates Apparent Right Ascension Right Ascension in hours Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Declination in apparent co-ordinates Apparent Declination Declination in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the topocentric azimth angle of the target Topocentric azimuth angle Azimuth angle in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the topocentric elevation of the target Topocentric elevation angle Elevation angle in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Sets known Altitude and Azimuth values which are to be transformed Object's azimuth in degrees Object's Elevation in degrees Sets or return the Julian date (terrestrial time) for which the transform will be made Julian date (terrestrial time) of the transform Terrestrial time Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate the Julian date. This method was introduced in May 2012. Previously, Transform used the current date-time of the PC when calculating transforms; this remains the default behaviour for backward compatibility. The inital value of this parameter is 0 which is a special value that forces Transform to replicate original behaviour by determining the Julian date from the PC's current date and time. If this property is non zero, that terrestrial time Julian date is used in preference to the value derrived from the PC's clock. Sets or return the Julian date (UTC) for which the transform will be made Julian date (UTC) of the transform UTC Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate the Julian date. The inital value of this parameter is 0 which is a special value that forces Transform to replicate original behaviour by determining the Julian date from the PC's current date and time. If this property is non zero, that UTC Julian date is used in preference to the value derrived from the PC's clock. Coordinate transform component; J2000 - apparent - topocentric Use this component to transform between J2000, apparent and topocentric (JNow) coordinates or vice versa. To use the component, instantiate it, then use one of SetJ2000 or SetJNow or SetApparent to initialise with known values. Now use the RAJ2000, DECJ200, RAJNow, DECJNow, RAApparent and DECApparent etc. properties to read off the required transformed values. The component can be reused simply by setting new co-ordinates with a Set command, there is no need to create a new component each time a transform is required. Transforms are effected through the ASCOM NOVAS.Net engine that encapsulates the USNO NOVAS 3.1 library. The USNO NOVAS reference web page is: http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas and the NOVAS 3.1 user guide is included in the ASCOM Developer Components install. Cleans up resources used by the Transform component Gets or sets the site latitude Site latitude Latitude in degrees Positive numbers north of the equator, negative numbers south. Gets or sets the site longitude Site longitude Longitude in degrees Positive numbers east of the Greenwich meridian, negative numbes west of the Greenwich meridian. Gets or sets the site elevation above sea level Site elevation Elevation in metres Gets or sets the site ambient temperature Site ambient temperature Temperature in degrees Celsius Gets or sets a flag indicating whether refraction is calculated for topocentric co-ordinates True / false flag indicating refaction is included / omitted from topocentric co-ordinates Boolean flag Causes the transform component to recalculate values derrived from the last Set command Use this when you have set J2000 co-ordinates and wish to ensure that the mount points to the same co-ordinates allowing for local effects that change with time such as refraction. Note: As of Platform 6 SP2 use of this method is not required, refresh is always performed automatically when required. Sets the known J2000 Right Ascension and Declination coordinates that are to be transformed RA in J2000 co-ordinates DEC in J2000 co-ordinates Sets the known apparent Right Ascension and Declination coordinates that are to be transformed RA in apparent co-ordinates DEC in apparent co-ordinates Sets the known topocentric Right Ascension and Declination coordinates that are to be transformed RA in topocentric co-ordinates DEC in topocentric co-ordinates Sets the topocentric azimuth and elevation Topocentric Azimuth in degrees Topocentric elevation in degrees Returns the Right Ascension in J2000 co-ordinates J2000 Right Ascension Right Ascension in hours Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Declination in J2000 co-ordinates J2000 Declination Declination in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Right Ascension in topocentric co-ordinates Topocentric Right Ascension Topocentric Right Ascension in hours Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Declination in topocentric co-ordinates Topocentric Declination Declination in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Right Ascension in apparent co-ordinates Apparent Right Ascension Right Ascension in hours Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the Declination in apparent co-ordinates Apparent Declination Declination in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the topocentric azimth angle of the target Topocentric azimuth angle Azimuth angle in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Returns the topocentric elevation of the target Topocentric elevation angle Elevation angle in degrees Exception thrown if an attempt is made to read a value before any of the Set methods has been used or if the value can not be derived from the information in the last Set method used. E.g. topocentric values will be unavailable if the last Set was a SetApparent and one of the Site properties has not been set. Sets or returns the Julian date on the Terrestrial Time timescale for which the transform will be made Julian date (Terrestrial Time) of the transform Terrestrial Time Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate the Julian date. This method was introduced in May 2012. Previously, Transform used the current date-time of the PC when calculating transforms; this remains the default behaviour for backward compatibility. The inital value of this parameter is 0.0, which is a special value that forces Transform to replicate original behaviour by determining the Julian date from the PC's current date and time. If this property is non zero, that particular terrestrial time Julian date is used in preference to the value derrived from the PC's clock. Only one of JulianDateTT or JulianDateUTC needs to be set. Use whichever is more readily available, there is no need to set both values. Transform will use the last set value of either JulianDateTT or JulianDateUTC as the basis for its calculations. Sets or returns the Julian date on the UTC timescale for which the transform will be made Julian date (UTC) of the transform UTC Julian date that will be used by Transform or zero if the PC's current clock value will be used to calculate the Julian date. Introduced in April 2014 as an alternative to JulianDateTT. Only one of JulianDateTT or JulianDateUTC needs to be set. Use whichever is more readily available, there is no need to set both values. Transform will use the last set value of either JulianDateTT or JulianDateUTC as the basis for its calculations. Interface to the Kepler Ephemeris component The Ephemeris object contains an orbit engine which takes the orbital parameters of a solar system body, plus a a terrestrial date/time, and produces the heliocentric equatorial position and velocity vectors of the body in Cartesian coordinates. Orbital parameters are not required for the major planets, Kepler contains an ephemeris generator for these bodies that is within 0.05 arc seconds of the JPL DE404 over a wide range of times, Perturbations from major planets are applied to ephemerides for minor planets. The results are passed back as an array containing the two vectors. Note that this is the format expected for the ephemeris generator used by the NOVAS-COM vector astrometry engine. For more information see the description of Ephemeris.GetPositionAndVelocity(). Ephemeris Calculations
The ephemeris calculations in Kepler draw heavily from the work of Stephen Moshier moshier@world.std.com. kepler is released as a free software package, further extending the work of Mr. Moshier.
Kepler does not integrate orbits to the current epoch. If you want the accuracy resulting from an integrated orbit, you must integrate separately and supply Kepler with elements of the current epoch. Orbit integration is on the list of things for the next major version. Kepler uses polynomial approximations for the major planet ephemerides. The tables of coefficients were derived by a least squares fit of periodic terms to JPL's DE404 ephemerides. The periodic frequencies used were determined by spectral analysis and comparison with VSOP87 and other analytical planetary theories. The least squares fit to DE404 covers the interval from -3000 to +3000 for the outer planets, and -1350 to +3000 for the inner planets. For details on the accuracy of the major planet ephemerides, see the Accuracy Tables page. Date and Time Systems

For a detailed explanation of astronomical timekeeping systems, see A Time Tutorial on the NASA Goddard Spaceflight Center site, and the USNO Systems of Time site.

ActiveX Date values
These are the Windows standard "date serial" numbers, and are expressed in local time or UTC (see below). The fractional part of these numbers represents time within a day. They are used throughout applications such as Excel, Visual Basic, VBScript, and other ActiveX capable environments.

Julian dates
These are standard Julian "date serial" numbers, and are expressed in UTC time or Terrestrial time. The fractional part of these numbers represents time within a day. The standard ActiveX "Double" precision of 15 digits gives a resolution of about one millisecond in a full Julian date. This is sufficient for the purposes of this program.

Hourly Time Values
These are typically used to represent sidereal time and right ascension. They are simple real numbers in units of hours.

UTC Time Scale
Most of the ASCOM methods and properties that accept date/time values (either Date or Julian) assume that the date/time is in Coordinated Universal Time (UTC). Where necessary, this time is converted internally to other scales. Note that UTC seconds are based on the Cesium atom, not planetary motions. In order to keep UTC in sync with planetary motion, leap seconds are inserted periodically. The error is at most 900 milliseconds.

UT1 Time Scale
The UT1 time scale is the planetary equivalent of UTC. It it runs smoothly and varies a bit with time, but it is never more than 900 milliseconds different from UTC.

TT Time Scale
The Terrestrial Dynamical Time (TT) scale is used in solar system orbital calculations. It is based completely on planetary motions; you can think of the solar system as a giant TT clock. It differs from UT1 by an amount called "delta-t", which slowly increases with time, and is about 60 seconds right now (2001).
Compute rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). Terrestrial Julian date/time for which position and velocity is to be computed Array of 6 values containing rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.) for the body. The TJD parameter is the date/time as a Terrestrial Time Julian date. See below for more info. If you are using ACP, there are functions available to convert between UTC and Terrestrial time, and for estimating the current value of delta-T. See the Overview page for the Kepler.Ephemeris class for more information on time keeping systems. Semi-major axis (AU) Semi-major axis in AU Semi-major axis in AU The type of solar system body represented by this instance of the ephemeris engine (enum) The type of solar system body represented by this instance of the ephemeris engine (enum) 0 for major planet, 1 for minot planet and 2 for comet Orbital eccentricity Orbital eccentricity Orbital eccentricity Epoch of osculation of the orbital elements (terrestrial Julian date) Epoch of osculation of the orbital elements Terrestrial Julian date Slope parameter for magnitude Slope parameter for magnitude Slope parameter for magnitude Absolute visual magnitude Absolute visual magnitude Absolute visual magnitude The J2000.0 inclination (deg.) The J2000.0 inclination Degrees Mean anomaly at the epoch Mean anomaly at the epoch Mean anomaly at the epoch Mean daily motion (deg/day) Mean daily motion Degrees per day The name of the body. The name of the body or packed MPC designation The name of the body or packed MPC designation If this instance represents an unnumbered minor planet, Ephemeris.Name must be the packed MPC designation. For other types, this is for display only. The J2000.0 longitude of the ascending node (deg.) The J2000.0 longitude of the ascending node Degrees The major or minor planet number The major or minor planet number Number or zero if not numbered Orbital period (years) Orbital period Years The J2000.0 argument of perihelion (deg.) The J2000.0 argument of perihelion Degrees Perihelion distance (AU) Perihelion distance AU Reciprocal semi-major axis (1/AU) Reciprocal semi-major axis 1/AU KEPLER: Ephemeris Object The Kepler Ephemeris object contains an orbit engine which takes the orbital parameters of a solar system body, plus a a terrestrial date/time, and produces the heliocentric equatorial position and velocity vectors of the body in Cartesian coordinates. Orbital parameters are not required for the major planets, Kepler contains an ephemeris generator for these bodies that is within 0.05 arc seconds of the JPL DE404 over a wide range of times, Perturbations from major planets are applied to ephemerides for minor planets. The results are passed back as an array containing the two vectors. Note that this is the format expected for the ephemeris generator used by the NOVAS-COM vector astrometry engine. For more information see the description of Ephemeris.GetPositionAndVelocity(). Ephemeris Calculations
The ephemeris calculations in Kepler draw heavily from the work of Stephen Moshier moshier@world.std.com. kepler is released as a free software package, further extending the work of Mr. Moshier.
Kepler does not integrate orbits to the current epoch. If you want the accuracy resulting from an integrated orbit, you must integrate separately and supply Kepler with elements of the current epoch. Orbit integration is on the list of things for the next major version. Kepler uses polynomial approximations for the major planet ephemerides. The tables of coefficients were derived by a least squares fit of periodic terms to JPL's DE404 ephemerides. The periodic frequencies used were determined by spectral analysis and comparison with VSOP87 and other analytical planetary theories. The least squares fit to DE404 covers the interval from -3000 to +3000 for the outer planets, and -1350 to +3000 for the inner planets. For details on the accuracy of the major planet ephemerides, see the Accuracy Tables page. Date and Time Systems

For a detailed explanation of astronomical timekeeping systems, see A Time Tutorial on the NASA Goddard Spaceflight Center site, and the USNO Systems of Time site.

ActiveX Date values
These are the Windows standard "date serial" numbers, and are expressed in local time or UTC (see below). The fractional part of these numbers represents time within a day. They are used throughout applications such as Excel, Visual Basic, VBScript, and other ActiveX capable environments.

Julian dates
These are standard Julian "date serial" numbers, and are expressed in UTC time or Terrestrial time. The fractional part of these numbers represents time within a day. The standard ActiveX "Double" precision of 15 digits gives a resolution of about one millisecond in a full Julian date. This is sufficient for the purposes of this program.

Hourly Time Values
These are typically used to represent sidereal time and right ascension. They are simple real numbers in units of hours.

UTC Time Scale
Most of the ASCOM methods and properties that accept date/time values (either Date or Julian) assume that the date/time is in Coordinated Universal Time (UTC). Where necessary, this time is converted internally to other scales. Note that UTC seconds are based on the Cesium atom, not planetary motions. In order to keep UTC in sync with planetary motion, leap seconds are inserted periodically. The error is at most 900 milliseconds.

UT1 Time Scale
The UT1 time scale is the planetary equivalent of UTC. It it runs smoothly and varies a bit with time, but it is never more than 900 milliseconds different from UTC.

TT Time Scale
The Terrestrial Dynamical Time (TT) scale is used in solar system orbital calculations. It is based completely on planetary motions; you can think of the solar system as a giant TT clock. It differs from UT1 by an amount called "delta-t", which slowly increases with time, and is about 60 seconds right now (2001).
Create a new Ephemeris component and initialise it Semi-major axis (AU) Semi-major axis in AU Semi-major axis in AU The type of solar system body represented by this instance of the ephemeris engine (enum) The type of solar system body represented by this instance of the ephemeris engine (enum) 0 for major planet, 1 for minot planet and 2 for comet Orbital eccentricity Orbital eccentricity Orbital eccentricity Epoch of osculation of the orbital elements (terrestrial Julian date) Epoch of osculation of the orbital elements Terrestrial Julian date Slope parameter for magnitude Slope parameter for magnitude Slope parameter for magnitude Compute rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). Terrestrial Julian date/time for which position and velocity is to be computed Array of 6 values containing rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.) for the body. The TJD parameter is the date/time as a Terrestrial Time Julian date. See below for more info. If you are using ACP, there are functions available to convert between UTC and Terrestrial time, and for estimating the current value of delta-T. See the Overview page for the Kepler.Ephemeris class for more information on time keeping systems. Absolute visual magnitude Absolute visual magnitude Absolute visual magnitude The J2000.0 inclination (deg.) The J2000.0 inclination Degrees Mean anomaly at the epoch Mean anomaly at the epoch Mean anomaly at the epoch Mean daily motion (deg/day) Mean daily motion Degrees per day The name of the body. The name of the body or packed MPC designation The name of the body or packed MPC designation If this instance represents an unnumbered minor planet, Ephemeris.Name must be the packed MPC designation. For other types, this is for display only. The J2000.0 longitude of the ascending node (deg.) The J2000.0 longitude of the ascending node Degrees The major or minor planet number The major or minor planet number Number or zero if not numbered Orbital period (years) Orbital period Years The J2000.0 argument of perihelion (deg.) The J2000.0 argument of perihelion Degrees Perihelion distance (AU) Perihelion distance AU Reciprocal semi-major axis (1/AU) Reciprocal semi-major axis 1/AU Interface to an Earth object that represents the "state" of the Earth at a given Terrestrial Julian date Objects of class Earth represent the "state" of the Earth at a given Terrestrial Julian date. The state includes barycentric and heliocentric position vectors for the earth, plus obliquity, nutation and the equation of the equinoxes. Unless set by the client, the Earth ephemeris used is computed using an internal approximation. The client may optionally attach an ephemeris object for increased accuracy. Ephemeris Generator
The ephemeris generator object used with NOVAS-COM must support a single method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the NOVAS-COM methods) as its single parameter, and return an array of Double containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, which correspond to the Type, Name, and Number properties of Novas.Planet.
Initialize the Earth object for given terrestrial Julian date Terrestrial Julian date True if successful, else throws an exception Earth barycentric position Barycentric position vector AU (Ref J2000) Earth barycentric time Barycentric dynamical time for given Terrestrial Julian Date Julian date Earth barycentric velocity Barycentric velocity vector AU/day (ref J2000) Ephemeris object used to provide the position of the Earth. Earth ephemeris object Earth ephemeris object Setting this is optional, if not set, the internal Kepler engine will be used. Earth equation of equinoxes Equation of the equinoxes Seconds Earth heliocentric position Heliocentric position vector AU (ref J2000) Earth heliocentric velocity Heliocentric velocity Velocity vector, AU/day (ref J2000) Earth mean objiquity Mean obliquity of the ecliptic Degrees Earth nutation in longitude Nutation in longitude Degrees Earth nutation in obliquity Nutation in obliquity Degrees Earth true obliquity True obliquity of the ecliptic Degrees Interface to a Planet component that provides characteristics of a solar system body Objects of class Planet hold the characteristics of a solar system body. Properties are type (major or minor planet), number (for major and numbered minor planets), name (for unnumbered minor planets and comets), the ephemeris object to be used for orbital calculations, an optional ephemeris object to use for barycenter calculations, and an optional value for delta-T. The high-level NOVAS astrometric functions are implemented as methods of Planet: GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), and GetAstrometricPosition(). These methods operate on the properties of the Planet, and produce a PositionVector object. For example, to get the topocentric coordinates of a planet, create and initialize a planet, create initialize and attach an ephemeris object, then call Planet.GetTopocentricPosition(). The resulting PositionVector's right ascension and declination properties are the topocentric equatorial coordinates, at the same time, the (optionally refracted) alt-az coordinates are calculated, and are also contained within the returned PositionVector. Note that Alt/Az is available in PositionVectors returned from calling GetTopocentricPosition(). The accuracy of these calculations is typically dominated by the accuracy of the attached ephemeris generator. Ephemeris Generator
By default, Kepler instances are attached for both Earth and Planet objects so it is not necessary to create and attach these in order to get Kepler accuracy from this component
The ephemeris generator object used with NOVAS-COM must support a single method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the NOVAS-COM methods) as its single parameter, and return an array of Double containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, which correspond to the Type, Name, and Number properties of Novas.Planet.
Get an apparent position for given time Terrestrial Julian Date for the position PositionVector for the apparent place. Get an astrometric position for given time Terrestrial Julian Date for the position PositionVector for the astrometric place. Get an local position for given time Terrestrial Julian Date for the position The observing site PositionVector for the local place. Get a topocentric position for given time Terrestrial Julian Date for the position The observing site Apply refraction correction PositionVector for the topocentric place. Get a virtual position for given time Terrestrial Julian Date for the position PositionVector for the virtual place. Planet delta-T The value of delta-T (TT - UT1) to use for reductions Seconds Setting this value is optional. If no value is set, an internal delta-T generator is used. Ephemeris object used to provide the position of the Earth. Earth ephemeris object Earth ephemeris object Setting this is optional, if not set, the internal Kepler engine will be used. The Ephemeris object used to provide positions of solar system bodies. Body ephemeris object Body ephemeris object Setting this is optional, if not set, the internal Kepler engine will be used. Planet name For unnumbered minor planets, (Type=nvMinorPlanet and Number=0), the packed designation for the minor planet. For other types, this is not significant, but may be used to store a name. Name of planet Planet number For major planets (Type=nvMajorPlanet), a PlanetNumber value. For minor planets (Type=nvMinorPlanet), the number of the minor planet or 0 for unnumbered minor planet. Planet number The major planet number is its number out from the sun starting with Mercury = 1 The type of solar system body The type of solar system body Value from the BodyType enum Interface to the NOVAS-COM PositionVector Class Objects of class PositionVector contain vectors used for positions (earth, sites, stars and planets) throughout NOVAS-COM. Of course, its properties include the x, y, and z components of the position. Additional properties are right ascension and declination, distance, and light time (applicable to star positions), and Alt/Az (available only in PositionVectors returned by Star or Planet methods GetTopocentricPosition()). You can initialize a PositionVector from a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). PositionVector has methods that can adjust the coordinates for precession, aberration and proper motion. Thus, a PositionVector object gives access to some of the lower-level NOVAS functions. Note: The equatorial coordinate properties of this object are dependent variables, and thus are read-only. Changing any cartesian coordinate will cause the equatorial coordinates to be recalculated. Adjust the position vector of an object for aberration of light The velocity vector of the observer The algorithm includes relativistic terms Adjust the position vector for precession of equinoxes between two given epochs The first epoch (Terrestrial Julian Date) The second epoch (Terrestrial Julian Date) The coordinates are referred to the mean equator and equinox of the two respective epochs. Adjust the position vector for proper motion (including foreshortening effects) The velocity vector of the object The first epoch (Terrestrial Julian Date) The second epoch (Terrestrial Julian Date) True if successful or throws an exception. If the position vector x, y or z values has not been set If the supplied velocity vector does not have valid x, y and z components Initialize the PositionVector from a Site object and Greenwich apparent sidereal time. The Site object from which to initialize Greenwich Apparent Sidereal Time True if successful or throws an exception The GAST parameter must be for Greenwich, not local. The time is rotated through the site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian Date and Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). Initialize the PositionVector from a Site object using UTC Julian date and Delta-T The Site object from which to initialize UTC Julian Date The value of Delta-T (TT - UT1) to use for reductions (seconds) True if successful or throws an exception The Julian date must be UTC Julian date, not terrestrial. Initialize the PositionVector from a Star object. The Star object from which to initialize True if successful or throws an exception If Parallax, RightAScension or Declination is not available in the supplied star object. The azimuth coordinate (degrees, + east) The azimuth coordinate Degrees, + East Declination coordinate Declination coordinate Degrees Distance/Radius coordinate Distance/Radius coordinate AU The elevation (altitude) coordinate (degrees, + up) The elevation (altitude) coordinate (degrees, + up) (Degrees, + up Elevation is available only in PositionVectors returned from calls to Star.GetTopocentricPosition() and/or Planet.GetTopocentricPosition(). When the position vector has not been initialised from Star.GetTopoCentricPosition and Planet.GetTopocentricPosition Light time from body to origin, days. Light time from body to origin Days RightAscension coordinate, hours RightAscension coordinate Hours Position cartesian x component Cartesian x component Cartesian x component Position cartesian y component Cartesian y component Cartesian y component Position cartesian z component Cartesian z component Cartesian z component Interface for PositionVector methods that are only accessible through .NET and not through COM Initialize the PositionVector from a Site object using UTC Julian date The Site object from which to initialize UTC Julian Date True if successful or throws an exception The Julian date must be UTC Julian date, not terrestrial. Calculations will use the internal delta-T tables and estimator to get delta-T. This overload is not available through COM, please use "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" with delta_t set to 0.0 to achieve this effect. Interface to the NOVAS-COM Site Class Objects of class Site contain the specifications for an observer's location on the Earth ellipsoid. Properties are latitude, longitude, height above mean sea level, the ambient temperature and the sea-level barmetric pressure. The latter two are used only for optional refraction corrections. Latitude and longitude are (common) geodetic, not geocentric. Set all site properties in one method call The geodetic latitude (degrees, + north) The geodetic longitude (degrees, +east) Height above sea level (meters) Height above mean sea level Height above mean sea level Meters Geodetic latitude (degrees, + north) Geodetic latitude Degrees, + north Geodetic longitude (degrees, + east) Geodetic longitude Degrees, + east Barometric pressure (millibars) Barometric pressure Millibars Ambient temperature (deg. Celsius) Ambient temperature Degrees Celsius) Interface to the NOVAS-COM Star Class Objects of class Site contain the specifications for a star's catalog position in either FK5 or Hipparcos units (both must be J2000). Properties are right ascension and declination, proper motions, parallax, radial velocity, catalog type (FK5 or HIP), catalog number, optional ephemeris engine to use for barycenter calculations, and an optional value for delta-T. Unless you specifically set the DeltaT property, calculations performed by this class which require the value of delta-T (TT - UT1) rely on an internal function to estimate delta-T. The high-level NOVAS astrometric functions are implemented as methods of Star: GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), and GetAstrometricPosition(). These methods operate on the properties of the Star, and produce a PositionVector object. For example, to get the topocentric coordinates of a star, simply create and initialize a Star, then call Star.GetTopocentricPosition(). The resulting vaPositionVector's right ascension and declination properties are the topocentric equatorial coordinates, at the same time, the (optionally refracted) alt-az coordinates are calculated, and are also contained within the returned PositionVector. Note that Alt/Az is available in PositionVectors returned from calling GetTopocentricPosition(). Initialize all star properties with one call Catalog mean right ascension (hours) Catalog mean declination (degrees) Catalog mean J2000 proper motion in right ascension (sec/century) Catalog mean J2000 proper motion in declination (arcsec/century) Catalog mean J2000 parallax (arcsec) Catalog mean J2000 radial velocity (km/sec) Assumes positions are FK5. If Parallax is set to zero, NOVAS-COM assumes the object is on the "celestial sphere", which has a distance of 10 megaparsecs. Initialise all star properties in one call using Hipparcos data. Transforms to FK5 standard used by NOVAS. Catalog mean right ascension (hours) Catalog mean declination (degrees) Catalog mean J2000 proper motion in right ascension (sec/century) Catalog mean J2000 proper motion in declination (arcsec/century) Catalog mean J2000 parallax (arcsec) Catalog mean J2000 radial velocity (km/sec) Assumes positions are Hipparcos standard and transforms to FK5 standard used by NOVAS. If Parallax is set to zero, NOVAS-COM assumes the object is on the "celestial sphere", which has a distance of 10 megaparsecs. Get an apparent position for a given time Terrestrial Julian Date for the position PositionVector for the apparent place. Get an astrometric position for a given time Terrestrial Julian Date for the position PositionVector for the astrometric place. Get a local position for a given site and time Terrestrial Julian Date for the position A Site object representing the observing site PositionVector for the local place. Get a topocentric position for a given site and time Terrestrial Julian Date for the position A Site object representing the observing site True to apply atmospheric refraction corrections PositionVector for the topocentric place. Get a virtual position at a given time Terrestrial Julian Date for the position PositionVector for the virtual place. Three character catalog code for the star's data Three character catalog code for the star's data Three character catalog code for the star's data Typically "FK5" but may be "HIP". For information only. Mean catalog J2000 declination coordinate (degrees) Mean catalog J2000 declination coordinate Degrees The value of delta-T (TT - UT1) to use for reductions. The value of delta-T (TT - UT1) to use for reductions. Seconds If this property is not set, calculations will use an internal function to estimate delta-T. Ephemeris object used to provide the position of the Earth. Ephemeris object used to provide the position of the Earth. Ephemeris object If this value is not set, an internal Kepler object will be used to determine Earth ephemeris The catalog name of the star (50 char max) The catalog name of the star Name (50 char max) The catalog number of the star The catalog number of the star The catalog number of the star Catalog mean J2000 parallax (arcsec) Catalog mean J2000 parallax Arc seconds Catalog mean J2000 proper motion in declination (arcsec/century) Catalog mean J2000 proper motion in declination Arc seconds per century Catalog mean J2000 proper motion in right ascension (sec/century) Catalog mean J2000 proper motion in right ascension Seconds per century Catalog mean J2000 radial velocity (km/sec) Catalog mean J2000 radial velocity Kilometers per second Catalog mean J2000 right ascension coordinate (hours) Catalog mean J2000 right ascension coordinate Hours interface to the NOVAS_COM VelocityVector Class Objects of class VelocityVector contain vectors used for velocities (earth, sites, planets, and stars) throughout NOVAS-COM. Of course, its properties include the x, y, and z components of the velocity. Additional properties are the velocity in equatorial coordinates of right ascension dot, declination dot and radial velocity. You can initialize a PositionVector from a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). For the star object the proper motions, distance and radial velocity are used, for a site, the velocity is that of the observer with respect to the Earth's center of mass. Initialize the VelocityVector from a Site object and Greenwich Apparent Sdereal Time. The Site object from which to initialize Greenwich Apparent Sidereal Time True if OK or throws an exception The velocity vector is that of the observer with respect to the Earth's center of mass. The GAST parameter must be for Greenwich, not local. The time is rotated through the site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian Date and optionally Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). Initialize the VelocityVector from a Site object using UTC Julian Date and Delta-T The Site object from which to initialize UTC Julian Date The optional value of Delta-T (TT - UT1) to use for reductions (seconds) True if OK otherwise throws an exception The velocity vector is that of the observer with respect to the Earth's center of mass. The Julian date must be UTC Julian date, not terrestrial. Initialize the VelocityVector from a Star object. The Star object from which to initialize True if OK otherwise throws an exception The proper motions, distance and radial velocity are used in the velocity calculation. If any of: Parallax, RightAscension, Declination, ProperMotionRA, ProperMotionDec or RadialVelocity are not available in the star object Linear velocity along the declination direction (AU/day) Linear velocity along the declination direction AU/day This is not the proper motion (which is an angular rate and is dependent on the distance to the object). Linear velocity along the radial direction (AU/day) Linear velocity along the radial direction AU/day Linear velocity along the right ascension direction (AU/day) Linear velocity along the right ascension direction AU/day Cartesian x component of velocity (AU/day) Cartesian x component of velocity AU/day Cartesian y component of velocity (AU/day) Cartesian y component of velocity AU/day Cartesian z component of velocity (AU/day) Cartesian z component of velocity AU/day Interface for VelocityVector methods that are only accessible through .NET and not through COM Initialize the VelocityVector from a Site object using UTC Julian Date The Site object from which to initialize UTC Julian Date True if OK otherwise throws an exception The velocity vector is that of the observer with respect to the Earth's center of mass. The Julian date must be UTC Julian date, not terrestrial. This call will use the internal tables and estimator to get delta-T. This overload is not available through COM, please use "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" with delta_t set to 0.0 to achieve this effect. NOVAS-COM: Represents the "state" of the Earth at a given Terrestrial Julian date NOVAS-COM objects of class Earth represent the "state" of the Earth at a given Terrestrial Julian date. The state includes barycentric and heliocentric position vectors for the earth, plus obliquity, nutation and the equation of the equinoxes. Unless set by the client, the Earth ephemeris used is computed using an internal approximation. The client may optionally attach an ephemeris object for increased accuracy. Ephemeris Generator
The ephemeris generator object used with NOVAS-COM must support a single method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the NOVAS-COM methods) as its single parameter, and return an array of Double containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, which correspond to the Type, Name, and Number properties of Novas.Planet.
Create a new instance of the Earth object Earth barycentric position Barycentric position vector AU (Ref J2000) Earth barycentric time Barycentric dynamical time for given Terrestrial Julian Date Julian date Earth barycentric velocity Barycentric velocity vector AU/day (ref J2000) Ephemeris object used to provide the position of the Earth. Earth ephemeris object Earth ephemeris object Setting this is optional, if not set, the internal Kepler engine will be used. Earth equation of equinoxes Equation of the equinoxes Seconds Earth heliocentric position Heliocentric position vector AU (ref J2000) Earth heliocentric velocity Heliocentric velocity Velocity vector, AU/day (ref J2000) Earth mean objiquity Mean obliquity of the ecliptic Degrees Earth nutation in longitude Nutation in longitude Degrees Earth nutation in obliquity Nutation in obliquity Degrees Initialize the Earth object for given terrestrial Julian date Terrestrial Julian date True if successful, else throws an exception Earth true obliquity True obliquity of the ecliptic Degrees NOVAS-COM: Provide characteristics of a solar system body NOVAS-COM objects of class Planet hold the characteristics of a solar system body. Properties are type (major or minor planet), number (for major and numbered minor planets), name (for unnumbered minor planets and comets), the ephemeris object to be used for orbital calculations, an optional ephemeris object to use for barycenter calculations, and an optional value for delta-T. The number values for major planets are 1 to 9 for Mercury to Pluto, 10 for Sun and 11 for Moon. The last two obviously aren't planets, but this numbering is a NOVAS convention that enables us to retrieve useful information about these bodies. The high-level NOVAS astrometric functions are implemented as methods of Planet: GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), and GetAstrometricPosition(). These methods operate on the properties of the Planet, and produce a PositionVector object. For example, to get the topocentric coordinates of a planet, create and initialize a planet then call Planet.GetTopocentricPosition(). The resulting PositionVector's right ascension and declination properties are the topocentric equatorial coordinates, at the same time, the (optionally refracted) alt-az coordinates are calculated, and are also contained within the returned PositionVector. Note that Alt/Az is available in PositionVectors returned from calling GetTopocentricPosition(). The accuracy of these calculations is typically dominated by the accuracy of the attached ephemeris generator. Ephemeris Generator
By default, Kepler instances are attached for both Earth and Planet objects so it is not necessary to create and attach these in order to get Kepler accuracy from this component
The ephemeris generator object used with NOVAS-COM must support a single method GetPositionAndVelocity(tjd). This method must take a terrestrial Julian date (like the NOVAS-COM methods) as its single parameter, and return an array of Double containing the rectangular (x/y/z) heliocentric J2000 equatorial coordinates of position (AU) and velocity (KM/sec.). In addition, it must support three read/write properties BodyType, Name, and Number, which correspond to the Type, Name, and Number properties of Novas.Planet.
Create a new instance of the Plant class This assigns default Kepler instances for the Earth and Planet objects so it is not necessary to create and attach Kepler objects in order to get Kepler accuracy from this component Planet delta-T The value of delta-T (TT - UT1) to use for reductions Seconds Setting this value is optional. If no value is set, an internal delta-T generator is used. Ephemeris object used to provide the position of the Earth. Earth ephemeris object Earth ephemeris object Setting this is optional, if not set, the internal Kepler engine will be used. The Ephemeris object used to provide positions of solar system bodies. Body ephemeris object Body ephemeris object Setting this is optional, if not set, the internal Kepler engine will be used. Get an apparent position for given time Terrestrial Julian Date for the position PositionVector for the apparent place. Get an astrometric position for given time Terrestrial Julian Date for the position PositionVector for the astrometric place. Get an local position for given time Terrestrial Julian Date for the position The observing site PositionVector for the local place. Get a topocentric position for given time Terrestrial Julian Date for the position The observing site Apply refraction correction PositionVector for the topocentric place. Get a virtual position for given time Terrestrial Julian Date for the position PositionVector for the virtual place. Planet name For unnumbered minor planets, (Type=nvMinorPlanet and Number=0), the packed designation for the minor planet. For other types, this is not significant, but may be used to store a name. Name of planet Planet number For major planets (Type = , a PlanetNumber value from 1 to 11. For minor planets (Type = , the number of the minor planet or 0 for unnumbered minor planet. Planet number The major planet number is its number out from the sun starting with Mercury = 1, ending at Pluto = 9. Planet 10 gives values for the Sun and planet 11 gives values for the Moon The type of solar system body The type of solar system body Value from the BodyType enum NOVAS-COM: PositionVector Class NOVAS-COM objects of class PositionVector contain vectors used for positions (earth, sites, stars and planets) throughout NOVAS-COM. Of course, its properties include the x, y, and z components of the position. Additional properties are right ascension and declination, distance, and light time (applicable to star positions), and Alt/Az (available only in PositionVectors returned by Star or Planet methods GetTopocentricPosition()). You can initialize a PositionVector from a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). PositionVector has methods that can adjust the coordinates for precession, aberration and proper motion. Thus, a PositionVector object gives access to some of the lower-level NOVAS functions. Note: The equatorial coordinate properties of this object are dependent variables, and thus are read-only. Changing any cartesian coordinate will cause the equatorial coordinates to be recalculated. Create a new, uninitialised position vector Create a new position vector with supplied initial values Position vector x co-ordinate Position vector y co-ordinate Position vector z co-ordinate Right ascension (hours) Declination (degrees) Distance to object Light-time to object Object azimuth Object altitude Create a new position vector with supplied initial values Position vector x co-ordinate Position vector y co-ordinate Position vector z co-ordinate Right ascension (hours) Declination (degrees) Distance to object Light-time to object Adjust the position vector of an object for aberration of light The velocity vector of the observer The algorithm includes relativistic terms The azimuth coordinate (degrees, + east) The azimuth coordinate Degrees, + East Declination coordinate Declination coordinate Degrees Distance/Radius coordinate Distance/Radius coordinate AU The elevation (altitude) coordinate (degrees, + up) The elevation (altitude) coordinate (degrees, + up) (Degrees, + up Elevation is available only in PositionVectors returned from calls to Star.GetTopocentricPosition() and/or Planet.GetTopocentricPosition(). When the position vector has not been initialised from Star.GetTopoCentricPosition and Planet.GetTopocentricPosition Light time from body to origin, days. Light time from body to origin Days Adjust the position vector for precession of equinoxes between two given epochs The first epoch (Terrestrial Julian Date) The second epoch (Terrestrial Julian Date) The coordinates are referred to the mean equator and equinox of the two respective epochs. Adjust the position vector for proper motion (including foreshortening effects) The velocity vector of the object The first epoch (Terrestrial Julian Date) The second epoch (Terrestrial Julian Date) True if successful or throws an exception. If the position vector x, y or z values has not been set If the supplied velocity vector does not have valid x, y and z components RightAscension coordinate, hours RightAscension coordinate Hours Initialize the PositionVector from a Site object and Greenwich apparent sidereal time. The Site object from which to initialize Greenwich Apparent Sidereal Time True if successful or throws an exception The GAST parameter must be for Greenwich, not local. The time is rotated through the site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian Date and Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). Initialize the PositionVector from a Site object using UTC Julian date The Site object from which to initialize UTC Julian Date True if successful or throws an exception The Julian date must be UTC Julian date, not terrestrial. Calculations will use the internal delta-T tables and estimator to get delta-T. This overload is not available through COM, please use "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" with delta_t set to 0.0 to achieve this effect. Initialize the PositionVector from a Site object using UTC Julian date and Delta-T The Site object from which to initialize UTC Julian Date The value of Delta-T (TT - UT1) to use for reductions (seconds) True if successful or throws an exception The Julian date must be UTC Julian date, not terrestrial. Initialize the PositionVector from a Star object. The Star object from which to initialize True if successful or throws an exception If Parallax, RightAScension or Declination is not available in the supplied star object. Position cartesian x component Cartesian x component Cartesian x component Position cartesian y component Cartesian y component Cartesian y component Position cartesian z component Cartesian z component Cartesian z component NOVAS-COM: Site Class NOVAS-COM objects of class Site contain the specifications for an observer's location on the Earth ellipsoid. Properties are latitude, longitude, height above mean sea level, the ambient temperature and the sea-level barmetric pressure. The latter two are used only for optional refraction corrections. Latitude and longitude are (common) geodetic, not geocentric. Initialises a new site object Height above mean sea level Height above mean sea level Meters Geodetic latitude (degrees, + north) Geodetic latitude Degrees, + north Geodetic longitude (degrees, + east) Geodetic longitude Degrees, + east Barometric pressure (millibars) Barometric pressure Millibars Set all site properties in one method call The geodetic latitude (degrees, + north) The geodetic longitude (degrees, +east) Height above sea level (meters) Ambient temperature (deg. Celsius) Ambient temperature Degrees Celsius) NOVAS-COM: Star Class NOVAS-COM objects of class Star contain the specifications for a star's catalog position in either FK5 or Hipparcos units (both must be J2000). Properties are right ascension and declination, proper motions, parallax, radial velocity, catalog type (FK5 or HIP), catalog number, optional ephemeris engine to use for barycenter calculations, and an optional value for delta-T. Unless you specifically set the DeltaT property, calculations performed by this class which require the value of delta-T (TT - UT1) rely on an internal function to estimate delta-T. The high-level NOVAS astrometric functions are implemented as methods of Star: GetTopocentricPosition(), GetLocalPosition(), GetApparentPosition(), GetVirtualPosition(), and GetAstrometricPosition(). These methods operate on the properties of the Star, and produce a PositionVector object. For example, to get the topocentric coordinates of a star, simply create and initialize a Star, then call Star.GetTopocentricPosition(). The resulting vaPositionVector's right ascension and declination properties are the topocentric equatorial coordinates, at the same time, the (optionally refracted) alt-az coordinates are calculated, and are also contained within the returned PositionVector. Note that Alt/Az is available in PositionVectors returned from calling GetTopocentricPosition(). Initialise a new instance of the star class Three character catalog code for the star's data Three character catalog code for the star's data Three character catalog code for the star's data Typically "FK5" but may be "HIP". For information only. Mean catalog J2000 declination coordinate (degrees) Mean catalog J2000 declination coordinate Degrees The value of delta-T (TT - UT1) to use for reductions. The value of delta-T (TT - UT1) to use for reductions. Seconds If this property is not set, calculations will use an internal function to estimate delta-T. Ephemeris object used to provide the position of the Earth. Ephemeris object used to provide the position of the Earth. Ephemeris object If this value is not set, an internal Kepler object will be used to determine Earth ephemeris Get an apparent position for a given time Terrestrial Julian Date for the position PositionVector for the apparent place. Get an astrometric position for a given time Terrestrial Julian Date for the position PositionVector for the astrometric place. Get a local position for a given site and time Terrestrial Julian Date for the position A Site object representing the observing site PositionVector for the local place. Get a topocentric position for a given site and time Terrestrial Julian Date for the position A Site object representing the observing site True to apply atmospheric refraction corrections PositionVector for the topocentric place. Get a virtual position at a given time Terrestrial Julian Date for the position PositionVector for the virtual place. The catalog name of the star (50 char max) The catalog name of the star Name (50 char max) The catalog number of the star The catalog number of the star The catalog number of the star Catalog mean J2000 parallax (arcsec) Catalog mean J2000 parallax Arc seconds Catalog mean J2000 proper motion in declination (arcsec/century) Catalog mean J2000 proper motion in declination Arc seconds per century Catalog mean J2000 proper motion in right ascension (sec/century) Catalog mean J2000 proper motion in right ascension Seconds per century Catalog mean J2000 radial velocity (km/sec) Catalog mean J2000 radial velocity Kilometers per second Catalog mean J2000 right ascension coordinate (hours) Catalog mean J2000 right ascension coordinate Hours Initialize all star properties with one call Catalog mean right ascension (hours) Catalog mean declination (degrees) Catalog mean J2000 proper motion in right ascension (sec/century) Catalog mean J2000 proper motion in declination (arcsec/century) Catalog mean J2000 parallax (arcsec) Catalog mean J2000 radial velocity (km/sec) Assumes positions are FK5. If Parallax is set to zero, NOVAS-COM assumes the object is on the "celestial sphere", which has a distance of 10 megaparsecs. Initialise all star properties in one call using Hipparcos data. Transforms to FK5 standard used by NOVAS. Catalog mean right ascension (hours) Catalog mean declination (degrees) Catalog mean J2000 proper motion in right ascension (sec/century) Catalog mean J2000 proper motion in declination (arcsec/century) Catalog mean J2000 parallax (arcsec) Catalog mean J2000 radial velocity (km/sec) Assumes positions are Hipparcos standard and transforms to FK5 standard used by NOVAS. If Parallax is set to zero, NOVAS-COM assumes the object is on the "celestial sphere", which has a distance of 10 megaparsecs. NOVAS-COM: VelocityVector Class NOVAS-COM objects of class VelocityVector contain vectors used for velocities (earth, sites, planets, and stars) throughout NOVAS-COM. Of course, its properties include the x, y, and z components of the velocity. Additional properties are the velocity in equatorial coordinates of right ascension dot, declination dot and radial velocity. You can initialize a PositionVector from a Star object (essentially an FK5 or HIP catalog entry) or a Site (lat/long/height). For the star object the proper motions, distance and radial velocity are used, for a site, the velocity is that of the observer with respect to the Earth's center of mass. Creates a new velocity vector object Linear velocity along the declination direction (AU/day) Linear velocity along the declination direction AU/day This is not the proper motion (which is an angular rate and is dependent on the distance to the object). Linear velocity along the radial direction (AU/day) Linear velocity along the radial direction AU/day Linear velocity along the right ascension direction (AU/day) Linear velocity along the right ascension direction AU/day Initialize the VelocityVector from a Site object and Greenwich Apparent Sdereal Time. The Site object from which to initialize Greenwich Apparent Sidereal Time True if OK or throws an exception The velocity vector is that of the observer with respect to the Earth's center of mass. The GAST parameter must be for Greenwich, not local. The time is rotated through the site longitude. See SetFromSiteJD() for an equivalent method that takes UTC Julian Date and optionally Delta-T (eliminating the need for calculating hyper-accurate GAST yourself). Initialize the VelocityVector from a Site object using UTC Julian Date The Site object from which to initialize UTC Julian Date True if OK otherwise throws an exception The velocity vector is that of the observer with respect to the Earth's center of mass. The Julian date must be UTC Julian date, not terrestrial. This call will use the internal tables and estimator to get delta-T. This overload is not available through COM, please use "SetFromSiteJD(ByVal site As Site, ByVal ujd As Double, ByVal delta_t As Double)" with delta_t set to 0.0 to achieve this effect. Initialize the VelocityVector from a Site object using UTC Julian Date and Delta-T The Site object from which to initialize UTC Julian Date The optional value of Delta-T (TT - UT1) to use for reductions (seconds) True if OK otherwise throws an exception The velocity vector is that of the observer with respect to the Earth's center of mass. The Julian date must be UTC Julian date, not terrestrial. Initialize the VelocityVector from a Star object. The Star object from which to initialize True if OK otherwise throws an exception The proper motions, distance and radial velocity are used in the velocity calculation. If any of: Parallax, RightAscension, Declination, ProperMotionRA, ProperMotionDec or RadialVelocity are not available in the star object Cartesian x component of velocity (AU/day) Cartesian x component of velocity AU/day Cartesian y component of velocity (AU/day) Cartesian y component of velocity AU/day Cartesian z component of velocity (AU/day) Cartesian z component of velocity AU/day Interface to the NOVAS2 component Implemented by the NOVAS2COM component Computes the apparent place of a star TT (or TDT) Julian date for apparent place. Structure containing the body designation for the earth Catalog entry structure containing J2000.0 catalog data with FK5-style units (defined in novas.h). OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'.
  0...Everything OK
 >0...Error code from function 'solarsystem'.
Computes the topocentric place of a star TT (or TDT) Julian date for topocentric place. Structure containing the body designation for the Earth. Difference TT (or TDT)-UT1 at 'tjd', in seconds. Catalog entry structure containing J2000.0 catalog data with FK5-style units. Structure containing observer's location OUT: Topocentric right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Topocentric declination in degrees, referred to true equator and equinox of date 'tjd'.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
Compute the apparent place of a planet or other solar system body. TT (or TDT) Julian date for apparent place. Structure containing the body designation for the solar system body Structure containing the body designation for the Earth OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: True distance from Earth to planet at 'tjd' in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the topocentric place of a planet, given the location of the observer. TT (or TDT) Julian date for topocentric place. structure containing the body designation for the solar system body structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. structure containing observer's location OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: True distance from Earth to planet at 'tjd' in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the virtual place of a star TT (or TDT) Julian date for virtual place. Pointer to structure containing the body designation for the Earth. Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'
 
Computes the virtual place of a star at date 'tjd', given its mean place, proper motion, parallax, and radial velocity for J2000.0.
Computes the local place of a star TT (or TDT) Julian date for local place. Pointer to structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units Pointer to structure containing observer's location OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. OUT: Local declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
Computes the virtual place of a planet or other solar system body. TT (or TDT) Julian date for virtual place. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the local place of a planet or other solar system body, given the location of the observer. TT (or TDT) Julian date for local place. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. Pointer to structure containing observer's location OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. OUT: Local declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the astrometric place of a star TT (or TDT) Julian date for astrometric place. Pointer to structure containing the body designation for the Earth Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
 
Computes the astrometric place of a star, given its mean place, proper motion, parallax, and radial velocity for J2000.0.
Computes the astrometric place of a planet or other solar system body. TT (or TDT) Julian date for calculation. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Transform apparent equatorial coordinates to horizon coordinates TT (or TDT) Julian date. Difference TT (or TDT)-UT1 at 'tjd', in seconds. Conventionally-defined x coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option OUT: Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. OUT: Topocentric azimuth (measured east from north) in degrees. OUT: Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. OUT: Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms apparent equatorial coordinates (right ascension and declination) to horizon coordinates (zenith distance and azimuth). It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. To convert Hipparcos data at epoch J1991.25 to epoch J2000.0 and FK5-style units. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0, with all members having FK5 catalog units. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion.
 1. Hipparcos epoch and units:
    Epoch: J1991.25
    Right ascension (RA): degrees
    Declination (Dec): degrees
    Proper motion in RA * cos (Dec): milliarcseconds per year
    Proper motion in Dec: milliarcseconds per year
    Parallax: milliarcseconds
    Radial velocity: kilometers per second (not in catalog)
 
 2. FK5 epoch and units:
    Epoch: J2000.0
    Right ascension: hours
    Declination: degrees
    Proper motion in RA: seconds of time per Julian century
    Proper motion in Dec: arcseconds per Julian century
    Parallax: arcseconds
    Radial velocity: kilometers per second
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option
    = 1 ... change epoch; same equator and equinox
    = 2 ... change equator and equinox; same epoch
    = 3 ... change equator and equinox and epoch
TT Julian date, or year, of input catalog data. An entry from the input catalog TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. OUT: The transformed catalog entry
 1. 'date_incat' and 'date_newcat' may be specified either as a 
    Julian date (e.g., 2433282.5) or a Julian year and fraction 
    (e.g., 1950.0).  Values less than 10000 are assumed to be years.
 
 2. option = 1 updates the star's data to account for the star's space motion between 
               the first and second dates, within a fixed reference frame.
    option = 2 applies a rotation of the reference frame corresponding to precession 
               between the first and second dates, but leaves the star fixed in space.
    option = 3 provides both transformations.
 
 3. This subroutine cannot be properly used to bring data from 
    old (pre-FK5) star catalogs into the modern system, because old 
    catalogs were compiled using a set of constants that are 
    incompatible with the IAU (1976) system.
 
 4. This function uses TDB Julian dates internally, but no 
    distinction between TDB and TT is necessary.
Computes the Greenwich apparent sidereal time, at Julian date 'jd_high' + 'jd_low'. Julian date, integral part. Julian date, fractional part. Equation of the equinoxes (seconds of time). [Note: this quantity is computed by function 'earthtilt'.] Greenwich apparent sidereal time, in hours. Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of first epoch. TDB Julian date of second epoch. OUT: Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of second epoch. The coordinates are referred to the mean equator and equinox of the two respective epochs. Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'tjd'. TDB Julian date of the desired time OUT: Mean obliquity of the ecliptic in degrees at 'tjd'. OUT: True obliquity of the ecliptic in degrees at 'tjd'. OUT: Equation of the equinoxes in seconds of time at 'tjd'. OUT: Nutation in longitude in arcseconds at 'tjd'. OUT: Nutation in obliquity in arcseconds at 'tjd'. This function allows for the specification of celestial pole offsets for high-precision applications. Value of offset in delta psi (dpsi) in arcseconds. Value of offset in delta epsilon (deps) in arcseconds. These are added to the nutation parameters delta psi and delta epsilon. 1. This function sets the values of global variables 'PSI_COR'and 'EPS_COR' declared at the top of file 'novas.c'. These global variables are used only in NOVAS function 'earthtilt'. 2. This function, if used, should be called before any other NOVAS functions for a given date. Values of the pole offsets specified via a call to this function will be used until explicitly changed. 3. Daily values of the offsets are published, for example, in IERS Bulletins A and B. 4. This function is the "C" version of Fortran NOVAS routine "celpol". Retrieves the position and velocity of a body from a fundamental ephemeris. TDB Julian date. Structure containing the designation of the body of interest Origin point (solar system barycentre or centre of mass of the Sun OUT: Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Velocity vector of 'body' at tjd; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
 0    ... Everything OK.
 1    ... Invalid value of 'origin'.
 2    ... Invalid value of 'type' in 'cel_obj'.
 3    ... Unable to allocate memory.
 10+n ... where n is the error code from 'solarsystem'.
 20+n ... where n is the error code from 'readeph'.
Provides the position and velocity of the Earth TDB Julian date. Body identification number.
 Set 'body' = 0 or 'body' = 1 or 'body' = 10 for the Sun.
 Set 'body' = 2 or 'body' = 3 for the Earth.
Required origin: solar system barycenter or center of mass of the Sun OUT: Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
 0...Everything OK.
 1...Input Julian date ('tjd') out of range.
 2...Invalid value of 'body'.
Provides the position and velocity of the Earth at epoch 'tjd' by evaluating a closed-form theory without reference to an external file. This function can also provide the position and velocity of the Sun.
Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. OUT: Right ascension in hours. OUT: Declination in degrees.
 0...Everything OK.
 1...All vector components are zero; 'ra' and 'dec' are indeterminate.
 2...Both vec[0] and vec[1] are zero, but vec[2] is nonzero; 'ra' is indeterminate.
Converts angular quanities for stars to vectors. Catalog entry structure containing J2000.0 catalog data with FK5-style units Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance Position vector, equatorial rectangular coordinates (AU). Obtains the barycentric and heliocentric positions and velocities of the Earth from the solar system ephemeris. TT (or TDT) Julian date. Structure containing the body designation for the Earth. OUT: TDB Julian date corresponding to 'tjd'. OUT: Barycentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Barycentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. OUT: Heliocentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Heliocentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
Computes the mean place of a star for J2000.0 TT (or TDT) Julian date of apparent place. Pointer to structure containing the body designation for the Earth Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: Mean right ascension J2000.0 in hours. OUT: Mean declination J2000.0 in degrees.
   0...Everything OK.
   1...Iterative process did not converge after 20 iterations.
 >10...Error from function 'app_star'.
Computes the mean place of a star for J2000.0, given its apparent place at date 'tjd'. Proper motion, parallax and radial velocity are assumed to be zero.
Transforms a vector from an Earth-fixed geographic system to a space-fixed system TT (or TDT) Julian date Greenwich apparent sidereal time, in hours. Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. OUT: Vector in geocentric rectangular space-fixed system, referred to mean equator and equinox of J2000.0. Transforms a vector from an Earth-fixed geographic system to a space-fixed system based on mean equator and equinox of J2000.0; applies rotations for wobble, spin, nutation, and precession. Transforms geocentric rectangular coordinates from rotating system to non-rotating system Local apparent sidereal time at reference meridian, in hours. Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal reference meridian. OUT: Vector in geocentric rectangular non-rotating system, referred to true equator and equinox of date. Transforms geocentric rectangular coordinates from rotating system based on rotational equator and orthogonal reference meridian to non-rotating system based on true equator and equinox of date. Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. OUT: Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal Greenwich meridian Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Transforms a vector from Earth-fixed geographic system to rotating system based on rotational equator and orthogonal Greenwich meridian through axis of rotation. Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Longitude, latitude and height of the observer (in a SiteInfoStruct) Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/Day. Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. OUT: Position vector at second epoch. Moves the origin of coordinates from the barycenter of the solar system to the center of mass of the Earth Position vector, referred to origin at solar system barycenter, components in AU. Position vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU. OUT: Position vector, referred to origin at center of mass of the Earth, components in AU. OUT: Light time from body to Earth in days. This corrects for parallax. Corrects position vector for the deflection of light in the gravitational field of the Sun. Position vector, referred to origin at center of mass of the Earth, components in AU. Position vector of center of mass of the Earth, referred to origin at center of mass of the Sun, components in AU. Position vector, referred to origin at center of mass of the Earth, corrected for gravitational deflection, components in AU. 0...Everything OK. This function is valid for bodies within the solar system as well as for stars. Corrects position vector for aberration of light. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from body to Earth in days. OUT: Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU 0...Everything OK. Algorithm includes relativistic terms. Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB julian date of epoch. Flag determining 'direction' of transformation;
    fn  = 0 transformation applied, mean to true.
    fn != 0 inverse transformation applied, true to mean.
Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. OUT: Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. 0...Everything OK. Inverse transformation may be applied by setting flag 'fn'.
Provides fast evaluation of the nutation components according to the 1980 IAU Theory of Nutation. TDB time in Julian centuries since J2000.0 OUT: Nutation in longitude in arcseconds. OUT: Nutation in obliquity in arcseconds. 0...Everything OK. To compute the fundamental arguments. TDB time in Julian centuries since J2000.0 OUT: FundamentalArgsStruct containing:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (L - omega; L = mean longitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = omega (mean longitude of the Moon's ascending node)
Converts TDB to TT or TDT TDB Julian date. OUT: TT (or TDT) Julian date. OUT: Difference tdbjd-tdtjd, in seconds. Computes the terrestrial time (TT) or terrestrial dynamical time (TDT) Julian date corresponding to a barycentric dynamical time (TDB) Julian date. Sets up a structure of type 'body' - defining a celestial object- based on the input parameters. Type of body Body number Name of the body. OUT: Structure containg the body definition
 = 0 ... everything OK
 = 1 ... invalid value of 'type'
 = 2 ... 'number' out of range
To create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Three-character catalog identifier (e.g. HIP = Hipparcos, FK5 = FK5). This identifier also specifies the reference system and units of the data; i.e. they are the same as the specified catalog. Object name (50 characters maximum). Object number in the catalog. Right ascension of the object. Declination of the object. Proper motion in right ascension. Proper motion in declination. Parallax. Radial velocity. OUT: Structure containing the input data Computes atmospheric refraction in zenith distance. structure containing observer's location refraction option bserved zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. This function will compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number. Day number Time in hours OUT: Julian date. Compute a date on the Gregorian calendar given the Julian date. Julian date. OUT: Year number OUT: Month number. OUT: Day number OUT: Time in hours Compute equatorial spherical coordinates of Sun referred to the mean equator and equinox of date. Julian date on TDT or ET time scale. OUT: Right ascension referred to mean equator and equinox of date (hours). OUT: Declination referred to mean equator and equinox of date (degrees). OUT: Geocentric distance (AU). Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 Interface to the NOVAS3 component Implemented by the NOVAS3 component Note: This interface is now deprecated, please use INOVAS31 instead. Get position and velocity of target with respect to the centre object. Two-element array containing the Julian date, which may be split any way (although the first element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the TDB or "T_eph" time scale. Target object Centre object Position vector array of target relative to center, measured in AU. Velocity vector array of target relative to center, measured in AU/day.
 0   ...everything OK.
 1,2 ...error returned from State.
This function accesses the JPL planetary ephemeris to give the position and velocity of the target object with respect to the center object.
Read object ephemeris The number of the asteroid for which the position in desired. The name of the asteroid. The Julian date on which to find the position and velocity. Error code; always set equal to 9 (see note below). 6-element array of double cotaining position and velocity vector values, with all elements set to zero. This is a dummy version of function 'ReadEph'. It serves as a stub for the "real" 'ReadEph' (part of the USNO/AE98 minor planet ephemerides) when NOVAS-C is used without the minor planet ephemerides. This dummy function is not intended to be called. It merely serves as a stub for the "real" 'ReadEph' when NOVAS-C is used without the minor planet ephemerides. If this function is called, an error of 9 will be returned. Interface between the JPL direct-access solar system ephemerides and NOVAS-C. Julian date of the desired time, on the TDB time scale. Body identification number for the solar system object of interest; Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. Always returns 0 Read and interpolate the JPL planetary ephemeris file. 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. The requested body to get data for from the ephemeris file. The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) The barycentric velocity vector array of the requested object, in AU/Day.
 0 ...everything OK
 1 ...error reading ephemeris file
 2 ...epoch out of range.
 
The target number designation of the astronomical bodies is:
         = 0: Mercury,               1: Venus, 
         = 2: Earth-Moon barycenter, 3: Mars, 
         = 4: Jupiter,               5: Saturn, 
         = 6: Uranus,                7: Neptune, 
         = 8: Pluto,                 9: geocentric Moon, 
         =10: Sun.
 
NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval between then and epoch.
Corrects position vector for aberration of light. Algorithm includes relativistic terms. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from object to Earth in days. Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU If 'lighttime' = 0 on input, this function will compute it. Compute the apparent place of a planet or other solar system body. TT Julian date for apparent place. Pointer to structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for apparent place. Catalog entry structure containing catalog data forthe object in the ICRS Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'.
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Compute the astrometric place of a planet or other solar system body. TT Julian date for astrometric place. structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for astrometric place. Catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration).
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). Position vector, referred to origin at solar system barycenter, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector, referred to origin at center of mass of the Earth, components in AU. Light time from object to Earth in days. This function will compute a date on the Gregorian calendar given the Julian date. Julian date. Year Month number day number Fractional hour of the day This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. TDB or TT Julian date for pole offsets. Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds.
 0 ... Everything OK
 1 ... Invalid value of 'Type'.
 
Calaculate an array of CIO RA values around a given date TDB Julian date. Number of Julian dates and right ascension values requested (not less than 2 or more than 20). An arraylist of RaOfCIO structures containing a time series of the right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS.
 0 ... everything OK
 1 ... error opening the 'cio_ra.bin' file
 2 ... 'JdTdb' not in the range of the CIO file; 
 3 ... 'NPts' out of range
 4 ... unable to allocate memory for the internal 't' array; 
 5 ... unable to allocate memory for the internal 'ra' array; 
 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
 
Given an input TDB Julian date and the number of data points desired, this function returns a set of Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). The range of dates is centered (at least approximately) on the requested date. The function obtains the data from an external data file. How to create and retrieve values from the arraylist Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 MsgBox("Nov3 RC= " rc) For Each CioA As ASCOM.Astrometry.RAOfCio In CioList MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) Next
Compute the orthonormal basis vectors of the celestial intermediate system. TDB Julian date of epoch. Right ascension of the CIO at epoch (hours). Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. Accuracy Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS.
 0 ... everything OK
 1 ... invalid value of input variable 'RefSys'.
 
To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the right ascension of the CIO at that date is required as input. The right ascension of the CIO can be with respect to either the GCRS origin or the true equinox of date -- different algorithms are used in the two cases.
Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension TDB Julian date. Selection for accuracy Right ascension of the CIO, in hours. Reference system in which right ascension is given
    0 ... everything OK
    1 ... unable to allocate memory for the 'cio' array
 > 10 ... 10 + the error code from function 'CioArray'.
 
This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date.
Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). TT Julian date Selection for accuracy Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -).
   0  ... everything OK
   1  ... invalid value of 'Accuracy'
 > 10 ... 10 + the error code from function 'CioLocation'
 > 20 ... 20 + the error code from function 'CioBasis'.
 
Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). Position vector of star, with respect to origin at solar system barycenter. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Difference in light time, in the sense star to barycenter minus star to earth, in days. Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is the position vector of solar system body, with respect to origin at observer (or the geocenter), components in AU; and the returned value is the light time to point on line defined by 'Pos1' that is closest to solar system body (positive if light passes body before hitting observer, i.e., if 'Pos1' is within 90 degrees of 'PosObs'). Converts an ecliptic position vector to an equatorial position vector. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS Selection for accuracy Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. Position vector, referred to specified equator and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the output from this case, all vectors are assumed to be with respect to a dynamical system.
Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. High-order part of TT Julian date. Low-order part of TT Julian date. Selection for accuracy Complementary terms, in radians. Series from IERS Conventions (2003), Chapter 5, Table 5.2C, with some adjustments to coefficient values copied from IERS function 'eect2000', which has a more complete series. Retrieves the position and velocity of a solar system body from a fundamental ephemeris. TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. Structure containing the designation of the body of interest Origin code; solar system barycenter = 0, center of mass of the Sun = 1. Slection for accuracy Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day.
    0 ... Everything OK
    1 ... Invalid value of 'Origin'
    2 ... Invalid value of 'Type' in 'CelObj'; 
    3 ... Unable to allocate memory
 10+n ... where n is the error code from 'SolarSystem'; 
 20+n ... where n is the error code from 'ReadEph'.
 
It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c.
To convert right ascension and declination to ecliptic longitude and latitude. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Right ascension in hours, referred to specified equator and equinox of date. Declination in degrees, referred to specified equator and equinox of date. Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all input coordinates are dynamical.
Converts an equatorial position vector to an ecliptic position vector. TT Julian date of equator, equinox, and ecliptic used for Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Position vector, referred to specified equator and equinox of date. Position vector, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all vectors are assumed to be with respect to a dynamical system.
Converts ICRS right ascension and declination to galactic longitude and latitude. ICRS right ascension in hours. ICRS declination in degrees. Galactic longitude in degrees. Galactic latitude in degrees. Transforms topocentric right ascension and declination to zenith distance and azimuth. UT1 Julian date. Difference TT-UT1 at 'jd_ut1', in seconds. Selection for accuracy onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. Topocentric azimuth (measured east from north) in degrees. Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms topocentric right ascension and declination to zenith distance and azimuth. It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. The Earth Rotation Angle (theta) in degrees. The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top of page 35 of IERS Conventions (1996)). Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. TDB Julian Date. Selection for accuracy Mean obliquity of the ecliptic in degrees at 'JdTdb'. True obliquity of the ecliptic in degrees at 'JdTdb'. Equation of the equinoxes in seconds of time at 'JdTdb'. Nutation in longitude in arcseconds at 'JdTdb'. Nutation in obliquity in arcseconds at 'JdTdb'. Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', if desired. See the prolog of 'cel_pole' for details. To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. Position vector, equatorial rectangular coordinates. Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for ICRS to dynamical transformation. Position vector, equatorial rectangular coordinates. To compute the fundamental arguments (mean elements) of the Sun and Moon. TDB time in Julian centuries since J2000.0 Double array of fundamental arguments Fundamental arguments, in radians:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (mean argument of the latitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = a[4] (mean longitude of the Moon's ascending node);
                from Simon section 3.4(b.3),
                precession = 5028.8200 arcsec/cy)
 
Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). TT Julian date of equator to be used for output coordinates. Coordinate system selection for output coordinates.; 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date Selection for accuracy GCRS right ascension in hours. GCRS declination in degrees. Right ascension in hours, referred to specified equator and right ascension origin of date. Declination in degrees, referred to specified equator of date.
    0 ... everything OK
 >  0 ... error from function 'Vector2RaDec'' 
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
>
For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). This function only supports the CIO-based method.
This function computes the geocentric position and velocity of an observer on the surface of the earth or on a near-earth spacecraft. TT Julian date. Value of Delta T (= TT - UT1) at 'JdTt'. Selection for accuracy Data specifying the location of the observer Position vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU. Velocity vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU/day.
 0 ... everything OK
 1 ... invalid value of 'Accuracy'.
 
The final vectors are expressed in the GCRS.
Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. TDB Julian date of observation. Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. Selection for accuracy Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, corrected for gravitational deflection, components in AU.
    0 ... Everything OK
  30 ... Error from function 'Ephemeris'; 
 > 30 ... Error from function 'MakeObject'.
 
This function valid for an observed body within the solar system as well as for a star. If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included.
Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. Position vector of observed object, with respect to origin at observer (or the geocenter), components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector of gravitating body, with respect to origin at solar system barycenter, components in AU. Reciprocal mass of gravitating body in solar mass units, that is, Sun mass / body mass. Position vector of observed object, with respect to origin at observer (or the geocenter), corrected for gravitational deflection, components in AU. This function valid for an observed body within the solar system as well as for a star. Compute the intermediate right ascension of the equinox at the input Julian date TDB Julian date. Equinox selection flag: mean pr true Selection for accuracy Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 (i.e true equinox), then the returned value is the equation of the origins. Compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number Day number Fractional hour of the day Computed Julian date. This function makes no checks for a valid input calendar date. The input calendar date must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - output Julian date will have the same basis. Computes the geocentric position of a solar system body, as antedated for light-time. TDB Julian date of observation. Structure containing the designation for thesolar system body Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. First approximation to light-time, in days (can be set to 0.0 if unknown) Selection for accuracy Position vector of body, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Final light-time, in days.
    0 ... everything OK
    1 ... algorithm failed to converge after 10 iterations
 ]]> 10 ... error is 10 + error from function 'SolarSystem'.
 
Determines the angle of an object above or below the Earth's limb (horizon). Position vector of observed object, with respect to origin at geocenter, components in AU. Position vector of observer, with respect to origin at geocenter, components in AU. Angle of observed object above (+) or below (-) limb in degrees. Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb The geometric limb is computed, assuming the Earth to be an airless sphere (no refraction or oblateness is included). The observer can be on or above the Earth. For an observer on the surface of the Earth, this function returns the approximate unrefracted altitude. Computes the local place of a solar system body. TT Julian date for local place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Specifies accuracy level Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'. True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'; 
 ]]> 10 ... Error code from function 'Place'.
 
Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for local place. delta_t (double) Difference TT-UT1 at 'JdTt', in seconds of time. catalog entry structure containing catalog data for the object in the ICRS Structure specifying the position of the observer Specifies accuracy level. Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Object name (50 characters maximum). Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) Object number in the catalog. Right ascension of the object (hours). Declination of the object (degrees). Proper motion in right ascension (milliarcseconds/year). Proper motion in declination (milliarcseconds/year). Parallax (milliarcseconds). Radial velocity (kilometers/second). CatEntry3 structure containing the input data Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. InSpace structure containing the position and velocity of an observer situated on a near-Earth spacecraft Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) Name of the object (50 characters maximum). Structure containing basic astrometric data for any celestial object located outside the solar system; the catalog data for a star Structure containing the object definition
 0 ... everything OK
 1 ... invalid value of 'Type'
 2 ... 'Number' out of range
 
Makes a structure of type 'observer' - specifying the location of the observer. Integer code specifying location of observer: 0: observer at geocenter; 1: observer on surface of earth; 2: observer on near-earth spacecraft Structure containing data for an observer's location on the surface of the Earth; used when 'Where' = 1 Structure containing an observer's location on a near-Earth spacecraft; used when 'Where' = 2 Structure specifying the location of the observer
 0 ... everything OK
 1 ... input value of 'Where' is out-of-range.
 
Makes a structure of type 'observer' specifying an observer at the geocenter. Structure specifying the location of the observer at the geocenter Makes a structure of type 'observer' specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric position vector (x, y, z) in km. Structure containing the position and velocity of an observer situated on a near-Earth spacecraft Both input vectors are with respect to true equator and equinox of date. Makes a structure of type 'observer' specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) longitude in degrees; east positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth Makes a structure of type 'on_surface' - specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) latitude in degrees; north positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth. Compute the mean obliquity of the ecliptic. TDB Julian Date. Mean obliquity of the ecliptic in arcseconds. Computes the ICRS position of a star, given its apparent place at date 'JdTt'. Proper motion, parallax and radial velocity are assumed to be zero. TT Julian date of apparent place. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. Specifies accuracy level ICRS right ascension in hours. ICRS declination in degrees.
    0 ... Everything OK
    1 ... Iterative process did not converge after 30 iterations; 
 > 10 ... Error from function 'Vector2RaDec'
 > 20 ... Error from function 'AppStar'.
 
Normalize angle into the range 0 angle (2 * pi). Input angle (radians). The input angle, normalized as described above (radians). Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB Julian date of epoch. Flag determining 'direction' of transformation; direction = 0 transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. Selection for accuracy Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. Inverse transformation may be applied by setting flag 'direction' Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. TDB time in Julian centuries since J2000.0 Selection for accuracy Nutation in longitude in arcseconds. Nutation in obliquity in arcseconds. The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. This function selects the nutation model depending first upon the input value of 'Accuracy'. If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. Computes the apparent direction of a star or solar system body at a specified time and in a specified coordinate system. TT Julian date for place. Specifies the celestial object of interest Specifies the location of the observer Difference TT-UT1 at 'JdTt', in seconds of time. Code specifying coordinate system of the output position. 0 ... GCRS or "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; 3 ... astrometric coordinates, i.e., without light deflection or aberration. Selection for accuracy Structure specifying object's place on the sky at time 'JdTt', with respect to the specified output coordinate system
 = 0         ... No problems.
 = 1         ... invalid value of 'CoordSys'
 = 2         ... invalid value of 'Accuracy'
 = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
 > 10,  40  ... 10 + error from function 'Ephemeris'
 > 40,  50  ... 40 + error from function 'GeoPosVel'
 > 50,  70  ... 50 + error from function 'LightTime'
 > 70,  80  ... 70 + error from function 'GravDef'
 > 80,  90  ... 80 + error from function 'CioLocation'
 > 90,  100 ... 90 + error from function 'CioBasis'
 
Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place:
     Location->Where = 0 and CoordSys = 1: apparent place
     Location->Where = 1 and CoordSys = 1: topocentric place
     Location->Where = 0 and CoordSys = 0: virtual place
     Location->Where = 1 and CoordSys = 0: local place
     Location->Where = 0 and CoordSys = 3: astrometric place
     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
 
Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is on surface of Earth or in a near-Earth satellite).
Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. TDB Julian date of second epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch.
 0 ... everything OK
 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
 
One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs.
Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. Position vector at second epoch. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance in AU Position vector, equatorial rectangular coordinates (AU). Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. Specifies the celestial object of interest Geometric position vector of object with respect to observer, corrected for light-time, in AU. Velocity vector of object with respect to solar system barycenter, in AU/day. Velocity vector of observer with respect to solar system barycenter, in AU/day. Distance from observer to geocenter, in AU. Distance from observer to Sun, in AU. Distance from object to Sun, in AU. The observed radial velocity measure times the speed of light, in kilometers/second. Radial velocity is here defined as the radial velocity measure (z) times the speed of light. For a solar system body, it applies to a fictitious emitter at the center of the observed object, assumed massless (no gravitational red shift), and does not in general apply to reflected light. For stars, it includes all effects, such as gravitational red shift, contained in the catalog barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known kinematic velocity vector (obtained independently of spectroscopy) can be treated like solar system objects. Computes atmospheric refraction in zenith distance. Structure containing observer's location. 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric parameters input in the 'Location' structure. Observed zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. This function can be used for planning observations or telescope pointing, but should not be used for the reduction of precise observations. Computes the Greenwich apparent sidereal time, at Julian date 'JdHigh' + 'JdLow'. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy Greenwich apparent sidereal time, in hours.
          0 ... everything OK
          1 ... invalid value of 'Accuracy'
          2 ... invalid value of 'Method'
 > 10,  30 ... 10 + error from function 'CioRai'
 
The Julian date may be split at any point, but for highest precision, set 'JdHigh' to be the integral part of the Julian date, and set 'JdLow' to be the fractional part.
Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. Position vector. Position vector expressed in new coordinate system rotated about z by 'angle'. Converts angular quantities for stars to vectors. Catalog entry structure containing ICRS catalog data Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding to a Barycentric Dynamical Time (TDB) Julian date. TDB Julian date. TT Julian date. Difference 'tdb_jd'-'tt_jd', in seconds. Expression used in this function is a truncated form of a longer and more precise series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. The result is good to about 10 microseconds. This function rotates a vector from the terrestrial to the celestial system. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Value of Delta T (= TT - UT1) at the input UT1 Julian date. Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy 0 ... The output vector is referred to GCRS axes; 1 ... The output vector is produced with respect to the equator and equinox of date. Conventionally-defined X coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes (terrestrial system) in the normal case where 'option' = 0. Position vector, geocentric equatorial rectangular coordinates, referred to GCRS axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'.
    0 ... everything is ok
    1 ... invalid value of 'Accuracy'
    2 ... invalid value of 'Method'
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
'x' = 'y' = 0 means no polar motion transformation. The 'option' flag only works for the equinox-based method.
Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Structure containing observer's location Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/day. If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. This function ignores polar motion, unless the observer's longitude and latitude have been corrected for it, and variation in the length of day (angular velocity of earth). The true equator and equinox of date do not form an inertial system. Therefore, with respect to an inertial system, the very small velocity component (several meters/day) due to the precession and nutation of the Earth's axis is not accounted for here. Computes the topocentric place of a solar system body. TT Julian date for topocentric place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Selection for accuracy Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'Place'.
Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for topocentric place. Difference TT-UT1 at 'JdTt', in seconds of time. Catalog entry structure containing catalog data for the object in the ICRS Specifies the position of the observer Code specifying the relative accuracy of the output position. Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'.
 
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option TT Julian date, or year, of input catalog data. An entry from the input catalog, with units as given in the struct definition TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. The transformed catalog entry, with units as given in the struct definition
 = 0 ... Everything OK.
 = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
 
Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference frame corresponding to precession between the first and second dates, but leaves the star fixed in space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). 3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. 4. This function cannot be properly used to bring data from old star catalogs into the modern system, because old catalogs were compiled using a set of constants that are incompatible with modern values. In particular, it should not be used for catalogs whose positions and proper motions were derived by assuming a precession constant significantly different from the value implicit in function 'precession'.
Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion. Both input and output data is in the ICRS. 1. Input (Hipparcos catalog) epoch and units: Epoch: J1991.25 Right ascension (RA): degrees Declination (Dec): degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second (not in catalog) 2. Output (modified Hipparcos) epoch and units: Epoch: J2000.0 Right ascension: hours Declination: degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second > Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. Right ascension in hours. Declination in degrees.
 = 0 ... Everything OK.
 = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
 = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
 
Compute the virtual place of a planet or other solar system body. TT Julian date for virtual place. structure containing the body designation for the solar system body( Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS. True distance from Earth to planet in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Type' in structure 'SsBody'.
 > 10 ... Error code from function 'Place'.
 
Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for virtual place. catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS.
 =  0 ... Everything OK.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'
 
Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). TT or UT1 Julian date. Conventionally-defined X coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and TIO. Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 Interface to the NOVAS31 component Implemented by the NOVAS31 component Get position and velocity of target with respect to the centre object. Two-element array containing the Julian date, which may be split any way (although the first element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the TDB or "T_eph" time scale. Target object Centre object Position vector array of target relative to center, measured in AU. Velocity vector array of target relative to center, measured in AU/day.
 0   ...everything OK.
 1,2 ...error returned from State.
This function accesses the JPL planetary ephemeris to give the position and velocity of the target object with respect to the center object.
Read object ephemeris The number of the asteroid for which the position in desired. The name of the asteroid. The Julian date on which to find the position and velocity. Error code; always set equal to 9 (see note below). 6-element array of double cotaining position and velocity vector values, with all elements set to zero. This is a dummy version of function 'ReadEph'. It serves as a stub for the "real" 'ReadEph' (part of the USNO/AE98 minor planet ephemerides) when NOVAS-C is used without the minor planet ephemerides. This dummy function is not intended to be called. It merely serves as a stub for the "real" 'ReadEph' when NOVAS-C is used without the minor planet ephemerides. If this function is called, an error of 9 will be returned. Interface between the JPL direct-access solar system ephemerides and NOVAS-C. Julian date of the desired time, on the TDB time scale. Body identification number for the solar system object of interest; Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. Always returns 0 Read and interpolate the JPL planetary ephemeris file. 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. The requested body to get data for from the ephemeris file. The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) The barycentric velocity vector array of the requested object, in AU/Day.
 0 ...everything OK
 1 ...error reading ephemeris file
 2 ...epoch out of range.
 
The target number designation of the astronomical bodies is:
         = 0: Mercury,               1: Venus, 
         = 2: Earth-Moon barycenter, 3: Mars, 
         = 4: Jupiter,               5: Saturn, 
         = 6: Uranus,                7: Neptune, 
         = 8: Pluto,                 9: geocentric Moon, 
         =10: Sun.
 
NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval between then and epoch.
Corrects position vector for aberration of light. Algorithm includes relativistic terms. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from object to Earth in days. Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU If 'lighttime' = 0 on input, this function will compute it. Compute the apparent place of a planet or other solar system body. TT Julian date for apparent place. Pointer to structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for apparent place. Catalog entry structure containing catalog data forthe object in the ICRS Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'.
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Compute the astrometric place of a planet or other solar system body. TT Julian date for astrometric place. structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for astrometric place. Catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration).
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). Position vector, referred to origin at solar system barycenter, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector, referred to origin at center of mass of the Earth, components in AU. Light time from object to Earth in days. This function will compute a date on the Gregorian calendar given the Julian date. Julian date. Year Month number day number Fractional hour of the day This function rotates a vector from the celestial to the terrestrial system. Specifically, it transforms a vector in the GCRS (a local space-fixed system) to the ITRS (a rotating earth-fixed system) by applying rotations for the GCRS-to-dynamical frame tie, precession, nutation, Earth rotation, and polar motion. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Value of Delta T (= TT - UT1) at the input UT1 Julian date. Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy 0 ... The output vector is referred to GCRS axes; 1 ... The output vector is produced with respect to the equator and equinox of date. (See note 2 below) Conventionally-defined X coordinate of celestial intermediate pole with respect to ITRS pole, in arcseconds. Conventionally-defined Y coordinate of celestial intermediate pole with respect to ITRS pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to GCRS axes (celestial system) or with respect to the equator and equinox of date, depending on 'option'. Position vector, geocentric equatorial rectangular coordinates, referred to ITRS axes (terrestrial system).
    0 ... everything is ok
    1 ... invalid value of 'Accuracy'
    2 ... invalid value of 'Method'
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
Note 1: 'x' = 'y' = 0 means no polar motion transformation. Note2: 'option' = 1 only works for the equinox-based method.
This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. TDB or TT Julian date for pole offsets. Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds.
 0 ... Everything OK
 1 ... Invalid value of 'Type'.
 
Calaculate an array of CIO RA values around a given date TDB Julian date. Number of Julian dates and right ascension values requested (not less than 2 or more than 20). An arraylist of RaOfCIO structures containing a time series of the right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS.
 0 ... everything OK
 1 ... error opening the 'cio_ra.bin' file
 2 ... 'JdTdb' not in the range of the CIO file; 
 3 ... 'NPts' out of range
 4 ... unable to allocate memory for the internal 't' array; 
 5 ... unable to allocate memory for the internal 'ra' array; 
 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
 
Given an input TDB Julian date and the number of data points desired, this function returns a set of Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). The range of dates is centered (at least approximately) on the requested date. The function obtains the data from an external data file. How to create and retrieve values from the arraylist Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 MsgBox("Nov3 RC= " rc) For Each CioA As ASCOM.Astrometry.RAOfCio In CioList MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) Next
Compute the orthonormal basis vectors of the celestial intermediate system. TDB Julian date of epoch. Right ascension of the CIO at epoch (hours). Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. Accuracy Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS.
 0 ... everything OK
 1 ... invalid value of input variable 'RefSys'.
 
To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the right ascension of the CIO at that date is required as input. The right ascension of the CIO can be with respect to either the GCRS origin or the true equinox of date -- different algorithms are used in the two cases.
Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension TDB Julian date. Selection for accuracy Right ascension of the CIO, in hours. Reference system in which right ascension is given
    0 ... everything OK
    1 ... unable to allocate memory for the 'cio' array
 > 10 ... 10 + the error code from function 'CioArray'.
 
This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date.
Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). TT Julian date Selection for accuracy Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -).
   0  ... everything OK
   1  ... invalid value of 'Accuracy'
 > 10 ... 10 + the error code from function 'CioLocation'
 > 20 ... 20 + the error code from function 'CioBasis'.
 
Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). Position vector of star, with respect to origin at solar system barycenter. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Difference in light time, in the sense star to barycenter minus star to earth, in days. Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is the position vector of solar system body, with respect to origin at observer (or the geocenter), components in AU; and the returned value is the light time to point on line defined by 'Pos1' that is closest to solar system body (positive if light passes body before hitting observer, i.e., if 'Pos1' is within 90 degrees of 'PosObs'). Converts an ecliptic position vector to an equatorial position vector. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS Selection for accuracy Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. Position vector, referred to specified equator and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the output from this case, all vectors are assumed to be with respect to a dynamical system.
Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. High-order part of TT Julian date. Low-order part of TT Julian date. Selection for accuracy Complementary terms, in radians. 1. The series used in this function was derived from Series from IERS Conventions (2003), Chapter 5, Table 5.2C. This same series was also adopted for use in the IAU's Standards of Fundamental Astronomy (SOFA) software (i.e., subroutine eect00.for and function eect00.c). 2. The low-accuracy series used in this function is a simple implementation derived from the first reference, in which terms smaller than 2 microarcseconds have been omitted. 3. This function is based on NOVAS Fortran routine 'eect2000', with the low-accuracy formula taken from NOVAS Fortran routine 'etilt'. Retrieves the position and velocity of a solar system body from a fundamental ephemeris. TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. Structure containing the designation of the body of interest Origin code; solar system barycenter = 0, center of mass of the Sun = 1. Slection for accuracy Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day.
    0 ... Everything OK
    1 ... Invalid value of 'Origin'
    2 ... Invalid value of 'Type' in 'CelObj'; 
    3 ... Unable to allocate memory
 10+n ... where n is the error code from 'SolarSystem'; 
 20+n ... where n is the error code from 'ReadEph'.
 
It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c.
To convert right ascension and declination to ecliptic longitude and latitude. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Right ascension in hours, referred to specified equator and equinox of date. Declination in degrees, referred to specified equator and equinox of date. Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all input coordinates are dynamical.
Converts an equatorial position vector to an ecliptic position vector. TT Julian date of equator, equinox, and ecliptic used for Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Position vector, referred to specified equator and equinox of date. Position vector, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all vectors are assumed to be with respect to a dynamical system.
Converts ICRS right ascension and declination to galactic longitude and latitude. ICRS right ascension in hours. ICRS declination in degrees. Galactic longitude in degrees. Galactic latitude in degrees. Transforms topocentric right ascension and declination to zenith distance and azimuth. UT1 Julian date. Difference TT-UT1 at 'jd_ut1', in seconds. Selection for accuracy onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. Topocentric azimuth (measured east from north) in degrees. Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms topocentric right ascension and declination to zenith distance and azimuth. It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. The Earth Rotation Angle (theta) in degrees. The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top of page 35 of IERS Conventions (1996)). Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. TDB Julian Date. Selection for accuracy Mean obliquity of the ecliptic in degrees at 'JdTdb'. True obliquity of the ecliptic in degrees at 'JdTdb'. Equation of the equinoxes in seconds of time at 'JdTdb'. Nutation in longitude in arcseconds at 'JdTdb'. Nutation in obliquity in arcseconds at 'JdTdb'. Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', if desired. See the prolog of 'cel_pole' for details. To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. Position vector, equatorial rectangular coordinates. Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for ICRS to dynamical transformation. Position vector, equatorial rectangular coordinates. To compute the fundamental arguments (mean elements) of the Sun and Moon. TDB time in Julian centuries since J2000.0 Double array of fundamental arguments Fundamental arguments, in radians:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (mean argument of the latitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = a[4] (mean longitude of the Moon's ascending node);
                from Simon section 3.4(b.3),
                precession = 5028.8200 arcsec/cy)
 
Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). TT Julian date of equator to be used for output coordinates. Coordinate system selection for output coordinates.; 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date Selection for accuracy GCRS right ascension in hours. GCRS declination in degrees. Right ascension in hours, referred to specified equator and right ascension origin of date. Declination in degrees, referred to specified equator of date.
    0 ... everything OK
 >  0 ... error from function 'Vector2RaDec'' 
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
>
For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). This function only supports the CIO-based method.
This function computes the geocentric position and velocity of an observer on the surface of the earth or on a near-earth spacecraft. TT Julian date. Value of Delta T (= TT - UT1) at 'JdTt'. Selection for accuracy Data specifying the location of the observer Position vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU. Velocity vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU/day.
 0 ... everything OK
 1 ... invalid value of 'Accuracy'.
 
The final vectors are expressed in the GCRS.
Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. TDB Julian date of observation. Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. Selection for accuracy Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, corrected for gravitational deflection, components in AU.
    0 ... Everything OK
  30 ... Error from function 'Ephemeris'; 
 > 30 ... Error from function 'MakeObject'.
 
This function valid for an observed body within the solar system as well as for a star. If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included.
Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. Position vector of observed object, with respect to origin at observer (or the geocenter), components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector of gravitating body, with respect to origin at solar system barycenter, components in AU. Reciprocal mass of gravitating body in solar mass units, that is, Sun mass / body mass. Position vector of observed object, with respect to origin at observer (or the geocenter), corrected for gravitational deflection, components in AU. This function valid for an observed body within the solar system as well as for a star. Compute the intermediate right ascension of the equinox at the input Julian date TDB Julian date. Equinox selection flag: mean pr true Selection for accuracy Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 (i.e true equinox), then the returned value is the equation of the origins. Compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number Day number Fractional hour of the day Computed Julian date. This function makes no checks for a valid input calendar date. The input calendar date must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - output Julian date will have the same basis. Computes the geocentric position of a solar system body, as antedated for light-time. TDB Julian date of observation. Structure containing the designation for thesolar system body Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. First approximation to light-time, in days (can be set to 0.0 if unknown) Selection for accuracy Position vector of body, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Final light-time, in days.
    0 ... everything OK
    1 ... algorithm failed to converge after 10 iterations
 ]]> 10 ... error is 10 + error from function 'SolarSystem'.
 
Determines the angle of an object above or below the Earth's limb (horizon). Position vector of observed object, with respect to origin at geocenter, components in AU. Position vector of observer, with respect to origin at geocenter, components in AU. Angle of observed object above (+) or below (-) limb in degrees. Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb The geometric limb is computed, assuming the Earth to be an airless sphere (no refraction or oblateness is included). The observer can be on or above the Earth. For an observer on the surface of the Earth, this function returns the approximate unrefracted altitude. Computes the local place of a solar system body. TT Julian date for local place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Specifies accuracy level Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'. True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'; 
 ]]> 10 ... Error code from function 'Place'.
 
Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for local place. delta_t (double) Difference TT-UT1 at 'JdTt', in seconds of time. catalog entry structure containing catalog data for the object in the ICRS Structure specifying the position of the observer Specifies accuracy level. Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Object name (50 characters maximum). Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) Object number in the catalog. Right ascension of the object (hours). Declination of the object (degrees). Proper motion in right ascension (milliarcseconds/year). Proper motion in declination (milliarcseconds/year). Parallax (milliarcseconds). Radial velocity (kilometers/second). CatEntry3 structure containing the input data Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. InSpace structure containing the position and velocity of an observer situated on a near-Earth spacecraft Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) Name of the object (50 characters maximum). Structure containing basic astrometric data for any celestial object located outside the solar system; the catalog data for a star Structure containing the object definition
 0 ... everything OK
 1 ... invalid value of 'Type'
 2 ... 'Number' out of range
 
Makes a structure of type 'observer' - specifying the location of the observer. Integer code specifying location of observer: 0: observer at geocenter; 1: observer on surface of earth; 2: observer on near-earth spacecraft Structure containing data for an observer's location on the surface of the Earth; used when 'Where' = 1 Structure containing an observer's location on a near-Earth spacecraft; used when 'Where' = 2 Structure specifying the location of the observer
 0 ... everything OK
 1 ... input value of 'Where' is out-of-range.
 
Makes a structure of type 'observer' specifying an observer at the geocenter. Structure specifying the location of the observer at the geocenter Makes a structure of type 'observer' specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric position vector (x, y, z) in km. Structure containing the position and velocity of an observer situated on a near-Earth spacecraft Both input vectors are with respect to true equator and equinox of date. Makes a structure of type 'observer' specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) longitude in degrees; east positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth Makes a structure of type 'on_surface' - specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) latitude in degrees; north positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth. Compute the mean obliquity of the ecliptic. TDB Julian Date. Mean obliquity of the ecliptic in arcseconds. Computes the ICRS position of a star, given its apparent place at date 'JdTt'. Proper motion, parallax and radial velocity are assumed to be zero. TT Julian date of apparent place. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. Specifies accuracy level ICRS right ascension in hours. ICRS declination in degrees.
    0 ... Everything OK
    1 ... Iterative process did not converge after 30 iterations; 
 > 10 ... Error from function 'Vector2RaDec'
 > 20 ... Error from function 'AppStar'.
 
Normalize angle into the range 0 angle (2 * pi). Input angle (radians). The input angle, normalized as described above (radians). Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB Julian date of epoch. Flag determining 'direction' of transformation; direction = 0 transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. Selection for accuracy Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. Inverse transformation may be applied by setting flag 'direction' Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. TDB time in Julian centuries since J2000.0 Selection for accuracy Nutation in longitude in arcseconds. Nutation in obliquity in arcseconds. The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. This function selects the nutation model depending first upon the input value of 'Accuracy'. If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. Computes the apparent direction of a star or solar system body at a specified time and in a specified coordinate system. TT Julian date for place. Specifies the celestial object of interest Specifies the location of the observer Difference TT-UT1 at 'JdTt', in seconds of time. Code specifying coordinate system of the output position. 0 ... GCRS or "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; 3 ... astrometric coordinates, i.e., without light deflection or aberration. Selection for accuracy Structure specifying object's place on the sky at time 'JdTt', with respect to the specified output coordinate system
 = 0         ... No problems.
 = 1         ... invalid value of 'CoordSys'
 = 2         ... invalid value of 'Accuracy'
 = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
 > 10,  40  ... 10 + error from function 'Ephemeris'
 > 40,  50  ... 40 + error from function 'GeoPosVel'
 > 50,  70  ... 50 + error from function 'LightTime'
 > 70,  80  ... 70 + error from function 'GravDef'
 > 80,  90  ... 80 + error from function 'CioLocation'
 > 90,  100 ... 90 + error from function 'CioBasis'
 
Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place:
     Location->Where = 0 and CoordSys = 1: apparent place
     Location->Where = 1 and CoordSys = 1: topocentric place
     Location->Where = 0 and CoordSys = 0: virtual place
     Location->Where = 1 and CoordSys = 0: local place
     Location->Where = 0 and CoordSys = 3: astrometric place
     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
 
Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is on surface of Earth or in a near-Earth satellite).
Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. TDB Julian date of second epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch.
 0 ... everything OK
 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
 
One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs.
Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. Position vector at second epoch. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance in AU Position vector, equatorial rectangular coordinates (AU). Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. Specifies the celestial object of interest Geometric position vector of object with respect to observer, corrected for light-time, in AU. Velocity vector of object with respect to solar system barycenter, in AU/day. Velocity vector of observer with respect to solar system barycenter, in AU/day. Distance from observer to geocenter, in AU. Distance from observer to Sun, in AU. Distance from object to Sun, in AU. The observed radial velocity measure times the speed of light, in kilometers/second. Radial velocity is here defined as the radial velocity measure (z) times the speed of light. For a solar system body, it applies to a fictitious emitter at the center of the observed object, assumed massless (no gravitational red shift), and does not in general apply to reflected light. For stars, it includes all effects, such as gravitational red shift, contained in the catalog barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known kinematic velocity vector (obtained independently of spectroscopy) can be treated like solar system objects. Computes atmospheric refraction in zenith distance. Structure containing observer's location. 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric parameters input in the 'Location' structure. Observed zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. This function can be used for planning observations or telescope pointing, but should not be used for the reduction of precise observations. Computes the Greenwich sidereal time, either mean or apparent, at Julian date 'JdHigh' + 'JdLow'. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy Greenwich apparent sidereal time, in hours.
          0 ... everything OK
          1 ... invalid value of 'Accuracy'
          2 ... invalid value of 'Method'
 > 10,  30 ... 10 + error from function 'CioRai'
 
The Julian date may be split at any point, but for highest precision, set 'JdHigh' to be the integral part of the Julian date, and set 'JdLow' to be the fractional part.
Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. Position vector. Position vector expressed in new coordinate system rotated about z by 'angle'. Converts angular quantities for stars to vectors. Catalog entry structure containing ICRS catalog data Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding to a Barycentric Dynamical Time (TDB) Julian date. TDB Julian date. TT Julian date. Difference 'tdb_jd'-'tt_jd', in seconds. Expression used in this function is a truncated form of a longer and more precise series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. The result is good to about 10 microseconds. This function rotates a vector from the terrestrial to the celestial system. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Value of Delta T (= TT - UT1) at the input UT1 Julian date. Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy 0 ... The output vector is referred to GCRS axes; 1 ... The output vector is produced with respect to the equator and equinox of date. Conventionally-defined X coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes (terrestrial system) in the normal case where 'option' = 0. Position vector, geocentric equatorial rectangular coordinates, referred to GCRS axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'.
    0 ... everything is ok
    1 ... invalid value of 'Accuracy'
    2 ... invalid value of 'Method'
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
'x' = 'y' = 0 means no polar motion transformation. The 'option' flag only works for the equinox-based method.
Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Structure containing observer's location Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/day. If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. This function ignores polar motion, unless the observer's longitude and latitude have been corrected for it, and variation in the length of day (angular velocity of earth). The true equator and equinox of date do not form an inertial system. Therefore, with respect to an inertial system, the very small velocity component (several meters/day) due to the precession and nutation of the Earth's axis is not accounted for here. Computes the topocentric place of a solar system body. TT Julian date for topocentric place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Selection for accuracy Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'Place'.
Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for topocentric place. Difference TT-UT1 at 'JdTt', in seconds of time. Catalog entry structure containing catalog data for the object in the ICRS Specifies the position of the observer Code specifying the relative accuracy of the output position. Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'.
 
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option TT Julian date, or year, of input catalog data. An entry from the input catalog, with units as given in the struct definition TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. The transformed catalog entry, with units as given in the struct definition
 = 0 ... Everything OK.
 = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
 
Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference frame corresponding to precession between the first and second dates, but leaves the star fixed in space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). 3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. 4. This function cannot be properly used to bring data from old star catalogs into the modern system, because old catalogs were compiled using a set of constants that are incompatible with modern values. In particular, it should not be used for catalogs whose positions and proper motions were derived by assuming a precession constant significantly different from the value implicit in function 'precession'.
Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion. Both input and output data is in the ICRS. 1. Input (Hipparcos catalog) epoch and units: Epoch: J1991.25 Right ascension (RA): degrees Declination (Dec): degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second (not in catalog) 2. Output (modified Hipparcos) epoch and units: Epoch: J2000.0 Right ascension: hours Declination: degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second > Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. Right ascension in hours. Declination in degrees.
 = 0 ... Everything OK.
 = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
 = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
 
Compute the virtual place of a planet or other solar system body. TT Julian date for virtual place. structure containing the body designation for the solar system body( Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS. True distance from Earth to planet in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Type' in structure 'SsBody'.
 > 10 ... Error code from function 'Place'.
 
Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for virtual place. catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS.
 =  0 ... Everything OK.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'
 
Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). TT or UT1 Julian date. direction (short int) Flag determining 'direction' of transformation; direction = 0 transformation applied, ITRS to terrestrial intermediate system direction != 0 inverse transformation applied, terrestrial intermediate system to ITRS Conventionally-defined X coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and TIO. Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 NOVAS: Class presenting the contents of the NOVAS 2 library. NOVAS was developed by the Astronomical Applications department of the United States Naval Observatory. The C language version of NOVAS was developed by John Bangert at USNO/AA. The NOVAS class is a STATIC class and is the component of preference for .NET programmers. This means that you do not have to create an instance of the class in order to access its members. Instead you reference them directly from the class. So, this works: rc = ASCOM.Astrometry.NOVAS2.AppStar(tjd, earth, star, ra, dec) while this does not work: Dim Nov as New ASCOM.Astrometry.NOVAS2 rc = Nov.AppStar(tjd, earth, star, ra, dec) Method names are identical to those used in NOVAS2, as are almost all paramaters. There are a few changes that introduce some new structures but these should be self explanatory. One significant difference is that position and velocity vectors are returned as structures rather than double arrays. This was done to make type checking more effective. Testing of the high level supervisory functions has been carried out using real-time star data from the USNO web site. Values provided by this NOVAS2 implementation agree on average to about 50 milli arc-seconds with current USNO web site values. This class is implemented using a thin layer of .NET code that calls functions in either a 32 or 64 bit compiled version of the unmodified C code from ther USNO web site. The .NET code does not carry out calculations itself, it simply handles any interface presentation differences and calls the relevant 32 or 64bit code according to its environment. Note: This class only supports Earth in the XXXXPlanet classes, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. Computes the apparent place of a star TT (or TDT) Julian date for apparent place. Structure containing the body designation for the earth Catalog entry structure containing J2000.0 catalog data with FK5-style units (defined in novas.h). OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'.
  0...Everything OK
 >0...Error code from function 'solarsystem'.
Computes the topocentric place of a star TT (or TDT) Julian date for topocentric place. Structure containing the body designation for the Earth. Difference TT (or TDT)-UT1 at 'tjd', in seconds. Catalog entry structure containing J2000.0 catalog data with FK5-style units. Structure containing observer's location OUT: Topocentric right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Topocentric declination in degrees, referred to true equator and equinox of date 'tjd'.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
Compute the apparent place of a planet or other solar system body. TT (or TDT) Julian date for apparent place. Structure containing the body designation for the solar system body Structure containing the body designation for the Earth OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: True distance from Earth to planet at 'tjd' in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the topocentric place of a planet, given the location of the observer. TT (or TDT) Julian date for topocentric place. structure containing the body designation for the solar system body structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. structure containing observer's location OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: True distance from Earth to planet at 'tjd' in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the virtual place of a star TT (or TDT) Julian date for virtual place. Pointer to structure containing the body designation for the Earth. Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'
 
Computes the virtual place of a star at date 'tjd', given its mean place, proper motion, parallax, and radial velocity for J2000.0.
Computes the local place of a star TT (or TDT) Julian date for local place. Pointer to structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units Pointer to structure containing observer's location OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. OUT: Local declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
Computes the virtual place of a planet or other solar system body. TT (or TDT) Julian date for virtual place. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the local place of a planet or other solar system body, given the location of the observer. TT (or TDT) Julian date for local place. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. Pointer to structure containing observer's location OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. OUT: Local declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the astrometric place of a star TT (or TDT) Julian date for astrometric place. Pointer to structure containing the body designation for the Earth Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
 
Computes the astrometric place of a star, given its mean place, proper motion, parallax, and radial velocity for J2000.0.
Computes the astrometric place of a planet or other solar system body. TT (or TDT) Julian date for calculation. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Transform apparent equatorial coordinates to horizon coordinates TT (or TDT) Julian date. Difference TT (or TDT)-UT1 at 'tjd', in seconds. Conventionally-defined x coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option OUT: Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. OUT: Topocentric azimuth (measured east from north) in degrees. OUT: Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. OUT: Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms apparent equatorial coordinates (right ascension and declination) to horizon coordinates (zenith distance and azimuth). It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. To convert Hipparcos data at epoch J1991.25 to epoch J2000.0 and FK5-style units. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0, with all members having FK5 catalog units. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion.
 1. Hipparcos epoch and units:
    Epoch: J1991.25
    Right ascension (RA): degrees
    Declination (Dec): degrees
    Proper motion in RA * cos (Dec): milliarcseconds per year
    Proper motion in Dec: milliarcseconds per year
    Parallax: milliarcseconds
    Radial velocity: kilometers per second (not in catalog)
 
 2. FK5 epoch and units:
    Epoch: J2000.0
    Right ascension: hours
    Declination: degrees
    Proper motion in RA: seconds of time per Julian century
    Proper motion in Dec: arcseconds per Julian century
    Parallax: arcseconds
    Radial velocity: kilometers per second
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option
    = 1 ... change epoch; same equator and equinox
    = 2 ... change equator and equinox; same epoch
    = 3 ... change equator and equinox and epoch
TT Julian date, or year, of input catalog data. An entry from the input catalog TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. OUT: The transformed catalog entry
 1. 'date_incat' and 'date_newcat' may be specified either as a 
    Julian date (e.g., 2433282.5) or a Julian year and fraction 
    (e.g., 1950.0).  Values less than 10000 are assumed to be years.
 
 2. option = 1 updates the star's data to account for the star's space motion between 
               the first and second dates, within a fixed reference frame.
    option = 2 applies a rotation of the reference frame corresponding to precession 
               between the first and second dates, but leaves the star fixed in space.
    option = 3 provides both transformations.
 
 3. This subroutine cannot be properly used to bring data from 
    old (pre-FK5) star catalogs into the modern system, because old 
    catalogs were compiled using a set of constants that are 
    incompatible with the IAU (1976) system.
 
 4. This function uses TDB Julian dates internally, but no 
    distinction between TDB and TT is necessary.
Computes the Greenwich apparent sidereal time, at Julian date 'jd_high' + 'jd_low'. Julian date, integral part. Julian date, fractional part. Equation of the equinoxes (seconds of time). [Note: this quantity is computed by function 'earthtilt'.] Greenwich apparent sidereal time, in hours. Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of first epoch. TDB Julian date of second epoch. OUT: Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of second epoch. The coordinates are referred to the mean equator and equinox of the two respective epochs. Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'tjd'. TDB Julian date of the desired time OUT: Mean obliquity of the ecliptic in degrees at 'tjd'. OUT: True obliquity of the ecliptic in degrees at 'tjd'. OUT: Equation of the equinoxes in seconds of time at 'tjd'. OUT: Nutation in longitude in arcseconds at 'tjd'. OUT: Nutation in obliquity in arcseconds at 'tjd'. This function allows for the specification of celestial pole offsets for high-precision applications. Value of offset in delta psi (dpsi) in arcseconds. Value of offset in delta epsilon (deps) in arcseconds. These are added to the nutation parameters delta psi and delta epsilon. 1. This function sets the values of global variables 'PSI_COR'and 'EPS_COR' declared at the top of file 'novas.c'. These global variables are used only in NOVAS function 'earthtilt'. 2. This function, if used, should be called before any other NOVAS functions for a given date. Values of the pole offsets specified via a call to this function will be used until explicitly changed. 3. Daily values of the offsets are published, for example, in IERS Bulletins A and B. 4. This function is the "C" version of Fortran NOVAS routine "celpol". Retrieves the position and velocity of a body from a fundamental ephemeris. TDB Julian date. Structure containing the designation of the body of interest Origin point (solar system barycentre or centre of mass of the Sun OUT: Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Velocity vector of 'body' at tjd; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
 0    ... Everything OK.
 1    ... Invalid value of 'origin'.
 2    ... Invalid value of 'type' in 'cel_obj'.
 3    ... Unable to allocate memory.
 10+n ... where n is the error code from 'solarsystem'.
 20+n ... where n is the error code from 'readeph'.
Provides the position and velocity of the Earth TDB Julian date. Body identification number.
 Set 'body' = 0 or 'body' = 1 or 'body' = 10 for the Sun.
 Set 'body' = 2 or 'body' = 3 for the Earth.
Required origin: solar system barycenter or center of mass of the Sun OUT: Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
 0...Everything OK.
 1...Input Julian date ('tjd') out of range.
 2...Invalid value of 'body'.
Provides the position and velocity of the Earth at epoch 'tjd' by evaluating a closed-form theory without reference to an external file. This function can also provide the position and velocity of the Sun.
Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. OUT: Right ascension in hours. OUT: Declination in degrees.
 0...Everything OK.
 1...All vector components are zero; 'ra' and 'dec' are indeterminate.
 2...Both vec[0] and vec[1] are zero, but vec[2] is nonzero; 'ra' is indeterminate.
Converts angular quanities for stars to vectors. Catalog entry structure containing J2000.0 catalog data with FK5-style units Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance Position vector, equatorial rectangular coordinates (AU). Obtains the barycentric and heliocentric positions and velocities of the Earth from the solar system ephemeris. TT (or TDT) Julian date. Structure containing the body designation for the Earth. OUT: TDB Julian date corresponding to 'tjd'. OUT: Barycentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Barycentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. OUT: Heliocentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Heliocentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
Computes the mean place of a star for J2000.0 TT (or TDT) Julian date of apparent place. Pointer to structure containing the body designation for the Earth Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: Mean right ascension J2000.0 in hours. OUT: Mean declination J2000.0 in degrees.
   0...Everything OK.
   1...Iterative process did not converge after 20 iterations.
 >10...Error from function 'app_star'.
Computes the mean place of a star for J2000.0, given its apparent place at date 'tjd'. Proper motion, parallax and radial velocity are assumed to be zero.
Transforms a vector from an Earth-fixed geographic system to a space-fixed system TT (or TDT) Julian date Greenwich apparent sidereal time, in hours. Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. OUT: Vector in geocentric rectangular space-fixed system, referred to mean equator and equinox of J2000.0. Transforms a vector from an Earth-fixed geographic system to a space-fixed system based on mean equator and equinox of J2000.0; applies rotations for wobble, spin, nutation, and precession. Transforms geocentric rectangular coordinates from rotating system to non-rotating system Local apparent sidereal time at reference meridian, in hours. Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal reference meridian. OUT: Vector in geocentric rectangular non-rotating system, referred to true equator and equinox of date. Transforms geocentric rectangular coordinates from rotating system based on rotational equator and orthogonal reference meridian to non-rotating system based on true equator and equinox of date. Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. OUT: Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal Greenwich meridian Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Transforms a vector from Earth-fixed geographic system to rotating system based on rotational equator and orthogonal Greenwich meridian through axis of rotation. Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Longitude, latitude and height of the observer (in a SiteInfoStruct) Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/Day. Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. OUT: Position vector at second epoch. Moves the origin of coordinates from the barycenter of the solar system to the center of mass of the Earth Position vector, referred to origin at solar system barycenter, components in AU. Position vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU. OUT: Position vector, referred to origin at center of mass of the Earth, components in AU. OUT: Light time from body to Earth in days. This corrects for parallax. Corrects position vector for the deflection of light in the gravitational field of the Sun. Position vector, referred to origin at center of mass of the Earth, components in AU. Position vector of center of mass of the Earth, referred to origin at center of mass of the Sun, components in AU. Position vector, referred to origin at center of mass of the Earth, corrected for gravitational deflection, components in AU. 0...Everything OK. This function is valid for bodies within the solar system as well as for stars. Corrects position vector for aberration of light. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from body to Earth in days. OUT: Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU 0...Everything OK. Algorithm includes relativistic terms. Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB julian date of epoch. Flag determining 'direction' of transformation;
    fn  = 0 transformation applied, mean to true.
    fn != 0 inverse transformation applied, true to mean.
Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. OUT: Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. 0...Everything OK. Inverse transformation may be applied by setting flag 'fn'.
Provides fast evaluation of the nutation components according to the 1980 IAU Theory of Nutation. TDB time in Julian centuries since J2000.0 OUT: Nutation in longitude in arcseconds. OUT: Nutation in obliquity in arcseconds. 0...Everything OK. To compute the fundamental arguments. TDB time in Julian centuries since J2000.0 OUT: FundamentalArgsStruct containing:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (L - omega; L = mean longitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = omega (mean longitude of the Moon's ascending node)
Converts TDB to TT or TDT TDB Julian date. OUT: TT (or TDT) Julian date. OUT: Difference tdbjd-tdtjd, in seconds. Computes the terrestrial time (TT) or terrestrial dynamical time (TDT) Julian date corresponding to a barycentric dynamical time (TDB) Julian date. Sets up a structure of type 'body' - defining a celestial object- based on the input parameters. Type of body Body number Name of the body. OUT: Structure containg the body definition
 = 0 ... everything OK
 = 1 ... invalid value of 'type'
 = 2 ... 'number' out of range
To create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Three-character catalog identifier (e.g. HIP = Hipparcos, FK5 = FK5). This identifier also specifies the reference system and units of the data; i.e. they are the same as the specified catalog. Object name (50 characters maximum). Object number in the catalog. Right ascension of the object. Declination of the object. Proper motion in right ascension. Proper motion in declination. Parallax. Radial velocity. OUT: Structure containing the input data Computes atmospheric refraction in zenith distance. structure containing observer's location refraction option bserved zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. This function will compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number. Day number Time in hours OUT: Julian date. Compute a date on the Gregorian calendar given the Julian date. Julian date. OUT: Year number OUT: Month number. OUT: Day number OUT: Time in hours Compute equatorial spherical coordinates of Sun referred to the mean equator and equinox of date. Julian date on TDT or ET time scale. OUT: Right ascension referred to mean equator and equinox of date (hours). OUT: Declination referred to mean equator and equinox of date (degrees). OUT: Geocentric distance (AU). Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 Get path to a system folder SUpply null / nothing to use "current user" returned string folder path Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c Indicates whether the folder should be created if it does not already exist. If this value is nonzero, the folder is created. If this value is zero, the folder is not created TRUE if successful; otherwise, FALSE. NOVAS2COM: Instanciable class presenting the contents of the NOVAS 2 library. NOVAS was developed by the Astronomical Applications department of the United States Naval Observatory. The C language version of NOVAS was developed by John Bangert at USNO/AA. The NOVAS2COM class is an instanciable class usable by COM clients. This means that you have to create an instance of the class in order to access its members. So, this works: Dim Nov as New ASCOM.Astrometry.NOVAS2COM rc = Nov.AppStar(tjd, earth, star, ra, dec) while this does not work: rc = ASCOM.Astrometry.NOVAS2COM.AppStar(tjd, earth, star, ra, dec) Method names are identical to those used in NOVAS2, as are almost all paramaters. There are a few changes that introduce some new structures but these should be self explanatory. One significant difference is that position and velocity vectors are returned as structures rather than double arrays. This was done to make type checking more effective. Testing of the high level supervisory functions has been carried out using real-time star data from the USNO web site. Values provided by this NOVAS2 implementation agree on average to about 50 milli arc-seconds with current USNO web site values. This class is implemented using a thin layer of .NET code that calls functions in either a 32 or 64 bit compiled version of the unmodified C code from ther USNO web site. The .NET code does not carry out calculations itself, it simply handles any interface presentation differences and calls the relevant 32 or 64bit code according to its environment. Note: This class only supports Earth in the XXXXPlanet classes, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution. Corrects position vector for aberration of light. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from body to Earth in days. OUT: Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU 0...Everything OK. Algorithm includes relativistic terms. Compute the apparent place of a planet or other solar system body. TT (or TDT) Julian date for apparent place. Structure containing the body designation for the solar system body Structure containing the body designation for the Earth OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: True distance from Earth to planet at 'tjd' in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the apparent place of a star TT (or TDT) Julian date for apparent place. Structure containing the body designation for the earth Catalog entry structure containing J2000.0 catalog data with FK5-style units (defined in novas.h). OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'.
  0...Everything OK
 >0...Error code from function 'solarsystem'.
Computes the astrometric place of a planet or other solar system body. TT (or TDT) Julian date for calculation. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the astrometric place of a star TT (or TDT) Julian date for astrometric place. Pointer to structure containing the body designation for the Earth Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units OUT: Astrometric right ascension in hours, referred to mean equator and equinox of J2000. OUT: Astrometric declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
 
Computes the astrometric place of a star, given its mean place, proper motion, parallax, and radial velocity for J2000.0.
Moves the origin of coordinates from the barycenter of the solar system to the center of mass of the Earth Position vector, referred to origin at solar system barycenter, components in AU. Position vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU. OUT: Position vector, referred to origin at center of mass of the Earth, components in AU. OUT: Light time from body to Earth in days. This corrects for parallax. Compute a date on the Gregorian calendar given the Julian date. Julian date. OUT: Year number OUT: Month number. OUT: Day number OUT: Time in hours This function allows for the specification of celestial pole offsets for high-precision applications. Value of offset in delta psi (dpsi) in arcseconds. Value of offset in delta epsilon (deps) in arcseconds. These are added to the nutation parameters delta psi and delta epsilon. 1. This function sets the values of global variables 'PSI_COR'and 'EPS_COR' declared at the top of file 'novas.c'. These global variables are used only in NOVAS function 'earthtilt'. 2. This function, if used, should be called before any other NOVAS functions for a given date. Values of the pole offsets specified via a call to this function will be used until explicitly changed. 3. Daily values of the offsets are published, for example, in IERS Bulletins A and B. 4. This function is the "C" version of Fortran NOVAS routine "celpol". Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'tjd'. TDB Julian date of the desired time OUT: Mean obliquity of the ecliptic in degrees at 'tjd'. OUT: True obliquity of the ecliptic in degrees at 'tjd'. OUT: Equation of the equinoxes in seconds of time at 'tjd'. OUT: Nutation in longitude in arcseconds at 'tjd'. OUT: Nutation in obliquity in arcseconds at 'tjd'. Retrieves the position and velocity of a body from a fundamental ephemeris. TDB Julian date. Structure containing the designation of the body of interest Origin point (solar system barycentre or centre of mass of the Sun OUT: Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Velocity vector of 'body' at tjd; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
 0    ... Everything OK.
 1    ... Invalid value of 'origin'.
 2    ... Invalid value of 'type' in 'cel_obj'.
 3    ... Unable to allocate memory.
 10+n ... where n is the error code from 'solarsystem'.
 20+n ... where n is the error code from 'readeph'.
Transform apparent equatorial coordinates to horizon coordinates TT (or TDT) Julian date. Difference TT (or TDT)-UT1 at 'tjd', in seconds. Conventionally-defined x coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial ephemeris pole with respect to IERS reference pole, in arcseconds. structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option OUT: Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. OUT: Topocentric azimuth (measured east from north) in degrees. OUT: Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. OUT: Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms apparent equatorial coordinates (right ascension and declination) to horizon coordinates (zenith distance and azimuth). It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. To compute the fundamental arguments. TDB time in Julian centuries since J2000.0 OUT: FundamentalArgsStruct containing:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (L - omega; L = mean longitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = omega (mean longitude of the Moon's ascending node)
Obtains the barycentric and heliocentric positions and velocities of the Earth from the solar system ephemeris. TT (or TDT) Julian date. Structure containing the body designation for the Earth. OUT: TDB Julian date corresponding to 'tjd'. OUT: Barycentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Barycentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day. OUT: Heliocentric position vector of Earth at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Heliocentric velocity vector of Earth at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
This function will compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number. Day number Time in hours OUT: Julian date. Computes the local place of a planet or other solar system body, given the location of the observer. TT (or TDT) Julian date for local place. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. Pointer to structure containing observer's location OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. OUT: Local declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the local place of a star TT (or TDT) Julian date for local place. Pointer to structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units Pointer to structure containing observer's location OUT: Local right ascension in hours, referred to mean equator and equinox of J2000. OUT: Local declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
To create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Three-character catalog identifier (e.g. HIP = Hipparcos, FK5 = FK5). This identifier also specifies the reference system and units of the data; i.e. they are the same as the specified catalog. Object name (50 characters maximum). Object number in the catalog. Right ascension of the object. Declination of the object. Proper motion in right ascension. Proper motion in declination. Parallax. Radial velocity. OUT: Structure containing the input data Computes the mean place of a star for J2000.0 TT (or TDT) Julian date of apparent place. Pointer to structure containing the body designation for the Earth Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: Mean right ascension J2000.0 in hours. OUT: Mean declination J2000.0 in degrees.
   0...Everything OK.
   1...Iterative process did not converge after 20 iterations.
 >10...Error from function 'app_star'.
Computes the mean place of a star for J2000.0, given its apparent place at date 'tjd'. Proper motion, parallax and radial velocity are assumed to be zero.
Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB julian date of epoch. Flag determining 'direction' of transformation;
    fn  = 0 transformation applied, mean to true.
    fn != 0 inverse transformation applied, true to mean.
Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. OUT: Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. 0...Everything OK. Inverse transformation may be applied by setting flag 'fn'.
Provides fast evaluation of the nutation components according to the 1980 IAU Theory of Nutation. TDB time in Julian centuries since J2000.0 OUT: Nutation in longitude in arcseconds. OUT: Nutation in obliquity in arcseconds. 0...Everything OK. Transforms a vector from an Earth-fixed geographic system to a space-fixed system TT (or TDT) Julian date Greenwich apparent sidereal time, in hours. Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. OUT: Vector in geocentric rectangular space-fixed system, referred to mean equator and equinox of J2000.0. Transforms a vector from an Earth-fixed geographic system to a space-fixed system based on mean equator and equinox of J2000.0; applies rotations for wobble, spin, nutation, and precession. Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of first epoch. TDB Julian date of second epoch. OUT: Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of second epoch. The coordinates are referred to the mean equator and equinox of the two respective epochs. Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. OUT: Position vector at second epoch. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance Position vector, equatorial rectangular coordinates (AU). Computes atmospheric refraction in zenith distance. structure containing observer's location refraction option bserved zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. Sets up a structure of type 'body' - defining a celestial object- based on the input parameters. Type of body Body number Name of the body. OUT: Structure containg the body definition
 = 0 ... everything OK
 = 1 ... invalid value of 'type'
 = 2 ... 'number' out of range
Computes the Greenwich apparent sidereal time, at Julian date 'jd_high' + 'jd_low'. Julian date, integral part. Julian date, fractional part. Equation of the equinoxes (seconds of time). [Note: this quantity is computed by function 'earthtilt'.] Greenwich apparent sidereal time, in hours. Provides the position and velocity of the Earth TDB Julian date. Body identification number.
 Set 'body' = 0 or 'body' = 1 or 'body' = 10 for the Sun.
 Set 'body' = 2 or 'body' = 3 for the Earth.
Required origin: solar system barycenter or center of mass of the Sun OUT: Position vector of 'body' at 'tjd'; equatorial rectangular coordinates in AU referred to the mean equator and equinox of J2000.0. OUT: Velocity vector of 'body' at 'tjd'; equatorial rectangular system referred to the mean equator and equinox of J2000.0, in AU/Day.
 0...Everything OK.
 1...Input Julian date ('tjd') out of range.
 2...Invalid value of 'body'.
Provides the position and velocity of the Earth at epoch 'tjd' by evaluating a closed-form theory without reference to an external file. This function can also provide the position and velocity of the Sun.
Transforms geocentric rectangular coordinates from rotating system to non-rotating system Local apparent sidereal time at reference meridian, in hours. Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal reference meridian. OUT: Vector in geocentric rectangular non-rotating system, referred to true equator and equinox of date. Transforms geocentric rectangular coordinates from rotating system based on rotational equator and orthogonal reference meridian to non-rotating system based on true equator and equinox of date. Converts angular quanities for stars to vectors. Catalog entry structure containing J2000.0 catalog data with FK5-style units Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Compute equatorial spherical coordinates of Sun referred to the mean equator and equinox of date. Julian date on TDT or ET time scale. OUT: Right ascension referred to mean equator and equinox of date (hours). OUT: Declination referred to mean equator and equinox of date (degrees). OUT: Geocentric distance (AU). Corrects position vector for the deflection of light in the gravitational field of the Sun. Position vector, referred to origin at center of mass of the Earth, components in AU. Position vector of center of mass of the Earth, referred to origin at center of mass of the Sun, components in AU. Position vector, referred to origin at center of mass of the Earth, corrected for gravitational deflection, components in AU. 0...Everything OK. This function is valid for bodies within the solar system as well as for stars. Converts TDB to TT or TDT TDB Julian date. OUT: TT (or TDT) Julian date. OUT: Difference tdbjd-tdtjd, in seconds. Computes the terrestrial time (TT) or terrestrial dynamical time (TDT) Julian date corresponding to a barycentric dynamical time (TDB) Julian date. Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Longitude, latitude and height of the observer (in a SiteInfoStruct) Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/Day. Computes the topocentric place of a planet, given the location of the observer. TT (or TDT) Julian date for topocentric place. structure containing the body designation for the solar system body structure containing the body designation for the Earth Difference TT(or TDT)-UT1 at 'tjd', in seconds. structure containing observer's location OUT: Apparent right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Apparent declination in degrees, referred to true equator and equinox of date 'tjd'. OUT: True distance from Earth to planet at 'tjd' in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the topocentric place of a star TT (or TDT) Julian date for topocentric place. Structure containing the body designation for the Earth. Difference TT (or TDT)-UT1 at 'tjd', in seconds. Catalog entry structure containing J2000.0 catalog data with FK5-style units. Structure containing observer's location OUT: Topocentric right ascension in hours, referred to true equator and equinox of date 'tjd'. OUT: Topocentric declination in degrees, referred to true equator and equinox of date 'tjd'.
  0...Everything OK.
 >0...Error code from function 'solarsystem'.
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option
    = 1 ... change epoch; same equator and equinox
    = 2 ... change equator and equinox; same epoch
    = 3 ... change equator and equinox and epoch
TT Julian date, or year, of input catalog data. An entry from the input catalog TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. OUT: The transformed catalog entry
 1. 'date_incat' and 'date_newcat' may be specified either as a 
    Julian date (e.g., 2433282.5) or a Julian year and fraction 
    (e.g., 1950.0).  Values less than 10000 are assumed to be years.
 
 2. option = 1 updates the star's data to account for the star's space motion between 
               the first and second dates, within a fixed reference frame.
    option = 2 applies a rotation of the reference frame corresponding to precession 
               between the first and second dates, but leaves the star fixed in space.
    option = 3 provides both transformations.
 
 3. This subroutine cannot be properly used to bring data from 
    old (pre-FK5) star catalogs into the modern system, because old 
    catalogs were compiled using a set of constants that are 
    incompatible with the IAU (1976) system.
 
 4. This function uses TDB Julian dates internally, but no 
    distinction between TDB and TT is necessary.
To convert Hipparcos data at epoch J1991.25 to epoch J2000.0 and FK5-style units. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0, with all members having FK5 catalog units. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion.
 1. Hipparcos epoch and units:
    Epoch: J1991.25
    Right ascension (RA): degrees
    Declination (Dec): degrees
    Proper motion in RA * cos (Dec): milliarcseconds per year
    Proper motion in Dec: milliarcseconds per year
    Parallax: milliarcseconds
    Radial velocity: kilometers per second (not in catalog)
 
 2. FK5 epoch and units:
    Epoch: J2000.0
    Right ascension: hours
    Declination: degrees
    Proper motion in RA: seconds of time per Julian century
    Proper motion in Dec: arcseconds per Julian century
    Parallax: arcseconds
    Radial velocity: kilometers per second
Converts an vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. OUT: Right ascension in hours. OUT: Declination in degrees.
 0...Everything OK.
 1...All vector components are zero; 'ra' and 'dec' are indeterminate.
 2...Both vec[0] and vec[1] are zero, but vec[2] is nonzero; 'ra' is indeterminate.
Computes the virtual place of a planet or other solar system body. TT (or TDT) Julian date for virtual place. Pointer to structure containing the body designation for the solar system body Pointer to structure containing the body designation for the Earth OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000. OUT: True distance from Earth to planet in AU.
  0...Everything OK.
 >0...See error description in function 'ephemeris'.
 
Note: This function only supports Earth, which is a consequence of the implementation used. Please use the NOVAS3.1 or later classes in applications that require planetary or moon ephemeredes as these classes can access the JPL 421 planetary ephemeris data provided as part of the ASCOM distribution.
Computes the virtual place of a star TT (or TDT) Julian date for virtual place. Pointer to structure containing the body designation for the Earth. Pointer to catalog entry structure containing J2000.0 catalog data with FK5-style units OUT: Virtual right ascension in hours, referred to mean equator and equinox of J2000. OUT: Virtual declination in degrees, referred to mean equator and equinox of J2000.
  0...Everything OK.
 >0...Error code from function 'solarsystem'
 
Computes the virtual place of a star at date 'tjd', given its mean place, proper motion, parallax, and radial velocity for J2000.0.
Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Conventionally-defined X coordinate of rotational pole with respect to CIO, in arcseconds. Conventionally-defined Y coordinate of rotational pole with respect to CIO, in arcseconds. Vector in geocentric rectangular Earth-fixed system, referred to geographic equator and Greenwich meridian. OUT: Vector in geocentric rectangular rotating system, referred to rotational equator and orthogonal Greenwich meridian Corrects Earth-fixed geocentric rectangular coordinates for polar motion. Transforms a vector from Earth-fixed geographic system to rotating system based on rotational equator and orthogonal Greenwich meridian through axis of rotation. Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 NOVAS3: Class presenting the contents of the USNO NOVAS 3 library published December 2009. NOVAS was developed by the Astronomical Applications department of the United States Naval Observatory. If you wish to explore or utilise NOVAS3 please see USNO's extensive help document "NOVAS 3 Users Guide" (NOVAS C3.0 Guide.pdf) included in the ASCOM Platform Docs start menu folder. The latest revision is also available on the USNO web site at http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas in the "C Edition of NOVAS" link. If you use NOVAS, please send an e-mail through this page: http://www.usno.navy.mil/help/astronomy-help as this provides evidence to USNO that justifies further improvements and developments of NOVAS capabilities. Note: This class is now deprecated, please use NOVAS31 instead. Creates a new instance of the NOVAS3 component Thrown if the NOVAS3 support library DLL cannot be loaded Cleans up the NOVAS3 object and releases its open file handle on the JPL planetary ephemeris file Get position and velocity of target with respect to the centre object. Two-element array containing the Julian date, which may be split any way (although the first element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the TDB or "T_eph" time scale. Target object Centre object Position vector array of target relative to center, measured in AU. Velocity vector array of target relative to center, measured in AU/day.
 0   ...everything OK.
 1,2 ...error returned from State.
This function accesses the JPL planetary ephemeris to give the position and velocity of the target object with respect to the center object.
Produces the Cartesian heliocentric equatorial coordinates of the asteroid for the J2000.0 epoch coordinate system from a set of Chebyshev polynomials read from a file. The number of the asteroid for which the position in desired. The name of the asteroid. The Julian date on which to find the position and velocity.
 = 0 ( No error )
 = 1 ( Memory allocation error )
 = 2 ( Mismatch between asteroid name and number )
 = 3 ( Julian date out of bounds )
 = 4 ( Cannot find Chebyshev polynomial file )
 
6-element array of double containing position and velocity vector values. The file name of the asteroid is taken from the name given. It is assumed that the name is all in lower case characters. This routine will search in the application's current directory for a file of Chebyshev polynomial coefficients whose name is based on the provided Name parameter: Name.chby Further information on using NOVAS with minor planet data is given here: http://www.usno.navy.mil/USNO/astronomical-applications/software-products/usnoae98
Interface between the JPL direct-access solar system ephemerides and NOVAS-C. Julian date of the desired time, on the TDB time scale. Body identification number for the solar system object of interest; Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. Always returns 0 Read and interpolate the JPL planetary ephemeris file. 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. The requested body to get data for from the ephemeris file. The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) The barycentric velocity vector array of the requested object, in AU/Day.
 0 ...everything OK
 1 ...error reading ephemeris file
 2 ...epoch out of range.
 
The target number designation of the astronomical bodies is:
         = 0: Mercury,               1: Venus, 
         = 2: Earth-Moon barycenter, 3: Mars, 
         = 4: Jupiter,               5: Saturn, 
         = 6: Uranus,                7: Neptune, 
         = 8: Pluto,                 9: geocentric Moon, 
         =10: Sun.
 
NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval between then and epoch.
Corrects position vector for aberration of light. Algorithm includes relativistic terms. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from object to Earth in days. Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU If 'lighttime' = 0 on input, this function will compute it. Compute the apparent place of a planet or other solar system body. TT Julian date for apparent place. Pointer to structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for apparent place. Catalog entry structure containing catalog data forthe object in the ICRS Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'.
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Compute the astrometric place of a planet or other solar system body. TT Julian date for astrometric place. structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for astrometric place. Catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration).
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). Position vector, referred to origin at solar system barycenter, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector, referred to origin at center of mass of the Earth, components in AU. Light time from object to Earth in days. This function will compute a date on the Gregorian calendar given the Julian date. Julian date. Year Month number day number Fractional hour of the day This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. TDB or TT Julian date for pole offsets. Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds.
 0 ... Everything OK
 1 ... Invalid value of 'Type'.
 
Calaculate an array of CIO RA values around a given date TDB Julian date. Number of Julian dates and right ascension values requested (not less than 2 or more than 20). An arraylist of RaOfCIO structures containing a time series of the right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS.
 0 ... everything OK
 1 ... error opening the 'cio_ra.bin' file
 2 ... 'JdTdb' not in the range of the CIO file; 
 3 ... 'NPts' out of range
 4 ... unable to allocate memory for the internal 't' array; 
 5 ... unable to allocate memory for the internal 'ra' array; 
 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
 
Given an input TDB Julian date and the number of data points desired, this function returns a set of Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). The range of dates is centered (at least approximately) on the requested date. The function obtains the data from an external data file. How to create and retrieve values from the arraylist Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 MsgBox("Nov3 RC= " rc) For Each CioA As ASCOM.Astrometry.RAOfCio In CioList MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) Next
Compute the orthonormal basis vectors of the celestial intermediate system. TDB Julian date of epoch. Right ascension of the CIO at epoch (hours). Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. Accuracy Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS.
 0 ... everything OK
 1 ... invalid value of input variable 'RefSys'.
 
To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the right ascension of the CIO at that date is required as input. The right ascension of the CIO can be with respect to either the GCRS origin or the true equinox of date -- different algorithms are used in the two cases.
Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension TDB Julian date. Selection for accuracy Right ascension of the CIO, in hours. Reference system in which right ascension is given
    0 ... everything OK
    1 ... unable to allocate memory for the 'cio' array
 > 10 ... 10 + the error code from function 'CioArray'.
 
This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date.
Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). TT Julian date Selection for accuracy Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -).
   0  ... everything OK
   1  ... invalid value of 'Accuracy'
 > 10 ... 10 + the error code from function 'CioLocation'
 > 20 ... 20 + the error code from function 'CioBasis'.
 
Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). Position vector of star, with respect to origin at solar system barycenter. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Difference in light time, in the sense star to barycenter minus star to earth, in days. Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is the position vector of solar system body, with respect to origin at observer (or the geocenter), components in AU; and the returned value is the light time to point on line defined by 'Pos1' that is closest to solar system body (positive if light passes body before hitting observer, i.e., if 'Pos1' is within 90 degrees of 'PosObs'). Converts an ecliptic position vector to an equatorial position vector. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS Selection for accuracy Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. Position vector, referred to specified equator and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the output from this case, all vectors are assumed to be with respect to a dynamical system.
Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. High-order part of TT Julian date. Low-order part of TT Julian date. Selection for accuracy Complementary terms, in radians. Series from IERS Conventions (2003), Chapter 5, Table 5.2C, with some adjustments to coefficient values copied from IERS function 'eect2000', which has a more complete series. Retrieves the position and velocity of a solar system body from a fundamental ephemeris. TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. Structure containing the designation of the body of interest Origin code; solar system barycenter = 0, center of mass of the Sun = 1. Slection for accuracy Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day.
    0 ... Everything OK
    1 ... Invalid value of 'Origin'
    2 ... Invalid value of 'Type' in 'CelObj'; 
    3 ... Unable to allocate memory
 10+n ... where n is the error code from 'SolarSystem'; 
 20+n ... where n is the error code from 'ReadEph'.
 
It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c.
To convert right ascension and declination to ecliptic longitude and latitude. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Right ascension in hours, referred to specified equator and equinox of date. Declination in degrees, referred to specified equator and equinox of date. Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all input coordinates are dynamical.
Converts an equatorial position vector to an ecliptic position vector. TT Julian date of equator, equinox, and ecliptic used for Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Position vector, referred to specified equator and equinox of date. Position vector, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all vectors are assumed to be with respect to a dynamical system.
Converts ICRS right ascension and declination to galactic longitude and latitude. ICRS right ascension in hours. ICRS declination in degrees. Galactic longitude in degrees. Galactic latitude in degrees. Transforms topocentric right ascension and declination to zenith distance and azimuth. UT1 Julian date. Difference TT-UT1 at 'jd_ut1', in seconds. Selection for accuracy onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. Topocentric azimuth (measured east from north) in degrees. Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms topocentric right ascension and declination to zenith distance and azimuth. It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. The Earth Rotation Angle (theta) in degrees. The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top of page 35 of IERS Conventions (1996)). Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. TDB Julian Date. Selection for accuracy Mean obliquity of the ecliptic in degrees at 'JdTdb'. True obliquity of the ecliptic in degrees at 'JdTdb'. Equation of the equinoxes in seconds of time at 'JdTdb'. Nutation in longitude in arcseconds at 'JdTdb'. Nutation in obliquity in arcseconds at 'JdTdb'. Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', if desired. See the prolog of 'cel_pole' for details. To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. Position vector, equatorial rectangular coordinates. Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for ICRS to dynamical transformation. Position vector, equatorial rectangular coordinates. To compute the fundamental arguments (mean elements) of the Sun and Moon. TDB time in Julian centuries since J2000.0 Double array of fundamental arguments Fundamental arguments, in radians:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (mean argument of the latitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = a[4] (mean longitude of the Moon's ascending node);
                from Simon section 3.4(b.3),
                precession = 5028.8200 arcsec/cy)
 
Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). TT Julian date of equator to be used for output coordinates. Coordinate system selection for output coordinates.; 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date Selection for accuracy GCRS right ascension in hours. GCRS declination in degrees. Right ascension in hours, referred to specified equator and right ascension origin of date. Declination in degrees, referred to specified equator of date.
    0 ... everything OK
 >  0 ... error from function 'Vector2RaDec'' 
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
>
For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). This function only supports the CIO-based method.
This function computes the geocentric position and velocity of an observer on the surface of the earth or on a near-earth spacecraft. TT Julian date. Value of Delta T (= TT - UT1) at 'JdTt'. Selection for accuracy Data specifying the location of the observer Position vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU. Velocity vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU/day.
 0 ... everything OK
 1 ... invalid value of 'Accuracy'.
 
The final vectors are expressed in the GCRS.
Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. TDB Julian date of observation. Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. Selection for accuracy Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, corrected for gravitational deflection, components in AU.
    0 ... Everything OK
  30 ... Error from function 'Ephemeris'; 
 > 30 ... Error from function 'MakeObject'.
 
This function valid for an observed body within the solar system as well as for a star. If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included.
Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. Position vector of observed object, with respect to origin at observer (or the geocenter), components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector of gravitating body, with respect to origin at solar system barycenter, components in AU. Reciprocal mass of gravitating body in solar mass units, that is, Sun mass / body mass. Position vector of observed object, with respect to origin at observer (or the geocenter), corrected for gravitational deflection, components in AU. This function valid for an observed body within the solar system as well as for a star. Compute the intermediate right ascension of the equinox at the input Julian date TDB Julian date. Equinox selection flag: mean pr true Selection for accuracy Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 (i.e true equinox), then the returned value is the equation of the origins. Compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number Day number Fractional hour of the day Computed Julian date. This function makes no checks for a valid input calendar date. The input calendar date must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - output Julian date will have the same basis. Computes the geocentric position of a solar system body, as antedated for light-time. TDB Julian date of observation. Structure containing the designation for thesolar system body Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. First approximation to light-time, in days (can be set to 0.0 if unknown) Selection for accuracy Position vector of body, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Final light-time, in days.
    0 ... everything OK
    1 ... algorithm failed to converge after 10 iterations
 ]]> 10 ... error is 10 + error from function 'SolarSystem'.
 
Determines the angle of an object above or below the Earth's limb (horizon). Position vector of observed object, with respect to origin at geocenter, components in AU. Position vector of observer, with respect to origin at geocenter, components in AU. Angle of observed object above (+) or below (-) limb in degrees. Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb The geometric limb is computed, assuming the Earth to be an airless sphere (no refraction or oblateness is included). The observer can be on or above the Earth. For an observer on the surface of the Earth, this function returns the approximate unrefracted altitude. Computes the local place of a solar system body. TT Julian date for local place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Specifies accuracy level Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'. True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'; 
 ]]> 10 ... Error code from function 'Place'.
 
Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for local place. delta_t (double) Difference TT-UT1 at 'JdTt', in seconds of time. catalog entry structure containing catalog data for the object in the ICRS Structure specifying the position of the observer Specifies accuracy level. Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Object name (50 characters maximum). Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) Object number in the catalog. Right ascension of the object (hours). Declination of the object (degrees). Proper motion in right ascension (milliarcseconds/year). Proper motion in declination (milliarcseconds/year). Parallax (milliarcseconds). Radial velocity (kilometers/second). CatEntry3 structure containing the input data Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. InSpace structure containing the position and velocity of an observer situated on a near-Earth spacecraft Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) Name of the object (50 characters maximum). Structure containing basic astrometric data for any celestial object located outside the solar system; the catalog data for a star Structure containing the object definition
 0 ... everything OK
 1 ... invalid value of 'Type'
 2 ... 'Number' out of range
 
Makes a structure of type 'observer' - specifying the location of the observer. Integer code specifying location of observer: 0: observer at geocenter; 1: observer on surface of earth; 2: observer on near-earth spacecraft Structure containing data for an observer's location on the surface of the Earth; used when 'Where' = 1 Structure containing an observer's location on a near-Earth spacecraft; used when 'Where' = 2 Structure specifying the location of the observer
 0 ... everything OK
 1 ... input value of 'Where' is out-of-range.
 
Makes a structure of type 'observer' specifying an observer at the geocenter. Structure specifying the location of the observer at the geocenter Makes a structure of type 'observer' specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric position vector (x, y, z) in km. Structure containing the position and velocity of an observer situated on a near-Earth spacecraft Both input vectors are with respect to true equator and equinox of date. Makes a structure of type 'observer' specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) longitude in degrees; east positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth Makes a structure of type 'on_surface' - specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) latitude in degrees; north positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth. Compute the mean obliquity of the ecliptic. TDB Julian Date. Mean obliquity of the ecliptic in arcseconds. Computes the ICRS position of a star, given its apparent place at date 'JdTt'. Proper motion, parallax and radial velocity are assumed to be zero. TT Julian date of apparent place. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. Specifies accuracy level ICRS right ascension in hours. ICRS declination in degrees.
    0 ... Everything OK
    1 ... Iterative process did not converge after 30 iterations; 
 > 10 ... Error from function 'Vector2RaDec'
 > 20 ... Error from function 'AppStar'.
 
Normalize angle into the range 0 angle (2 * pi). Input angle (radians). The input angle, normalized as described above (radians). Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB Julian date of epoch. Flag determining 'direction' of transformation; direction = 0 transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. Selection for accuracy Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. Inverse transformation may be applied by setting flag 'direction' Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. TDB time in Julian centuries since J2000.0 Selection for accuracy Nutation in longitude in arcseconds. Nutation in obliquity in arcseconds. The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. This function selects the nutation model depending first upon the input value of 'Accuracy'. If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. Computes the apparent direction of a star or solar system body at a specified time and in a specified coordinate system. TT Julian date for place. Specifies the celestial object of interest Specifies the location of the observer Difference TT-UT1 at 'JdTt', in seconds of time. Code specifying coordinate system of the output position. 0 ... GCRS or "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; 3 ... astrometric coordinates, i.e., without light deflection or aberration. Selection for accuracy Structure specifying object's place on the sky at time 'JdTt', with respect to the specified output coordinate system
 = 0         ... No problems.
 = 1         ... invalid value of 'CoordSys'
 = 2         ... invalid value of 'Accuracy'
 = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
 > 10,  40  ... 10 + error from function 'Ephemeris'
 > 40,  50  ... 40 + error from function 'GeoPosVel'
 > 50,  70  ... 50 + error from function 'LightTime'
 > 70,  80  ... 70 + error from function 'GravDef'
 > 80,  90  ... 80 + error from function 'CioLocation'
 > 90,  100 ... 90 + error from function 'CioBasis'
 
Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place:
     Location->Where = 0 and CoordSys = 1: apparent place
     Location->Where = 1 and CoordSys = 1: topocentric place
     Location->Where = 0 and CoordSys = 0: virtual place
     Location->Where = 1 and CoordSys = 0: local place
     Location->Where = 0 and CoordSys = 3: astrometric place
     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
 
Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is on surface of Earth or in a near-Earth satellite).
Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. TDB Julian date of second epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch.
 0 ... everything OK
 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
 
One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs.
Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. Position vector at second epoch. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance in AU Position vector, equatorial rectangular coordinates (AU). Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. Specifies the celestial object of interest Geometric position vector of object with respect to observer, corrected for light-time, in AU. Velocity vector of object with respect to solar system barycenter, in AU/day. Velocity vector of observer with respect to solar system barycenter, in AU/day. Distance from observer to geocenter, in AU. Distance from observer to Sun, in AU. Distance from object to Sun, in AU. The observed radial velocity measure times the speed of light, in kilometers/second. Radial velocity is here defined as the radial velocity measure (z) times the speed of light. For a solar system body, it applies to a fictitious emitter at the center of the observed object, assumed massless (no gravitational red shift), and does not in general apply to reflected light. For stars, it includes all effects, such as gravitational red shift, contained in the catalog barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known kinematic velocity vector (obtained independently of spectroscopy) can be treated like solar system objects. Computes atmospheric refraction in zenith distance. Structure containing observer's location. 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric parameters input in the 'Location' structure. Observed zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. This function can be used for planning observations or telescope pointing, but should not be used for the reduction of precise observations. Computes the Greenwich apparent sidereal time, at Julian date 'JdHigh' + 'JdLow'. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy Greenwich apparent sidereal time, in hours.
          0 ... everything OK
          1 ... invalid value of 'Accuracy'
          2 ... invalid value of 'Method'
 > 10,  30 ... 10 + error from function 'CioRai'
 
The Julian date may be split at any point, but for highest precision, set 'JdHigh' to be the integral part of the Julian date, and set 'JdLow' to be the fractional part.
Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. Position vector. Position vector expressed in new coordinate system rotated about z by 'angle'. Converts angular quantities for stars to vectors. Catalog entry structure containing ICRS catalog data Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding to a Barycentric Dynamical Time (TDB) Julian date. TDB Julian date. TT Julian date. Difference 'tdb_jd'-'tt_jd', in seconds. Expression used in this function is a truncated form of a longer and more precise series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. The result is good to about 10 microseconds. This function rotates a vector from the terrestrial to the celestial system. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Value of Delta T (= TT - UT1) at the input UT1 Julian date. Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy 0 ... The output vector is referred to GCRS axes; 1 ... The output vector is produced with respect to the equator and equinox of date. Conventionally-defined X coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes (terrestrial system) in the normal case where 'option' = 0. Position vector, geocentric equatorial rectangular coordinates, referred to GCRS axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'.
    0 ... everything is ok
    1 ... invalid value of 'Accuracy'
    2 ... invalid value of 'Method'
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
'x' = 'y' = 0 means no polar motion transformation. The 'option' flag only works for the equinox-based method.
Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Structure containing observer's location Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/day. If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. This function ignores polar motion, unless the observer's longitude and latitude have been corrected for it, and variation in the length of day (angular velocity of earth). The true equator and equinox of date do not form an inertial system. Therefore, with respect to an inertial system, the very small velocity component (several meters/day) due to the precession and nutation of the Earth's axis is not accounted for here. Computes the topocentric place of a solar system body. TT Julian date for topocentric place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Selection for accuracy Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'Place'.
Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for topocentric place. Difference TT-UT1 at 'JdTt', in seconds of time. Catalog entry structure containing catalog data for the object in the ICRS Specifies the position of the observer Code specifying the relative accuracy of the output position. Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'.
 
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option TT Julian date, or year, of input catalog data. An entry from the input catalog, with units as given in the struct definition TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. The transformed catalog entry, with units as given in the struct definition
 = 0 ... Everything OK.
 = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
 
Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference frame corresponding to precession between the first and second dates, but leaves the star fixed in space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). 3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. 4. This function cannot be properly used to bring data from old star catalogs into the modern system, because old catalogs were compiled using a set of constants that are incompatible with modern values. In particular, it should not be used for catalogs whose positions and proper motions were derived by assuming a precession constant significantly different from the value implicit in function 'precession'.
Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion. Both input and output data is in the ICRS. 1. Input (Hipparcos catalog) epoch and units: Epoch: J1991.25 Right ascension (RA): degrees Declination (Dec): degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second (not in catalog) 2. Output (modified Hipparcos) epoch and units: Epoch: J2000.0 Right ascension: hours Declination: degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second > Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. Right ascension in hours. Declination in degrees.
 = 0 ... Everything OK.
 = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
 = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
 
Compute the virtual place of a planet or other solar system body. TT Julian date for virtual place. structure containing the body designation for the solar system body( Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS. True distance from Earth to planet in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Type' in structure 'SsBody'.
 > 10 ... Error code from function 'Place'.
 
Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for virtual place. catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS.
 =  0 ... Everything OK.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'
 
Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). TT or UT1 Julian date. Conventionally-defined X coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and TIO. Get path to a system folder SUpply null / nothing to use "current user" returned string folder path Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c Indicates whether the folder should be created if it does not already exist. If this value is nonzero, the folder is created. If this value is zero, the folder is not created TRUE if successful; otherwise, FALSE. Loads a library DLL Full path to the file to load A pointer to the loaded DLL image This is a wrapper for the Windows kernel32 function LoadLibraryA Unloads a library DLL Pointer to the loaded library returned by the LoadLibrary function. True or false depending on whether the library was released. Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 NOVAS31: Class presenting the contents of the USNO NOVAS 3.1 library. NOVAS was developed by the Astronomical Applications department of the United States Naval Observatory. If you wish to explore or utilise NOVAS3.1 please see USNO's extensive help document "NOVAS 3.1 Users Guide" (NOVAS C3.1 Guide.pdf) included in the ASCOM Platform Docs start menu folder. The latest revision is also available on the USNO web site at http://www.usno.navy.mil/USNO/astronomical-applications/software-products/novas in the "C Edition of NOVAS" link. If you use NOVAS, please send an e-mail through this page: http://www.usno.navy.mil/help/astronomy-help as this provides evidence to USNO that justifies further improvements and developments of NOVAS capabilities. Creates a new instance of the NOVAS31 component Thrown if the NOVAS31 support library DLL cannot be loaded Cleans up the NOVAS3 object and releases its open file handle on the JPL planetary ephemeris file Get position and velocity of target with respect to the centre object. Two-element array containing the Julian date, which may be split any way (although the first element is usually the "integer" part, and the second element is the "fractional" part). Julian date is in the TDB or "T_eph" time scale. Target object Centre object Position vector array of target relative to center, measured in AU. Velocity vector array of target relative to center, measured in AU/day.
 0   ...everything OK.
 1,2 ...error returned from State.
This function accesses the JPL planetary ephemeris to give the position and velocity of the target object with respect to the center object.
Produces the Cartesian heliocentric equatorial coordinates of the asteroid for the J2000.0 epoch coordinate system from a set of Chebyshev polynomials read from a file. The number of the asteroid for which the position in desired. The name of the asteroid. The Julian date on which to find the position and velocity.
 = 0 ( No error )
 = 1 ( Memory allocation error )
 = 2 ( Mismatch between asteroid name and number )
 = 3 ( Julian date out of bounds )
 = 4 ( Cannot find Chebyshev polynomial file )
 
6-element array of double containing position and velocity vector values. The file name of the asteroid is taken from the name given. It is assumed that the name is all in lower case characters. This routine will search in the application's current directory for a file of Chebyshev polynomial coefficients whose name is based on the provided Name parameter: Name.chby Further information on using NOVAS with minor planet data is given here: http://www.usno.navy.mil/USNO/astronomical-applications/software-products/usnoae98
Interface between the JPL direct-access solar system ephemerides and NOVAS-C. Julian date of the desired time, on the TDB time scale. Body identification number for the solar system object of interest; Mercury = 1, ..., Pluto= 9, Sun= 10, Moon = 11. Origin code; solar system barycenter= 0, center of mass of the Sun = 1, center of Earth = 2. Position vector of 'body' at tjd; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of 'body' at tjd; equatorial rectangular system referred to the ICRS. Always returns 0 Read and interpolate the JPL planetary ephemeris file. 2-element Julian date (TDB) at which interpolation is wanted. Any combination of jed[0]+jed[1] which falls within the time span on the file is a permissible epoch. See Note 1 below. The requested body to get data for from the ephemeris file. The barycentric position vector array of the requested object, in AU. (If target object is the Moon, then the vector is geocentric.) The barycentric velocity vector array of the requested object, in AU/Day.
 0 ...everything OK
 1 ...error reading ephemeris file
 2 ...epoch out of range.
 
The target number designation of the astronomical bodies is:
         = 0: Mercury,               1: Venus, 
         = 2: Earth-Moon barycenter, 3: Mars, 
         = 4: Jupiter,               5: Saturn, 
         = 6: Uranus,                7: Neptune, 
         = 8: Pluto,                 9: geocentric Moon, 
         =10: Sun.
 
NOTE 1. For ease in programming, the user may put the entire epoch in jed[0] and set jed[1] = 0. For maximum interpolation accuracy, set jed[0] = the most recent midnight at or before interpolation epoch, and set jed[1] = fractional part of a day elapsed between jed[0] and epoch. As an alternative, it may prove convenient to set jed[0] = some fixed epoch, such as start of the integration and jed[1] = elapsed interval between then and epoch.
Corrects position vector for aberration of light. Algorithm includes relativistic terms. Position vector, referred to origin at center of mass of the Earth, components in AU. Velocity vector of center of mass of the Earth, referred to origin at solar system barycenter, components in AU/day. Light time from object to Earth in days. Position vector, referred to origin at center of mass of the Earth, corrected for aberration, components in AU If 'lighttime' = 0 on input, this function will compute it. Compute the apparent place of a planet or other solar system body. TT Julian date for apparent place. Pointer to structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the apparent place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for apparent place. Catalog entry structure containing catalog data forthe object in the ICRS Code specifying the relative accuracy of the output position. Apparent right ascension in hours, referred to true equator and equinox of date 'JdTt'. Apparent declination in degrees, referred to true equator and equinox of date 'JdTt'.
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Compute the astrometric place of a planet or other solar system body. TT Julian date for astrometric place. structure containing the body designation for the solar system body Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration). True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Type' in structure 'SsBody'
 > 10 ... Error code from function 'Place'.
 
Computes the astrometric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for astrometric place. Catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Astrometric right ascension in hours (referred to the ICRS, without light deflection or aberration). Astrometric declination in degrees (referred to the ICRS, without light deflection or aberration).
    0 ... Everything OK
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Move the origin of coordinates from the barycenter of the solar system to the observer (or the geocenter); i.e., this function accounts for parallax (annual+geocentric or justannual). Position vector, referred to origin at solar system barycenter, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector, referred to origin at center of mass of the Earth, components in AU. Light time from object to Earth in days. This function will compute a date on the Gregorian calendar given the Julian date. Julian date. Year Month number day number Fractional hour of the day This function rotates a vector from the celestial to the terrestrial system. Specifically, it transforms a vector in the GCRS (a local space-fixed system) to the ITRS (a rotating earth-fixed system) by applying rotations for the GCRS-to-dynamical frame tie, precession, nutation, Earth rotation, and polar motion. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Value of Delta T (= TT - UT1) at the input UT1 Julian date. Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy 0 ... The output vector is referred to GCRS axes; 1 ... The output vector is produced with respect to the equator and equinox of date. (See note 2 below) Conventionally-defined X coordinate of celestial intermediate pole with respect to ITRS pole, in arcseconds. Conventionally-defined Y coordinate of celestial intermediate pole with respect to ITRS pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to GCRS axes (celestial system) or with respect to the equator and equinox of date, depending on 'option'. Position vector, geocentric equatorial rectangular coordinates, referred to ITRS axes (terrestrial system).
    0 ... everything is ok
    1 ... invalid value of 'Accuracy'
    2 ... invalid value of 'Method'
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
Note 1: 'x' = 'y' = 0 means no polar motion transformation. Note2: 'option' = 1 only works for the equinox-based method.
This function allows for the specification of celestial pole offsets for high-precision applications. Each set of offsets is a correction to the modeled position of the pole for a specific date, derived from observations and published by the IERS. TDB or TT Julian date for pole offsets. Type of pole offset. 1 for corrections to angular coordinates of modeled pole referred to mean ecliptic of date, that is, delta-delta-psi and delta-delta-epsilon. 2 for corrections to components of modeled pole unit vector referred to GCRS axes, that is, dx and dy. Value of celestial pole offset in first coordinate, (delta-delta-psi or dx) in milliarcseconds. Value of celestial pole offset in second coordinate, (delta-delta-epsilon or dy) in milliarcseconds.
 0 ... Everything OK
 1 ... Invalid value of 'Type'.
 
Calaculate an array of CIO RA values around a given date TDB Julian date. Number of Julian dates and right ascension values requested (not less than 2 or more than 20). An arraylist of RaOfCIO structures containing a time series of the right ascension of the Celestial Intermediate Origin (CIO) with respect to the GCRS.
 0 ... everything OK
 1 ... error opening the 'cio_ra.bin' file
 2 ... 'JdTdb' not in the range of the CIO file; 
 3 ... 'NPts' out of range
 4 ... unable to allocate memory for the internal 't' array; 
 5 ... unable to allocate memory for the internal 'ra' array; 
 6 ... 'JdTdb' is too close to either end of the CIO file; unable to put 'NPts' data points into the output object.
 
Given an input TDB Julian date and the number of data points desired, this function returns a set of Julian dates and corresponding values of the GCRS right ascension of the celestial intermediate origin (CIO). The range of dates is centered (at least approximately) on the requested date. The function obtains the data from an external data file. How to create and retrieve values from the arraylist Dim CioList As New ArrayList, Nov3 As New ASCOM.Astrometry.NOVAS3 rc = Nov3.CioArray(2455251.5, 20, CioList) ' Get 20 values around date 00:00:00 February 24th 2010 MsgBox("Nov3 RC= " rc) For Each CioA As ASCOM.Astrometry.RAOfCio In CioList MsgBox("CIO Array " CioA.JdTdb " " CioA.RACio) Next
Compute the orthonormal basis vectors of the celestial intermediate system. TDB Julian date of epoch. Right ascension of the CIO at epoch (hours). Reference system in which right ascension is given. 1 ... GCRS; 2 ... True equator and equinox of date. Accuracy Unit vector toward the CIO, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward the y-direction, equatorial rectangular coordinates, referred to the GCRS. Unit vector toward north celestial pole (CIP), equatorial rectangular coordinates, referred to the GCRS.
 0 ... everything OK
 1 ... invalid value of input variable 'RefSys'.
 
To compute the orthonormal basis vectors, with respect to the GCRS (geocentric ICRS), of the celestial intermediate system defined by the celestial intermediate pole (CIP) (in the z direction) and the celestial intermediate origin (CIO) (in the x direction). A TDB Julian date and the right ascension of the CIO at that date is required as input. The right ascension of the CIO can be with respect to either the GCRS origin or the true equinox of date -- different algorithms are used in the two cases.
Returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension TDB Julian date. Selection for accuracy Right ascension of the CIO, in hours. Reference system in which right ascension is given
    0 ... everything OK
    1 ... unable to allocate memory for the 'cio' array
 > 10 ... 10 + the error code from function 'CioArray'.
 
This function returns the location of the celestial intermediate origin (CIO) for a given Julian date, as a right ascension with respect to either the GCRS (geocentric ICRS) origin or the true equinox of date. The CIO is always located on the true equator (= intermediate equator) of date.
Computes the true right ascension of the celestial intermediate origin (CIO) at a given TT Julian date. This is -(equation of the origins). TT Julian date Selection for accuracy Right ascension of the CIO, with respect to the true equinox of date, in hours (+ or -).
   0  ... everything OK
   1  ... invalid value of 'Accuracy'
 > 10 ... 10 + the error code from function 'CioLocation'
 > 20 ... 20 + the error code from function 'CioBasis'.
 
Returns the difference in light-time, for a star, between the barycenter of the solar system and the observer (or the geocenter). Position vector of star, with respect to origin at solar system barycenter. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Difference in light time, in the sense star to barycenter minus star to earth, in days. Alternatively, this function returns the light-time from the observer (or the geocenter) to a point on a light ray that is closest to a specific solar system body. For this purpose, 'Pos1' is the position vector toward observed object, with respect to origin at observer (or the geocenter); 'PosObs' is the position vector of solar system body, with respect to origin at observer (or the geocenter), components in AU; and the returned value is the light time to point on line defined by 'Pos1' that is closest to solar system body (positive if light passes body before hitting observer, i.e., if 'Pos1' is within 90 degrees of 'PosObs'). Converts an ecliptic position vector to an equatorial position vector. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system selection. 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... ICRS Selection for accuracy Position vector, referred to specified ecliptic and equinox of date. If 'CoordSys' = 2, 'pos1' must be on mean ecliptic and equinox of J2000.0; see Note 1 below. Position vector, referred to specified equator and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ecliptic vector (mean ecliptic and equinox of J2000.0 only) to an ICRS vector, set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the output from this case, all vectors are assumed to be with respect to a dynamical system.
Compute the "complementary terms" of the equation of the equinoxes consistent with IAU 2000 resolutions. High-order part of TT Julian date. Low-order part of TT Julian date. Selection for accuracy Complementary terms, in radians. 1. The series used in this function was derived from Series from IERS Conventions (2003), Chapter 5, Table 5.2C. This same series was also adopted for use in the IAU's Standards of Fundamental Astronomy (SOFA) software (i.e., subroutine eect00.for and function eect00.c). 2. The low-accuracy series used in this function is a simple implementation derived from the first reference, in which terms smaller than 2 microarcseconds have been omitted. 3. This function is based on NOVAS Fortran routine 'eect2000', with the low-accuracy formula taken from NOVAS Fortran routine 'etilt'. Retrieves the position and velocity of a solar system body from a fundamental ephemeris. TDB Julian date split into two parts, where the sum jd[0] + jd[1] is the TDB Julian date. Structure containing the designation of the body of interest Origin code; solar system barycenter = 0, center of mass of the Sun = 1. Slection for accuracy Position vector of the body at 'Jd'; equatorial rectangular coordinates in AU referred to the ICRS. Velocity vector of the body at 'Jd'; equatorial rectangular system referred to the mean equator and equinox of the ICRS, in AU/Day.
    0 ... Everything OK
    1 ... Invalid value of 'Origin'
    2 ... Invalid value of 'Type' in 'CelObj'; 
    3 ... Unable to allocate memory
 10+n ... where n is the error code from 'SolarSystem'; 
 20+n ... where n is the error code from 'ReadEph'.
 
It is recommended that the input structure 'cel_obj' be created using function 'MakeObject' in file novas.c.
To convert right ascension and declination to ecliptic longitude and latitude. TT Julian date of equator, equinox, and ecliptic used for coordinates. Coordinate system: 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Right ascension in hours, referred to specified equator and equinox of date. Declination in degrees, referred to specified equator and equinox of date. Ecliptic longitude in degrees, referred to specified ecliptic and equinox of date. Ecliptic latitude in degrees, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert ICRS RA and dec to ecliptic coordinates (mean ecliptic and equinox of J2000.0), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all input coordinates are dynamical.
Converts an equatorial position vector to an ecliptic position vector. TT Julian date of equator, equinox, and ecliptic used for Coordinate system selection. 0 ... mean equator and equinox of date 'JdTt'; 1 ... true equator and equinox of date 'JdTt'; 2 ... ICRS Selection for accuracy Position vector, referred to specified equator and equinox of date. Position vector, referred to specified ecliptic and equinox of date.
 0 ... everything OK
 1 ... invalid value of 'CoordSys'
 
To convert an ICRS vector to an ecliptic vector (mean ecliptic and equinox of J2000.0 only), set 'CoordSys' = 2; the value of 'JdTt' can be set to anything, since J2000.0 is assumed. Except for the input to this case, all vectors are assumed to be with respect to a dynamical system.
Converts ICRS right ascension and declination to galactic longitude and latitude. ICRS right ascension in hours. ICRS declination in degrees. Galactic longitude in degrees. Galactic latitude in degrees. Transforms topocentric right ascension and declination to zenith distance and azimuth. UT1 Julian date. Difference TT-UT1 at 'jd_ut1', in seconds. Selection for accuracy onventionally-defined x coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Conventionally-defined y coordinate of celestial intermediate pole with respect to ITRS reference pole, in arcseconds. Structure containing observer's location Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date. Refraction option. 0 ... no refraction; 1 ... include refraction, using 'standard' atmospheric conditions; 2 ... include refraction, using atmospheric parametersinput in the 'Location' structure. Topocentric zenith distance in degrees, affected by refraction if 'ref_option' is non-zero. Topocentric azimuth (measured east from north) in degrees. Topocentric right ascension of object of interest, in hours, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. Topocentric declination of object of interest, in degrees, referred to true equator and equinox of date, affected by refraction if 'ref_option' is non-zero. This function transforms topocentric right ascension and declination to zenith distance and azimuth. It uses a method that properly accounts for polar motion, which is significant at the sub-arcsecond level. This function can also adjust coordinates for atmospheric refraction. Returns the value of the Earth Rotation Angle (theta) for a given UT1 Julian date. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. The Earth Rotation Angle (theta) in degrees. The expression used is taken from the note to IAU Resolution B1.8 of 2000. 1. The algorithm used here is equivalent to the canonical theta = 0.7790572732640 + 1.00273781191135448 * t, where t is the time in days from J2000 (t = JdHigh + JdLow - T0), but it avoids many two-PI 'wraps' that decrease precision (adopted from SOFA Fortran routine iau_era00; see also expression at top of page 35 of IERS Conventions (1996)). Computes quantities related to the orientation of the Earth's rotation axis at Julian date 'JdTdb'. TDB Julian Date. Selection for accuracy Mean obliquity of the ecliptic in degrees at 'JdTdb'. True obliquity of the ecliptic in degrees at 'JdTdb'. Equation of the equinoxes in seconds of time at 'JdTdb'. Nutation in longitude in arcseconds at 'JdTdb'. Nutation in obliquity in arcseconds at 'JdTdb'. Values of the celestial pole offsets 'PSI_COR' and 'EPS_COR' are set using function 'cel_pole', if desired. See the prolog of 'cel_pole' for details. To transform a vector from the dynamical reference system to the International Celestial Reference System (ICRS), or vice versa. Position vector, equatorial rectangular coordinates. Set 'direction' 0 for dynamical to ICRS transformation. Set 'direction' =]]> 0 for ICRS to dynamical transformation. Position vector, equatorial rectangular coordinates. To compute the fundamental arguments (mean elements) of the Sun and Moon. TDB time in Julian centuries since J2000.0 Double array of fundamental arguments Fundamental arguments, in radians:
   a[0] = l (mean anomaly of the Moon)
   a[1] = l' (mean anomaly of the Sun)
   a[2] = F (mean argument of the latitude of the Moon)
   a[3] = D (mean elongation of the Moon from the Sun)
   a[4] = a[4] (mean longitude of the Moon's ascending node);
                from Simon section 3.4(b.3),
                precession = 5028.8200 arcsec/cy)
 
Converts GCRS right ascension and declination to coordinates with respect to the equator of date (mean or true). TT Julian date of equator to be used for output coordinates. Coordinate system selection for output coordinates.; 0 ... mean equator and equinox of date; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date Selection for accuracy GCRS right ascension in hours. GCRS declination in degrees. Right ascension in hours, referred to specified equator and right ascension origin of date. Declination in degrees, referred to specified equator of date.
    0 ... everything OK
 >  0 ... error from function 'Vector2RaDec'' 
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
>
For coordinates with respect to the true equator of date, the origin of right ascension can be either the true equinox or the celestial intermediate origin (CIO). This function only supports the CIO-based method.
This function computes the geocentric position and velocity of an observer on the surface of the earth or on a near-earth spacecraft. TT Julian date. Value of Delta T (= TT - UT1) at 'JdTt'. Selection for accuracy Data specifying the location of the observer Position vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU. Velocity vector of observer, with respect to origin at geocenter, referred to GCRS axes, components in AU/day.
 0 ... everything OK
 1 ... invalid value of 'Accuracy'.
 
The final vectors are expressed in the GCRS.
Computes the total gravitational deflection of light for the observed object due to the major gravitating bodies in the solar system. TDB Julian date of observation. Code for location of observer, determining whether the gravitational deflection due to the earth itself is applied. Selection for accuracy Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. Position vector of observed object, with respect to origin at observer (or the geocenter), referred to ICRS axes, corrected for gravitational deflection, components in AU.
    0 ... Everything OK
  30 ... Error from function 'Ephemeris'; 
 > 30 ... Error from function 'MakeObject'.
 
This function valid for an observed body within the solar system as well as for a star. If 'Accuracy' is set to zero (full accuracy), three bodies (Sun, Jupiter, and Saturn) are used in the calculation. If the reduced-accuracy option is set, only the Sun is used in the calculation. In both cases, if the observer is not at the geocenter, the deflection due to the Earth is included.
Corrects position vector for the deflection of light in the gravitational field of an arbitrary body. Position vector of observed object, with respect to origin at observer (or the geocenter), components in AU. Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, components in AU. Position vector of gravitating body, with respect to origin at solar system barycenter, components in AU. Reciprocal mass of gravitating body in solar mass units, that is, Sun mass / body mass. Position vector of observed object, with respect to origin at observer (or the geocenter), corrected for gravitational deflection, components in AU. This function valid for an observed body within the solar system as well as for a star. Compute the intermediate right ascension of the equinox at the input Julian date TDB Julian date. Equinox selection flag: mean pr true Selection for accuracy Intermediate right ascension of the equinox, in hours (+ or -). If 'equinox' = 1 (i.e true equinox), then the returned value is the equation of the origins. Compute the Julian date for a given calendar date (year, month, day, hour). Year number Month number Day number Fractional hour of the day Computed Julian date. This function makes no checks for a valid input calendar date. The input calendar date must be Gregorian. The input time value can be based on any UT-like time scale (UTC, UT1, TT, etc.) - output Julian date will have the same basis. Computes the geocentric position of a solar system body, as antedated for light-time. TDB Julian date of observation. Structure containing the designation for thesolar system body Position vector of observer (or the geocenter), with respect to origin at solar system barycenter, referred to ICRS axes, components in AU. First approximation to light-time, in days (can be set to 0.0 if unknown) Selection for accuracy Position vector of body, with respect to origin at observer (or the geocenter), referred to ICRS axes, components in AU. Final light-time, in days.
    0 ... everything OK
    1 ... algorithm failed to converge after 10 iterations
 ]]> 10 ... error is 10 + error from function 'SolarSystem'.
 
Determines the angle of an object above or below the Earth's limb (horizon). Position vector of observed object, with respect to origin at geocenter, components in AU. Position vector of observer, with respect to origin at geocenter, components in AU. Angle of observed object above (+) or below (-) limb in degrees. Nadir angle of observed object as a fraction of apparent radius of limb: 1.0 ... below the limb; = 1.0 ... on the limb; ]]> 1.0 ... above the limb The geometric limb is computed, assuming the Earth to be an airless sphere (no refraction or oblateness is included). The observer can be on or above the Earth. For an observer on the surface of the Earth, this function returns the approximate unrefracted altitude. Computes the local place of a solar system body. TT Julian date for local place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Specifies accuracy level Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'. True distance from Earth to planet in AU.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'; 
 ]]> 10 ... Error code from function 'Place'.
 
Computes the local place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for local place. delta_t (double) Difference TT-UT1 at 'JdTt', in seconds of time. catalog entry structure containing catalog data for the object in the ICRS Structure specifying the position of the observer Specifies accuracy level. Local right ascension in hours, referred to the 'local GCRS'. Local declination in degrees, referred to the 'local GCRS'.
    0 ... Everything OK
    1 ... Invalid value of 'Where' in structure 'Location'
 > 10 ... Error code from function 'MakeObject'
 > 20 ... Error code from function 'Place'.
 
Create a structure of type 'cat_entry' containing catalog data for a star or "star-like" object. Object name (50 characters maximum). Three-character catalog identifier (e.g. HIP = Hipparcos, TY2 = Tycho-2) Object number in the catalog. Right ascension of the object (hours). Declination of the object (degrees). Proper motion in right ascension (milliarcseconds/year). Proper motion in declination (milliarcseconds/year). Parallax (milliarcseconds). Radial velocity (kilometers/second). CatEntry3 structure containing the input data Makes a structure of type 'InSpace' - specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric velocity vector (x_dot, y_dot, z_dot) in km/s. InSpace structure containing the position and velocity of an observer situated on a near-Earth spacecraft Makes a structure of type 'object' - specifying a celestial object - based on the input parameters. Type of object: 0 ... major planet, Sun, or Moon; 1 ... minor planet; 2 ... object located outside the solar system (e.g. star, galaxy, nebula, etc.) Body number: For 'Type' = 0: Mercury = 1,...,Pluto = 9, Sun = 10, Moon = 11; For 'Type' = 1: minor planet numberFor 'Type' = 2: set to 0 (zero) Name of the object (50 characters maximum). Structure containing basic astrometric data for any celestial object located outside the solar system; the catalog data for a star Structure containing the object definition
 0 ... everything OK
 1 ... invalid value of 'Type'
 2 ... 'Number' out of range
 
Makes a structure of type 'observer' - specifying the location of the observer. Integer code specifying location of observer: 0: observer at geocenter; 1: observer on surface of earth; 2: observer on near-earth spacecraft Structure containing data for an observer's location on the surface of the Earth; used when 'Where' = 1 Structure containing an observer's location on a near-Earth spacecraft; used when 'Where' = 2 Structure specifying the location of the observer
 0 ... everything OK
 1 ... input value of 'Where' is out-of-range.
 
Makes a structure of type 'observer' specifying an observer at the geocenter. Structure specifying the location of the observer at the geocenter Makes a structure of type 'observer' specifying the position and velocity of an observer situated on a near-Earth spacecraft. Geocentric position vector (x, y, z) in km. Geocentric position vector (x, y, z) in km. Structure containing the position and velocity of an observer situated on a near-Earth spacecraft Both input vectors are with respect to true equator and equinox of date. Makes a structure of type 'observer' specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) longitude in degrees; east positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth Makes a structure of type 'on_surface' - specifying the location of and weather for an observer on the surface of the Earth. Geodetic (ITRS) latitude in degrees; north positive. Geodetic (ITRS) latitude in degrees; north positive. Height of the observer (meters). Temperature (degrees Celsius). Atmospheric pressure (millibars). Structure containing the location of and weather for an observer on the surface of the Earth. Compute the mean obliquity of the ecliptic. TDB Julian Date. Mean obliquity of the ecliptic in arcseconds. Computes the ICRS position of a star, given its apparent place at date 'JdTt'. Proper motion, parallax and radial velocity are assumed to be zero. TT Julian date of apparent place. Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. Specifies accuracy level ICRS right ascension in hours. ICRS declination in degrees.
    0 ... Everything OK
    1 ... Iterative process did not converge after 30 iterations; 
 > 10 ... Error from function 'Vector2RaDec'
 > 20 ... Error from function 'AppStar'.
 
Normalize angle into the range 0 angle (2 * pi). Input angle (radians). The input angle, normalized as described above (radians). Nutates equatorial rectangular coordinates from mean equator and equinox of epoch to true equator and equinox of epoch. TDB Julian date of epoch. Flag determining 'direction' of transformation; direction = 0 transformation applied, mean to true; direction != 0 inverse transformation applied, true to mean. Selection for accuracy Position vector, geocentric equatorial rectangular coordinates, referred to mean equator and equinox of epoch. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and equinox of epoch. Inverse transformation may be applied by setting flag 'direction' Returns the values for nutation in longitude and nutation in obliquity for a given TDB Julian date. TDB time in Julian centuries since J2000.0 Selection for accuracy Nutation in longitude in arcseconds. Nutation in obliquity in arcseconds. The nutation model selected depends upon the input value of 'Accuracy'. See notes below for important details. This function selects the nutation model depending first upon the input value of 'Accuracy'. If 'Accuracy' = 0 (full accuracy), the IAU 2000A nutation model is used. If 'Accuracy' = 1 a specially truncated (and therefore faster) version of IAU 2000A, called 'NU2000K' is used. Computes the apparent direction of a star or solar system body at a specified time and in a specified coordinate system. TT Julian date for place. Specifies the celestial object of interest Specifies the location of the observer Difference TT-UT1 at 'JdTt', in seconds of time. Code specifying coordinate system of the output position. 0 ... GCRS or "local GCRS"; 1 ... true equator and equinox of date; 2 ... true equator and CIO of date; 3 ... astrometric coordinates, i.e., without light deflection or aberration. Selection for accuracy Structure specifying object's place on the sky at time 'JdTt', with respect to the specified output coordinate system
 = 0         ... No problems.
 = 1         ... invalid value of 'CoordSys'
 = 2         ... invalid value of 'Accuracy'
 = 3         ... Earth is the observed object, and the observer is either at the geocenter or on the Earth's surface (not permitted)
 > 10,  40  ... 10 + error from function 'Ephemeris'
 > 40,  50  ... 40 + error from function 'GeoPosVel'
 > 50,  70  ... 50 + error from function 'LightTime'
 > 70,  80  ... 70 + error from function 'GravDef'
 > 80,  90  ... 80 + error from function 'CioLocation'
 > 90,  100 ... 90 + error from function 'CioBasis'
 
Values of 'location->where' and 'CoordSys' dictate the various standard kinds of place:
     Location->Where = 0 and CoordSys = 1: apparent place
     Location->Where = 1 and CoordSys = 1: topocentric place
     Location->Where = 0 and CoordSys = 0: virtual place
     Location->Where = 1 and CoordSys = 0: local place
     Location->Where = 0 and CoordSys = 3: astrometric place
     Location->Where = 1 and CoordSys = 3: topocentric astrometric place
 
Input value of 'DeltaT' is used only when 'Location->Where' equals 1 or 2 (observer is on surface of Earth or in a near-Earth satellite).
Precesses equatorial rectangular coordinates from one epoch to another. TDB Julian date of first epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of first epoch. TDB Julian date of second epoch. See remarks below. Position vector, geocentric equatorial rectangular coordinates, referred to mean dynamical equator and equinox of second epoch.
 0 ... everything OK
 1 ... Precession not to or from J2000.0; 'JdTdb1' or 'JdTdb2' not 2451545.0.
 
One of the two epochs must be J2000.0. The coordinates are referred to the mean dynamical equator and equinox of the two respective epochs.
Applies proper motion, including foreshortening effects, to a star's position. TDB Julian date of first epoch. Position vector at first epoch. Velocity vector at first epoch. TDB Julian date of second epoch. Position vector at second epoch. Converts equatorial spherical coordinates to a vector (equatorial rectangular coordinates). Right ascension (hours). Declination (degrees). Distance in AU Position vector, equatorial rectangular coordinates (AU). Predicts the radial velocity of the observed object as it would be measured by spectroscopic means. Specifies the celestial object of interest Geometric position vector of object with respect to observer, corrected for light-time, in AU. Velocity vector of object with respect to solar system barycenter, in AU/day. Velocity vector of observer with respect to solar system barycenter, in AU/day. Distance from observer to geocenter, in AU. Distance from observer to Sun, in AU. Distance from object to Sun, in AU. The observed radial velocity measure times the speed of light, in kilometers/second. Radial velocity is here defined as the radial velocity measure (z) times the speed of light. For a solar system body, it applies to a fictitious emitter at the center of the observed object, assumed massless (no gravitational red shift), and does not in general apply to reflected light. For stars, it includes all effects, such as gravitational red shift, contained in the catalog barycentric radial velocity measure, a scalar derived from spectroscopy. Nearby stars with a known kinematic velocity vector (obtained independently of spectroscopy) can be treated like solar system objects. Computes atmospheric refraction in zenith distance. Structure containing observer's location. 1 ... Use 'standard' atmospheric conditions; 2 ... Use atmospheric parameters input in the 'Location' structure. Observed zenith distance, in degrees. Atmospheric refraction, in degrees. This version computes approximate refraction for optical wavelengths. This function can be used for planning observations or telescope pointing, but should not be used for the reduction of precise observations. Computes the Greenwich sidereal time, either mean or apparent, at Julian date 'JdHigh' + 'JdLow'. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Difference TT-UT1 at 'JdHigh'+'JdLow', in seconds of time. 0 ... compute Greenwich mean sidereal time; 1 ... compute Greenwich apparent sidereal time Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy Greenwich apparent sidereal time, in hours.
          0 ... everything OK
          1 ... invalid value of 'Accuracy'
          2 ... invalid value of 'Method'
 > 10,  30 ... 10 + error from function 'CioRai'
 
The Julian date may be split at any point, but for highest precision, set 'JdHigh' to be the integral part of the Julian date, and set 'JdLow' to be the fractional part.
Transforms a vector from one coordinate system to another with same origin and axes rotated about the z-axis. Angle of coordinate system rotation, positive counterclockwise when viewed from +z, in degrees. Position vector. Position vector expressed in new coordinate system rotated about z by 'angle'. Converts angular quantities for stars to vectors. Catalog entry structure containing ICRS catalog data Position vector, equatorial rectangular coordinates, components in AU. Velocity vector, equatorial rectangular coordinates, components in AU/Day. Computes the Terrestrial Time (TT) or Terrestrial Dynamical Time (TDT) Julian date corresponding to a Barycentric Dynamical Time (TDB) Julian date. TDB Julian date. TT Julian date. Difference 'tdb_jd'-'tt_jd', in seconds. Expression used in this function is a truncated form of a longer and more precise series given in: Explanatory Supplement to the Astronomical Almanac, pp. 42-44 and p. 316. The result is good to about 10 microseconds. This function rotates a vector from the terrestrial to the celestial system. High-order part of UT1 Julian date. Low-order part of UT1 Julian date. Value of Delta T (= TT - UT1) at the input UT1 Julian date. Selection for method: 0 ... CIO-based method; 1 ... equinox-based method Selection for accuracy 0 ... The output vector is referred to GCRS axes; 1 ... The output vector is produced with respect to the equator and equinox of date. Conventionally-defined X coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of celestial intermediate pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes (terrestrial system) in the normal case where 'option' = 0. Position vector, geocentric equatorial rectangular coordinates, referred to GCRS axes (celestial system) or with respect to the equator and equinox of date, depending on 'Option'.
    0 ... everything is ok
    1 ... invalid value of 'Accuracy'
    2 ... invalid value of 'Method'
 > 10 ... 10 + error from function 'CioLocation'
 > 20 ... 20 + error from function 'CioBasis'
 
'x' = 'y' = 0 means no polar motion transformation. The 'option' flag only works for the equinox-based method.
Computes the position and velocity vectors of a terrestrial observer with respect to the center of the Earth. Structure containing observer's location Local apparent sidereal time at reference meridian in hours. Position vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU. Velocity vector of observer with respect to center of Earth, equatorial rectangular coordinates, referred to true equator and equinox of date, components in AU/day. If reference meridian is Greenwich and st=0, 'pos' is effectively referred to equator and Greenwich. This function ignores polar motion, unless the observer's longitude and latitude have been corrected for it, and variation in the length of day (angular velocity of earth). The true equator and equinox of date do not form an inertial system. Therefore, with respect to an inertial system, the very small velocity component (several meters/day) due to the precession and nutation of the Earth's axis is not accounted for here. Computes the topocentric place of a solar system body. TT Julian date for topocentric place. structure containing the body designation for the solar system body Difference TT-UT1 at 'JdTt', in seconds of time. Specifies the position of the observer Selection for accuracy Apparent right ascension in hours, referred to true equator and equinox of date. Apparent declination in degrees, referred to true equator and equinox of date. True distance from Earth to planet at 'JdTt' in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'Place'.
Computes the topocentric place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for topocentric place. Difference TT-UT1 at 'JdTt', in seconds of time. Catalog entry structure containing catalog data for the object in the ICRS Specifies the position of the observer Code specifying the relative accuracy of the output position. Topocentric right ascension in hours, referred to true equator and equinox of date 'JdTt'. Topocentric declination in degrees, referred to true equator and equinox of date 'JdTt'.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Where' in structure 'Location'.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'.
 
To transform a star's catalog quantities for a change of epoch and/or equator and equinox. Transformation option TT Julian date, or year, of input catalog data. An entry from the input catalog, with units as given in the struct definition TT Julian date, or year, of transformed catalog data. Three-character abbreviated name of the transformed catalog. The transformed catalog entry, with units as given in the struct definition
 = 0 ... Everything OK.
 = 1 ... Invalid value of an input date for option 2 or 3 (see Note 1 below).
 = 2 ... Catalogue ID exceeds three characters
 
Also used to rotate catalog quantities on the dynamical equator and equinox of J2000.0 to the ICRS or vice versa. 1. 'DateInCat' and 'DateNewCat' may be specified either as a Julian date (e.g., 2433282.5) or a Julian year and fraction (e.g., 1950.0). Values less than 10000 are assumed to be years. For 'TransformOption' = 2 or 'TransformOption' = 3, either 'DateInCat' or 'DateNewCat' must be 2451545.0 or 2000.0 (J2000.0). For 'TransformOption' = 4 and 'TransformOption' = 5, 'DateInCat' and 'DateNewCat' are ignored. 2. 'TransformOption' = 1 updates the star's data to account for the star's space motion between the first and second dates, within a fixed reference frame. 'TransformOption' = 2 applies a rotation of the reference frame corresponding to precession between the first and second dates, but leaves the star fixed in space. 'TransformOption' = 3 provides both transformations. 'TransformOption' = 4 and 'TransformOption' = 5 provide a a fixed rotation about very small angles (0.1 arcsecond) to take data from the dynamical system of J2000.0 to the ICRS ('TransformOption' = 4) or vice versa ('TransformOption' = 5). 3. For 'TransformOption' = 1, input data can be in any fixed reference system. for 'TransformOption' = 2 or 'TransformOption' = 3, this function assumes the input data is in the dynamical system and produces output in the dynamical system. for 'TransformOption' = 4, the input data must be on the dynamical equator and equinox of J2000.0. for 'TransformOption' = 5, the input data must be in the ICRS. 4. This function cannot be properly used to bring data from old star catalogs into the modern system, because old catalogs were compiled using a set of constants that are incompatible with modern values. In particular, it should not be used for catalogs whose positions and proper motions were derived by assuming a precession constant significantly different from the value implicit in function 'precession'.
Convert Hipparcos catalog data at epoch J1991.25 to epoch J2000.0, for use within NOVAS. An entry from the Hipparcos catalog, at epoch J1991.25, with all members having Hipparcos catalog units. See Note 1 below The transformed input entry, at epoch J2000.0. See Note 2 below To be used only for Hipparcos or Tycho stars with linear space motion. Both input and output data is in the ICRS. 1. Input (Hipparcos catalog) epoch and units: Epoch: J1991.25 Right ascension (RA): degrees Declination (Dec): degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second (not in catalog) 2. Output (modified Hipparcos) epoch and units: Epoch: J2000.0 Right ascension: hours Declination: degrees Proper motion in RA: milliarcseconds per year Proper motion in Dec: milliarcseconds per year Parallax: milliarcseconds Radial velocity: kilometers per second > Converts a vector in equatorial rectangular coordinates to equatorial spherical coordinates. Position vector, equatorial rectangular coordinates. Right ascension in hours. Declination in degrees.
 = 0 ... Everything OK.
 = 1 ... All vector components are zero; 'Ra' and 'Dec' are indeterminate.
 = 2 ... Both Pos[0] and Pos[1] are zero, but Pos[2] is nonzero; 'Ra' is indeterminate.
 
Compute the virtual place of a planet or other solar system body. TT Julian date for virtual place. structure containing the body designation for the solar system body( Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS. True distance from Earth to planet in AU.
 =  0 ... Everything OK.
 =  1 ... Invalid value of 'Type' in structure 'SsBody'.
 > 10 ... Error code from function 'Place'.
 
Computes the virtual place of a star at date 'JdTt', given its catalog mean place, proper motion, parallax, and radial velocity. TT Julian date for virtual place. catalog entry structure containing catalog data for the object in the ICRS Code specifying the relative accuracy of the output position. Virtual right ascension in hours, referred to the GCRS. Virtual declination in degrees, referred to the GCRS.
 =  0 ... Everything OK.
 > 10 ... Error code from function 'MakeObject'.
 > 20 ... Error code from function 'Place'
 
Corrects a vector in the ITRF (rotating Earth-fixed system) for polar motion, and also corrects the longitude origin (by a tiny amount) to the Terrestrial Intermediate Origin (TIO). TT or UT1 Julian date. direction (short int) Flag determining 'direction' of transformation; direction = 0 transformation applied, ITRS to terrestrial intermediate system direction != 0 inverse transformation applied, terrestrial intermediate system to ITRS Conventionally-defined X coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Conventionally-defined Y coordinate of Celestial Intermediate Pole with respect to ITRF pole, in arcseconds. Position vector, geocentric equatorial rectangular coordinates, referred to ITRF axes. Position vector, geocentric equatorial rectangular coordinates, referred to true equator and TIO. Get path to a system folder SUpply null / nothing to use "current user" returned string folder path Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c Indicates whether the folder should be created if it does not already exist. If this value is nonzero, the folder is created. If this value is zero, the folder is not created TRUE if successful; otherwise, FALSE. Loads a library DLL Full path to the file to load A pointer to the loaded DLL image This is a wrapper for the Windows kernel32 function LoadLibraryA Unloads a library DLL Pointer to the loaded library returned by the LoadLibrary function. True or false depending on whether the library was released. Return the value of DeltaT for the given Julian date Julian date for which the delta T value is required Double value of DeltaT (seconds) Valid between the years 1650 and 2050 Interface to the SOFA component Implemented by the SOFA component 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. 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: http://www.iausofa.org/ Static initialiser to load the SOFA DLL so that it is available for SOFA static functions such as GetBuiltInLeapSeconds Creates a new instance of the SOFA component Thrown if the SOFA support library DLL cannot be loaded Cleans up the SOFA object Major number of the SOFA issue currently used by this component. Integer issue number Release date of the SOFA issue currently used by this component. String date in format yyyy-mm-dd Release date of the revision to the SOFA Issue that is actually being used by this component. String date in format yyyy-mm-dd When a new issue is employed that doesn't yet have a revision, this mehtod will return the SofaIssueDate Convert degrees, arcminutes, arcseconds to radians. Sign: '-' = negative, otherwise positive Degrees Arcminutes Arcseconds Angle in radian Status: 0 = OK, 1 = ideg outside range 0-359, 2 = iamin outside range 0-59, 3 = asec outside range 0-59.999... Notes: The result is computed even if any of the range checks fail. Negative ideg, iamin and/or asec produce a warning status, but the absolute value is used in the conversion. If there are multiple errors, the status value reflects only the first, the smallest taking precedence. Normalize angle into the range 0 <= a < 2pi. Angle (radians) Angle in range 0-2pi Transform ICRS star data, epoch J2000.0, to CIRS using the SOFA Atci13 function. ICRS right ascension at J2000.0 (radians, Note 1) ICRS declination at J2000.0 (radians, Note 1) RA proper motion (radians/year; Note 2) Dec proper motion (radians/year) parallax (arcsec) radial velocity (km/s, +ve if receding) TDB as a 2-part Julian Date (Note 3) TDB as a 2-part Julian Date (Note 3) CIRS geocentric RA (radians) CIRS geocentric Dec (radians) equation of the origins (ERA-GST, Note 5) Notes: 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. The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.8g could be expressed in any of these ways, among others:
Date 1 Date 2 Method
2450123.8 0.0 JD method
2451545.0 -1421.3 J2000 method
2400000.5 50123.2 MJD method
2450123.5 0.2 Date and 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 and 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.
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. 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 Anp function can then be applied, as required, to keep the result in the conventional 0-2pi range.)
ICRS RA,Dec to observed place using the SOFA Atco13 function. ICRS RA (radians, note 1) ICRS Dec (radians, note 2) RA Proper motion (radians/year) Dec Proper motion (radians/year Parallax (arcsec) Radial veolcity (Km/s, +ve if receding UTC Julian date (part 1, notes 3,4) UTC Julian date (part 2, notes 3,4) UT1 - UTC (seonds, note 5) Site longitude (radians, note 6) Site Latitude (radians, note 6) Site Height (meters, notes 6,8) Polar motion co-ordinate (radians, note 7) Polar motion co-ordinate (radians,note 7) Site Presure (hPa = mB, note 8) Site Temperature (C) Site relative humidity (fraction in the range: 0.0 to 1.0) Observation wavem=length (micrometres, note 9) Observed Azimuth (radians) Observed Zenith distance (radians) Observed Hour Angle (radians) Observed Declination (radians) Observed RA (radians) Equation of the origins (ERA-GST) +1 = dubious year (Note 4), 0 = OK, -1 = unacceptable date Notes: 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. The proper motion in RA is dRA/dt rather than cos(Dec)*dRA/dt. 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. 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. 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. 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. 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. 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.
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). 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. "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. 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.
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). Time scale ID (Note 1) Year in Gregorian calendar (Note 2) Month in Gregorian calendar (Note 2) Day in Gregorian calendar (Note 2) Hour Minute Seconds 2-part Julian Date (Notes 3, 4) 2-part Julian Date (Notes 3, 4) 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: Scale identifies the time scale. Only the value "UTC" (in upper case) is significant, and enables handling of leap seconds (see Note 4). For calendar conventions and limitations, see iauCal2jd. 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. 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. 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). 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. 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. Equation of the origins, IAU 2006 precession and IAU 2000A nutation. TT as a 2-part Julian Date (Note 1) TT as a 2-part Julian Date (Note 1) Equation of the origins in radians (Note 2) Notes: 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:
Date 1 Date 2 Method
2450123.7 0.0 JD method
2451545.0 -1421.3 J2000 method
2400000.5 50123.2 MJD method
2450123.5 0.2 Date and 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 and time methods are both good compromises between resolution and convenience. For most applications of this function the choice will not be at all critical.
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).
Transform star RA,Dec from geocentric CIRS to ICRS astrometric using the SOFA Atic13 function. CIRS geocentric RA (radians) CIRS geocentric Dec (radians) TDB as a 2-part Julian Date (Note 1) TDB as a 2-part Julian Date (Note 1) ICRS astrometric RA (radians) ICRS astrometric Dec (radians) equation of the origins (ERA-GST, Note 4) Notes: The TDB date date1+date2 is a Julian Date, apportioned in any convenient way between the two arguments. For example, JD(TDB)=2450123.8g could be expressed in any of these ways, among others:
Date 1 Date 2 Method
2450123.8 0.0 JD method
2451545.0 -1421.3 J2000 method
2400000.5 50123.2 MJD method
2450123.5 0.2 Date and 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 and 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.
Iterative techniques are used for the aberration and light deflection corrections so that the functions Atic13 and Atci13 are accurate inverses; even at the edge of the Sun's disk the discrepancy is only about 1 nanoarcsecond. 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. 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 Anp function can then be applied, as required, to keep the result in the conventional 0-2pi range.)
CIRS RA,Dec to observed place using the SOFA Atio13 funciton. CIRS right ascension (CIO-based, radians) CIRS declination (radians) UTC as a 2-part quasi Julian Date (Notes 1,2) UTC as a 2-part quasi Julian Date (Notes 1,2) UT1-UTC (seconds, Note 3) longitude (radians, east +ve, Note 4) geodetic latitude (radians, Note 4) height above ellipsoid (m, geodetic Notes 4,6) polar motion coordinates (radians, Note 5) polar motion coordinates (radians, Note 5) pressure at the observer (hPa = mB, Note 6) ambient temperature at the observer (deg C) relative humidity at the observer (range 0-1) wavelength (micrometers, Note 7) observed azimuth (radians: N=0,E=90) observed zenith distance (radians) observed hour angle (radians) observed declination (radians) observed right ascension (CIO-based, radians) Status: +1 = dubious year (Note 2), 0 = OK, -1 = unacceptable date Notes: 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. 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. 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. 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. 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. 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.
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). "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. 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. The complementary functions iauAtio13 and iauAtoi13 are self-consistent to better than 1 microarcsecond all over the celestial sphere. 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.
Observed place at a groundbased site to to ICRS astrometric RA,Dec using the SOFA Atoc13 function. type of coordinates - "R", "H" or "A" (Notes 1,2) observed Az, HA or RA (radians; Az is N=0,E=90) observed ZD or Dec (radians) UTC as a 2-part quasi Julian Date (Notes 3,4) UTC as a 2-part quasi Julian Date (Notes 3,4) UT1-UTC (seconds, Note 5) longitude (radians, east +ve, Note 6) geodetic latitude (radians, Note 6) height above ellipsoid (m, geodetic Notes 6,8) polar motion coordinates (radians, Note 7) polar motion coordinates (radians, Note 7) pressure at the observer (hPa = mB, Note 8) ambient temperature at the observer (deg C) relative humidity at the observer (range 0-1) wavelength (micrometers, Note 9) ICRS astrometric RA (radians) ICRS astrometric Dec (radians) Status: +1 = dubious year (Note 4), 0 = OK, -1 = unacceptable date Notes: "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. 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. 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. 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. 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. 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. 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. 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.
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). 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. 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.
Observed place to CIRS using the SOFA Atoi13 function. type of coordinates - "R", "H" or "A" (Notes 1,2) observed Az, HA or RA (radians; Az is N=0,E=90) observed ZD or Dec (radians) UTC as a 2-part quasi Julian Date (Notes 3,4) UTC as a 2-part quasi Julian Date (Notes 3,4) UT1-UTC (seconds, Note 5) longitude (radians, east +ve, Note 6) geodetic latitude (radians, Note 6) height above the ellipsoid (meters, Notes 6,8) polar motion coordinates (radians, Note 7) polar motion coordinates (radians, Note 7) pressure at the observer (hPa = mB, Note 8) ambient temperature at the observer (deg C) relative humidity at the observer (range 0-1) wavelength (micrometers, Note 9) CIRS right ascension (CIO-based, radians) CIRS declination (radians) Status: +1 = dubious year (Note 2), 0 = OK, -1 = unacceptable date Notes: "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. 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. 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. 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. 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. 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. 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. 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.
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). 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. 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.
Time scale transformation: International Atomic Time, TAI, to Coordinated Universal Time, UTC. TAI as a 2-part Julian Date (Note 1) TAI as a 2-part Julian Date (Note 1) UTC as a 2-part quasi Julian Date (Notes 1-3) UTC as a 2-part quasi Julian Date (Notes 1-3) Status: +1 = dubious year (Note 4), 0 = OK, -1 = unacceptable date Notes: tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned utc1 and utc2 form an analogous pair, except that a special convention is used, to deal with the problem of leap seconds - see the next note. 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. 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. The function iauD2dtf can be used to transform the UTC quasi-JD into calendar date and clock time, including UTC leap second handling. 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. Time scale transformation: International Atomic Time, TAI, to Terrestrial Time, TT. TAI as a 2-part Julian Date TAI as a 2-part Julian Date TT as a 2-part Julian Date TT as a 2-part Julian Date Status: 0 = OK Notes: tai1+tai2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tai1 is the Julian Day Number and tai2 is the fraction of a day. The returned tt1,tt2 follow suit. Time scale transformation: Terrestrial Time, TT, to International Atomic Time, TAI. TT as a 2-part Julian Date TT as a 2-part Julian Date TAI as a 2-part Julian Date TAI as a 2-part Julian Date Status: 0 = OK Note tt1+tt2 is Julian Date, apportioned in any convenient way between the two arguments, for example where tt1 is the Julian Day Number and tt2 is the fraction of a day. The returned tai1,tai2 follow suit. Convert hours, minutes, seconds to radians. sign: '-' = negative, otherwise positive Hours Minutes Seconds Angle in radians Status: 0 = OK, 1 = ihour outside range 0-23, 2 = imin outside range 0-59, 3 = sec outside range 0-59.999... Notes: The result is computed even if any of the range checks fail. Negative ihour, imin and/or sec produce a warning status, but the absolute value is used in the conversion. If there are multiple errors, the status value reflects only the first, the smallest taking precedence. Time scale transformation: Coordinated Universal Time, UTC, to International Atomic Time, TAI. UTC as a 2-part quasi Julian Date (Notes 1-4) UTC as a 2-part quasi Julian Date (Notes 1-4) TAI as a 2-part Julian Date (Note 5) TAI as a 2-part Julian Date (Note 5) Status: +1 = dubious year (Note 3) 0 = OK -1 = unacceptable date Notes: 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. 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. 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. 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. The function iauDtf2d converts from calendar date and time of day into 2-part Julian Date, and in the case of UTC implements the leap-second-ambiguity convention described above. The returned TAI1,TAI2 are such that their sum is the TAI Julian Date. Get path to a system folder SUpply null / nothing to use "current user" returned string folder path Folder Number from CSIDL enumeration e.g. CSIDL_PROGRAM_FILES_COMMONX86 = 44 = 0x2c Indicates whether the folder should be created if it does not already exist. If this value is nonzero, the folder is created. If this value is zero, the folder is not created TRUE if successful; otherwise, FALSE. Loads a library DLL Full path to the file to load A pointer to the loaded DLL image This is a wrapper for the Windows kernel32 function LoadLibraryA Unloads a library DLL Pointer to the loaded library returned by the LoadLibrary function. True or false depending on whether the library was released. Indicates whether we are running as a 32bit or 64bit application True if the application is 64bit, False for 32bit Calculates the value of DeltaT over a wide range of hstoric and future Julian dates Julian Date of interest DelatT value at the given Julian date Post 2011, calculation is effected throgh a 2nd order polynomial best fit to real DeltaT data from: http://maia.usno.navy.mil/ser7/deltat.data together with projections of DeltaT from: http://maia.usno.navy.mil/ser7/deltat.preds The analysis spreadsheets for DeltaT values at dates post 2011 are stored in the \NOVAS\DeltaT Predictions folder of the ASCOM source tree. To esnure that leap second and DeltaUT1 transitions are handled correctly and occur at 00:00:00 UTC, the supplied Julian date should be in UTC time