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