libnova.h | libnova.h | |||
---|---|---|---|---|
skipping to change at line 42 | skipping to change at line 42 | |||
* - Dynamical Time | * - Dynamical Time | |||
* - Julian Day | * - Julian Day | |||
* - Precession | * - Precession | |||
* - Proper Motion | * - Proper Motion | |||
* - Sidereal Time | * - Sidereal Time | |||
* - Solar Coordinates (using VSOP87) | * - Solar Coordinates (using VSOP87) | |||
* - Coordinate Transformations | * - Coordinate Transformations | |||
* - Planetary Positions (Mercury - Neptune using VSOP87) | * - Planetary Positions (Mercury - Neptune using VSOP87) | |||
* - Planetary Magnitude, illuminated disk and phase angle. | * - Planetary Magnitude, illuminated disk and phase angle. | |||
* - Lunar Position (using ELP82), phase angle. | * - Lunar Position (using ELP82), phase angle. | |||
* - Elliptic Motion of bodies (Asteroid + Comet positional and orbit data) | ||||
* - Asteroid + Comet magnitudes | ||||
* - Parabolic Motion of bodies | ||||
* - Orbit velocities and lengths | ||||
* - Atmospheric refraction | ||||
* - Rise, Set and Transit times. | ||||
* - Semidiameters of the Sun, Moon, Planets and asteroids. | ||||
* | * | |||
* \section docs Documentation | * \section docs Documentation | |||
* API documentation for libnova is included in the source. It can also be f ound in this website and an offline tarball is available <A href="http://li bnova.sf.net/libnovadocs.tar.gz">here</A>. | * API documentation for libnova is included in the source. It can also be f ound in this website and an offline tarball is available <A href="http://li bnova.sf.net/libnovadocs.tar.gz">here</A>. | |||
* | * | |||
* \section download Download | * \section download Download | |||
* The latest released version of libnova is 0.4.0 and was released on the 2 nd Sept 2002. | * The latest released version of libnova is 0.5.0 and was released on the 1 3th Oct 2002. | |||
* It is available for download <A href="http://sf.net/project/showfiles.php ?group_id=57697">here.</A> | * It is available for download <A href="http://sf.net/project/showfiles.php ?group_id=57697">here.</A> | |||
* | * | |||
* \section cvs CVS | * \section cvs CVS | |||
* The latest CVS version of libnova is available via CVS <A href="http://sf .net/cvs/?group_id=57697">here.</A> | * The latest CVS version of libnova is available via CVS <A href="http://sf .net/cvs/?group_id=57697">here.</A> | |||
* | * | |||
* \section licence Licence | * \section licence Licence | |||
* libnova is released under the <A href="http://www.gnu.org">GNU</A> LGPL. | * libnova is released under the <A href="http://www.gnu.org">GNU</A> LGPL. | |||
* | * | |||
* \section help Help | * \section help Help | |||
* If you are interested in helping in the future development of libnova, th en please get in touch. | * If you are interested in helping in the future development of libnova, th en please get in touch. | |||
skipping to change at line 161 | skipping to change at line 168 | |||
* Human readable Horizontal Coordinates. | * Human readable Horizontal Coordinates. | |||
*/ | */ | |||
struct lnh_hrz_posn | struct lnh_hrz_posn | |||
{ | { | |||
struct ln_dms az; /*!< AZ. Object azimuth. */ | struct ln_dms az; /*!< AZ. Object azimuth. */ | |||
struct ln_dms alt; /*!< ALT. Object altitude. */ | struct ln_dms alt; /*!< ALT. Object altitude. */ | |||
}; | }; | |||
/*! \struct lnh_lnlat_posn | /*! \struct lnh_lnlat_posn | |||
** \brief Latitude and Longitude. | ** \brief Ecliptical (or celestial) Latitude and Longitude. | |||
* | * | |||
* Human readable Longitude and Latitude. | * Human readable Ecliptical (or celestial) Longitude and Latitude. | |||
*/ | */ | |||
struct lnh_lnlat_posn | struct lnh_lnlat_posn | |||
{ | { | |||
struct ln_dms lng; /*!< longitude. Object longitude */ | struct ln_dms lng; /*!< longitude. Object longitude */ | |||
struct ln_dms lat; /*!< latitude. Object latitude */ | struct ln_dms lat; /*!< latitude. Object latitude */ | |||
}; | }; | |||
/*! \struct ln_equ_posn | /*! \struct ln_equ_posn | |||
** \brief Equatorial Coordinates. | ** \brief Equatorial Coordinates. | |||
skipping to change at line 201 | skipping to change at line 208 | |||
* Angles are expressed in degrees. | * Angles are expressed in degrees. | |||
*/ | */ | |||
struct ln_hrz_posn | struct ln_hrz_posn | |||
{ | { | |||
double az; /*!< AZ. Object azimuth. */ | double az; /*!< AZ. Object azimuth. */ | |||
double alt; /*!< ALT. Object altitude. */ | double alt; /*!< ALT. Object altitude. */ | |||
}; | }; | |||
/*! \struct ln_lnlat_posn | /*! \struct ln_lnlat_posn | |||
** \brief Longitude and Latitude. | ** \brief Ecliptical (or celestial) Longitude and Latitude. | |||
* | * | |||
* The Latitude and Longitude of and object. | * The Ecliptical (or celestial) Latitude and Longitude of and object. | |||
* | * | |||
* Angles are expressed in degrees. | * Angles are expressed in degrees. | |||
*/ | */ | |||
struct ln_lnlat_posn | struct ln_lnlat_posn | |||
{ | { | |||
double lng; /*!< longitude. Object longitude */ | double lng; /*!< longitude. Object longitude */ | |||
double lat; /*!< latitude. Object latitude */ | double lat; /*!< latitude. Object latitude */ | |||
}; | }; | |||
skipping to change at line 230 | skipping to change at line 237 | |||
* Angles are expressed in degrees. | * Angles are expressed in degrees. | |||
* Radius vector is in AU. | * Radius vector is in AU. | |||
*/ | */ | |||
struct ln_helio_posn | struct ln_helio_posn | |||
{ | { | |||
double L; /*!< Heliocentric longitude */ | double L; /*!< Heliocentric longitude */ | |||
double B; /*!< Heliocentric latitude */ | double B; /*!< Heliocentric latitude */ | |||
double R; /*!< Heliocentric radius vector */ | double R; /*!< Heliocentric radius vector */ | |||
}; | }; | |||
/*! \struct ln_geo_posn | /*! \struct ln_rect_posn | |||
* \brief Geocentric position | * \brief Rectangular coordinates | |||
* | * | |||
* Rectangular Coordinates of a body. These coordinates can be either | ||||
* geocentric or heliocentric. | ||||
* | ||||
* A heliocentric position is an objects position relative to the | ||||
* centre of the Sun. | ||||
* A geocentric position is an objects position relative to the centre | * A geocentric position is an objects position relative to the centre | |||
* of the Earth. | * of the Earth. | |||
* | * | |||
* Position is in units of AU for planets and in units of km | * Position is in units of AU for planets and in units of km | |||
* for the Moon. | * for the Moon. | |||
*/ | */ | |||
struct ln_geo_posn | struct ln_rect_posn | |||
{ | { | |||
double X; /*!< Geocentric X coordinate */ | double X; /*!< Rectangular X coordinate */ | |||
double Y; /*!< Geocentric Y coordinate */ | double Y; /*!< Rectangular Y coordinate */ | |||
double Z; /*!< Geocentric Z coordinate */ | double Z; /*!< Rectangular Z coordinate */ | |||
}; | }; | |||
/*! | /*! | |||
* \struct ln_orbit | * \struct ln_ell_orbit | |||
* \brief Orbital elements | * \brief Elliptic Orbital elements | |||
* | * | |||
* TODO. | * TODO. | |||
* Angles are expressed in degrees. | * Angles are expressed in degrees. | |||
*/ | */ | |||
struct ln_orbit | struct ln_ell_orbit | |||
{ | { | |||
double a; /*!< Semi major axis, in AU */ | double a; /*!< Semi major axis, in AU */ | |||
double e; /*!< Eccentricity */ | double e; /*!< Eccentricity */ | |||
double i; /*!< Inclination */ | double i; /*!< Inclination in degrees */ | |||
double w; /*!< Argument of perihelion */ | double w; /*!< Argument of perihelion in degrees */ | |||
double omega; /*!< Longitude of ascending node */ | double omega; /*!< Longitude of ascending node in degrees*/ | |||
double n; /*!< Mean motion, in degrees/day */ | double n; /*!< Mean motion, in degrees/day */ | |||
double JD; /*!< Epoch of orbital elements, in julian day */ | ||||
}; | ||||
/*! | ||||
* \struct ln_par_orbit | ||||
* \brief Parabolic Orbital elements | ||||
* | ||||
* TODO. | ||||
* Angles are expressed in degrees. | ||||
*/ | ||||
struct ln_par_orbit | ||||
{ | ||||
double q; /*!< Perihelion distance in AU */ | ||||
double i; /*!< Inclination in degrees */ | ||||
double w; /*!< Argument of perihelion in degrees */ | ||||
double omega; /*!< Longitude of ascending node in degrees*/ | ||||
double JD; /*!< Time of passage in Perihelion, in julian day */ | ||||
}; | ||||
/*! | ||||
* \struct ln_rst_time | ||||
* \brief Rise, Set and Transit times. | ||||
* | ||||
* Contains the Rise, Set and transit times for a body. | ||||
* | ||||
* Angles are expressed in degrees. | ||||
*/ | ||||
struct ln_rst_time | ||||
{ | ||||
double rise; /*!< Rise time in JD */ | ||||
double set; /*!< Set time in JD */ | ||||
double transit; /*!< Transit time in JD */ | ||||
}; | ||||
/*! | ||||
* \struct ln_nutation | ||||
* \brief Nutation in longitude, ecliptic and obliquity. | ||||
* | ||||
* Contains Nutation in longitude, obliquity and ecliptic obliquity. | ||||
* | ||||
* Angles are expressed in degrees. | ||||
*/ | ||||
struct ln_nutation | ||||
{ | ||||
double longitude; /*!< Nutation in longitude */ | ||||
double obliquity; /*!< Nutation in obliquity */ | ||||
double ecliptic; /*!< Obliquity of the ecliptic */ | ||||
}; | }; | |||
/*! \defgroup version Libnova library version information | /*! \defgroup version Libnova library version information | |||
*/ | */ | |||
/*! \fn const char * get_ln_version (void) | /*! \fn const char * get_ln_version (void) | |||
* \brief Library Version Number | * \brief Library Version Number | |||
* \ingroup version | * \ingroup version | |||
*/ | */ | |||
const char * get_ln_version (void); | const char * get_ln_version (void); | |||
skipping to change at line 323 | skipping to change at line 382 | |||
* \ingroup calendar | * \ingroup calendar | |||
*/ | */ | |||
void get_timet_from_julian (double JD, time_t * time); | void get_timet_from_julian (double JD, time_t * time); | |||
/*! \defgroup misc Misc Functions | /*! \defgroup misc Misc Functions | |||
*/ | */ | |||
/*! \fn double get_dec_location(char * s) | /*! \fn double get_dec_location(char * s) | |||
* \ingroup misc | * \ingroup misc | |||
* \brief Obtains Latitude, Longitude, RA or Declination from a string. | * \brief Obtains Latitude, Longitude, RA or Declination from a string. | |||
* | ||||
* If the last char is N/S doesn't accept more than 90 degrees. | ||||
* If it is E/W doesn't accept more than 180 degrees. | ||||
* If they are hours don't accept more than 24:00 | ||||
* | ||||
* Any position can be expressed as follows: | ||||
* (please use a 8 bits charset if you want | ||||
* to view the degrees separator char '0xba') | ||||
* | ||||
* 42.30.35,53 | ||||
* 90 | ||||
* 42 | ||||
* 42 | ||||
* 42 | ||||
* - 42.30.35.53 | ||||
* 42:30:35.53 S | ||||
* + 42.30.35.53 | ||||
* +42 | ||||
* 23h36'45,0 | ||||
* | ||||
* | ||||
* 42:30:35.53 S = -42 | ||||
* + 42 30.35.53 S the same previous position, the plus (+) sign is | ||||
* considered like an error, the last 'S' has precedence over the sign | ||||
* | ||||
* 90 | ||||
* | ||||
*/ | */ | |||
double get_dec_location(char *s); | double get_dec_location(char *s); | |||
/*! \fn char * get_humanr_location(double location) | /*! \fn char * get_humanr_location(double location) | |||
* \ingroup misc | * \ingroup misc | |||
* \brief obtains a human readable location in the form: dd | * \brief Obtains a human readable location in the form: dd | |||
*/ | */ | |||
char *get_humanr_location(double location); | char *get_humanr_location(double location); | |||
/*! | /*! | |||
* \defgroup dynamical Dynamical Time | * \defgroup dynamical Dynamical Time | |||
* | * | |||
* TODO | * TODO | |||
*/ | */ | |||
skipping to change at line 396 | skipping to change at line 428 | |||
*/ | */ | |||
double get_mean_sidereal_time (double JD); | double get_mean_sidereal_time (double JD); | |||
/*! \fn get_apparent_sidereal_time (double JD) | /*! \fn get_apparent_sidereal_time (double JD) | |||
* \brief Calculate apparent sidereal time from date. | * \brief Calculate apparent sidereal time from date. | |||
* \ingroup sidereal | * \ingroup sidereal | |||
*/ | */ | |||
double get_apparent_sidereal_time (double JD); | double get_apparent_sidereal_time (double JD); | |||
/*! \defgroup misc Misc. Functions | ||||
* | ||||
* Misc functions. | ||||
*/ | ||||
/* | ||||
* \fn double get_rect_distance (struct ln_rect_posn * a, struct ln_rect_pos | ||||
n * b) | ||||
* \ingroup misc | ||||
*/ | ||||
double get_rect_distance (struct ln_rect_posn * a, struct ln_rect_posn * b) | ||||
; | ||||
/*! \defgroup conversion General Conversion Functions | /*! \defgroup conversion General Conversion Functions | |||
* | * | |||
* Conversion from one libnova type to another. | * Conversion from one libnova type to another. | |||
*/ | */ | |||
/*! \fn double rad_to_deg (double radians) | /*! \fn double rad_to_deg (double radians) | |||
* \brief radians to degrees | * \brief radians to degrees | |||
* \ingroup conversion | * \ingroup conversion | |||
*/ | */ | |||
double rad_to_deg (double radians); | inline double rad_to_deg (double radians); | |||
/*! \fn double deg_to_rad (double radians) | /*! \fn double deg_to_rad (double radians) | |||
* \brief degrees to radians | * \brief degrees to radians | |||
* \ingroup conversion | * \ingroup conversion | |||
*/ | */ | |||
double deg_to_rad (double degrees); | inline double deg_to_rad (double degrees); | |||
/*! \fn double hms_to_deg (struct ln_hms * hms) | /*! \fn double hms_to_deg (struct ln_hms * hms) | |||
* \brief hours to degrees | * \brief hours to degrees | |||
* \ingroup conversion | * \ingroup conversion | |||
*/ | */ | |||
double hms_to_deg (struct ln_hms * hms); | double hms_to_deg (struct ln_hms * hms); | |||
/*! \fn void deg_to_hms (double degrees, struct ln_hms * hms) | /*! \fn void deg_to_hms (double degrees, struct ln_hms * hms) | |||
* \brief degrees to hours | * \brief degrees to hours | |||
* \ingroup conversion | * \ingroup conversion | |||
skipping to change at line 522 | skipping to change at line 565 | |||
*/ | */ | |||
double range_degrees (double angle); | double range_degrees (double angle); | |||
/*! \fn void range_radians (double angle) | /*! \fn void range_radians (double angle) | |||
* \brief puts a large angle in the correct range 0 - 2PI radians | * \brief puts a large angle in the correct range 0 - 2PI radians | |||
* \ingroup conversion | * \ingroup conversion | |||
*/ | */ | |||
double range_radians (double angle); | double range_radians (double angle); | |||
double range_radians2 (double angle); | double range_radians2 (double angle); | |||
/* | ||||
* \fn double get_light_time (double dist) | ||||
* \brief Convert units of AU into light days. | ||||
* \ingroup conversion | ||||
*/ | ||||
double get_light_time (double dist); | ||||
/*! \defgroup transform Transformation of Coordinates | /*! \defgroup transform Transformation of Coordinates | |||
* | * | |||
* Transformations from one coordinate system to another. | * Transformations from one coordinate system to another. | |||
*/ | */ | |||
/*! \fn void get_hrz_from_equ (struct ln_equ_posn * object, struct ln_lnlat _posn * observer, double JD, struct ln_hrz_posn *position); | /*! \fn void get_hrz_from_equ (struct ln_equ_posn * object, struct ln_lnlat _posn * observer, double JD, struct ln_hrz_posn *position); | |||
* \brief Calculate horizontal coordinates from equatorial coordinates | * \brief Calculate horizontal coordinates from equatorial coordinates | |||
* \ingroup transform | * \ingroup transform | |||
*/ | */ | |||
/* Equ 12.5,12.6 pg 88 */ | /* Equ 12.5,12.6 pg 88 */ | |||
skipping to change at line 568 | skipping to change at line 618 | |||
* \brief Calculate equatorial coordinates from horizontal coordinates | * \brief Calculate equatorial coordinates from horizontal coordinates | |||
* \ingroup transform | * \ingroup transform | |||
*/ | */ | |||
/* Pg 89 */ | /* Pg 89 */ | |||
void get_equ_from_hrz | void get_equ_from_hrz | |||
(struct ln_hrz_posn *object, | (struct ln_hrz_posn *object, | |||
struct ln_lnlat_posn * observer, | struct ln_lnlat_posn * observer, | |||
double JD, | double JD, | |||
struct ln_equ_posn * position); | struct ln_equ_posn * position); | |||
/*! \fn void get_geo_from_helio (struct ln_helio_posn *object, double JD, s truct ln_geo_posn * position); | /*! \fn void get_rect_from_helio (struct ln_helio_posn *object, double JD, struct ln_geo_posn * position); | |||
* \brief Calculate geocentric coordinates from heliocentric coordinates | * \brief Calculate geocentric coordinates from heliocentric coordinates | |||
* \ingroup transform | * \ingroup transform | |||
*/ | */ | |||
/* Pg ?? */ | /* Pg ?? */ | |||
void get_geo_from_helio | void get_rect_from_helio | |||
(struct ln_helio_posn *object, | (struct ln_helio_posn *object, | |||
double JD, | double JD, | |||
struct ln_geo_posn * position); | struct ln_rect_posn * position); | |||
/*! \fn void get_ecl_from_rect (struct ln_rect_posn * rect, struct ln_lnlat | ||||
_posn * posn) | ||||
* \ingroup transform | ||||
* Transform an objects rectangular coordinates into ecliptical coordinates. | ||||
*/ | ||||
/* Equ 33.2 | ||||
*/ | ||||
void get_ecl_from_rect (struct ln_rect_posn * rect, struct ln_lnlat_posn * | ||||
posn); | ||||
/*! \defgroup VSOP87 VSOP87 Theory | /*! \defgroup VSOP87 VSOP87 Theory | |||
* | * | |||
* Thanks to Messrs. Bretagnon and Francou for publishing planetary | * Thanks to Messrs. Bretagnon and Francou for publishing planetary | |||
* solution VSOP87. | * solution VSOP87. | |||
*/ | */ | |||
/*! \fn void vsop87_to_fk5 (struct ln_helio_posn * position, double JD); | /*! \fn void vsop87_to_fk5 (struct ln_helio_posn * position, double JD); | |||
* \ingroup VSOP87 | * \ingroup VSOP87 | |||
* \brief Transform from VSOP87 to FK5 reference system. | * \brief Transform from VSOP87 to FK5 reference system. | |||
skipping to change at line 613 | skipping to change at line 671 | |||
void get_earth_centre_dist (float height, double latitude, double * p_sin_o , double * p_cos_o); | void get_earth_centre_dist (float height, double latitude, double * p_sin_o , double * p_cos_o); | |||
/*! \defgroup nutation Nutation | /*! \defgroup nutation Nutation | |||
* | * | |||
* Nutation is a period oscillation of the Earths rotational axis around it' s | * Nutation is a period oscillation of the Earths rotational axis around it' s | |||
* mean position. | * mean position. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn void get_nutation (double JD, double * longitude, double * obliquit y, double * ecliptic); | /*! \fn void get_nutation (double JD, struct ln_nutation * nutation); | |||
* \ingroup nutation | * \ingroup nutation | |||
* \brief Calculate nutation. | * \brief Calculate nutation. | |||
*/ | */ | |||
void get_nutation (double JD, double * longitude, double * obliquity, doubl e * ecliptic); | void get_nutation (double JD, struct ln_nutation * nutation); | |||
/*! \defgroup apparent Apparent position of a Star | /*! \defgroup apparent Apparent position of a Star | |||
* | * | |||
* The apparent position of a star is it's position as seen from | * The apparent position of a star is it's position as seen from | |||
* the centre of the Earth. | * the centre of the Earth. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn void get_apparent_posn (struct ln_equ_posn * mean_position, struct ln_equ_posn * proper_motion, double JD, struct ln_equ_posn * position); | /*! \fn void get_apparent_posn (struct ln_equ_posn * mean_position, struct ln_equ_posn * proper_motion, double JD, struct ln_equ_posn * position); | |||
skipping to change at line 719 | skipping to change at line 777 | |||
struct ln_lnlat_posn * position); | struct ln_lnlat_posn * position); | |||
/*! \defgroup solar Solar. | /*! \defgroup solar Solar. | |||
* | * | |||
* Calculate solar ecliptical/equatorial coordinates for a given julian date . | * Calculate solar ecliptical/equatorial coordinates for a given julian date . | |||
* Accuracy 0.01 arc second error - uses VSOP87 solution. | * Accuracy 0.01 arc second error - uses VSOP87 solution. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_solar_rst (double JD, struct ln_lnlat_posn * observer, s | ||||
truct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for the Sun. | ||||
* \ingroup solar | ||||
*/ | ||||
int get_solar_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rs | ||||
t_time * rst); | ||||
/*! \fn void get_geom_solar_coords (double JD, struct ln_helio_posn * posit ion); | /*! \fn void get_geom_solar_coords (double JD, struct ln_helio_posn * posit ion); | |||
* \brief Calculate solar geometric coordinates. | * \brief Calculate solar geometric coordinates. | |||
* \ingroup solar | * \ingroup solar | |||
*/ | */ | |||
void get_geom_solar_coords | void get_geom_solar_coords | |||
(double JD, | (double JD, | |||
struct ln_helio_posn * position); | struct ln_helio_posn * position); | |||
/*! \fn void get_equ_solar_coords (double JD, struct ln_equ_posn * position ); | /*! \fn void get_equ_solar_coords (double JD, struct ln_equ_posn * position ); | |||
* \brief Calculate apparent equatorial coordinates. | * \brief Calculate apparent equatorial coordinates. | |||
skipping to change at line 747 | skipping to change at line 811 | |||
* \ingroup solar | * \ingroup solar | |||
*/ | */ | |||
void get_ecl_solar_coords | void get_ecl_solar_coords | |||
(double JD, | (double JD, | |||
struct ln_lnlat_posn * position); | struct ln_lnlat_posn * position); | |||
/*! \fn void get_geo_solar_coords (double JD, struct ln_geo_posn * position ) | /*! \fn void get_geo_solar_coords (double JD, struct ln_geo_posn * position ) | |||
* \brief Calculate geocentric coordinates (rectangular) | * \brief Calculate geocentric coordinates (rectangular) | |||
* \ingroup solar | * \ingroup solar | |||
*/ | */ | |||
void get_geo_solar_coords (double JD, struct ln_geo_posn * position); | void get_geo_solar_coords (double JD, struct ln_rect_posn * position); | |||
/*! \fn double get_solar_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of the Sun in arc seconds. | ||||
* \ingroup solar | ||||
*/ | ||||
double get_solar_sdiam (double JD); | ||||
/*! \defgroup mercury Mercury | /*! \defgroup mercury Mercury | |||
* | * | |||
* Functions relating to the planet Mercury. | * Functions relating to the planet Mercury. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_mercury_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of Mercury in arc seconds. | ||||
* \ingroup mercury | ||||
*/ | ||||
double get_mercury_sdiam (double JD); | ||||
/*! \fn double get_mercury_rst (double JD, struct ln_lnlat_posn * observer, | ||||
struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Mercury. | ||||
* \ingroup mercury | ||||
*/ | ||||
int get_mercury_rst (double JD, struct ln_lnlat_posn * observer, struct ln_ | ||||
rst_time * rst); | ||||
/*! \fn void get_mercury_helio_coords (double JD, struct ln_helio_posn * po sition); | /*! \fn void get_mercury_helio_coords (double JD, struct ln_helio_posn * po sition); | |||
* \brief Calculate Mercury's heliocentric coordinates | * \brief Calculate Mercury's heliocentric coordinates | |||
* \ingroup mercury | * \ingroup mercury | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_mercury_helio_coords | void get_mercury_helio_coords | |||
(double JD, | (double JD, | |||
struct ln_helio_posn * position); | struct ln_helio_posn * position); | |||
/*! \fn void get_mercury_equ_coords (double JD, struct ln_equ_posn * positi on); | /*! \fn void get_mercury_equ_coords (double JD, struct ln_equ_posn * positi on); | |||
skipping to change at line 821 | skipping to change at line 903 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_mercury_phase (double JD); | double get_mercury_phase (double JD); | |||
/*! \defgroup venus Venus | /*! \defgroup venus Venus | |||
* | * | |||
* Functions relating to the planet Venus. | * Functions relating to the planet Venus. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_venus_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of Venus in arc seconds. | ||||
* \ingroup venus | ||||
*/ | ||||
double get_venus_sdiam (double JD); | ||||
/*! \fn double get_venus_rst (double JD, struct ln_lnlat_posn * observer, s | ||||
truct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Venus. | ||||
* \ingroup venus | ||||
*/ | ||||
int get_venus_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rs | ||||
t_time * rst); | ||||
/*! \fn void get_venus_helio_coords (double JD, struct ln_helio_posn * posi tion); | /*! \fn void get_venus_helio_coords (double JD, struct ln_helio_posn * posi tion); | |||
* \brief Calvulate Venus heliocentric coordinates | * \brief Calvulate Venus heliocentric coordinates | |||
* \ingroup venus | * \ingroup venus | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_venus_helio_coords | void get_venus_helio_coords | |||
(double JD, | (double JD, | |||
struct ln_helio_posn * position); | struct ln_helio_posn * position); | |||
/*! \fn void get_venus_equ_coords (double JD, struct ln_equ_posn * position ); | /*! \fn void get_venus_equ_coords (double JD, struct ln_equ_posn * position ); | |||
skipping to change at line 907 | skipping to change at line 1001 | |||
/* Chapter ?? */ | /* Chapter ?? */ | |||
double get_earth_sun_dist (double JD); | double get_earth_sun_dist (double JD); | |||
/*! \defgroup mars Mars | /*! \defgroup mars Mars | |||
* | * | |||
* Functions relating to the planet Mars. | * Functions relating to the planet Mars. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_mars_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of Mars in arc seconds. | ||||
* \ingroup mars | ||||
*/ | ||||
double get_mars_sdiam (double JD); | ||||
/*! \fn double get_mars_rst (double JD, struct ln_lnlat_posn * observer, st | ||||
ruct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Mars. | ||||
* \ingroup mars | ||||
*/ | ||||
int get_mars_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rst | ||||
_time * rst); | ||||
/*! \fn void get_mars_helio_coords (double JD, struct ln_helio_posn * posit ion); | /*! \fn void get_mars_helio_coords (double JD, struct ln_helio_posn * posit ion); | |||
* \brief Calculate Mars heliocentric coordinates | * \brief Calculate Mars heliocentric coordinates | |||
* \ingroup mars | * \ingroup mars | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_mars_helio_coords | void get_mars_helio_coords | |||
(double JD, | (double JD, | |||
struct ln_helio_posn * position); | struct ln_helio_posn * position); | |||
/*! \fn void get_mars_equ_coords (double JD, struct ln_equ_posn * position) ; | /*! \fn void get_mars_equ_coords (double JD, struct ln_equ_posn * position) ; | |||
skipping to change at line 972 | skipping to change at line 1078 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_mars_phase (double JD); | double get_mars_phase (double JD); | |||
/*! \defgroup jupiter Jupiter | /*! \defgroup jupiter Jupiter | |||
* | * | |||
* Functions relating to the planet Jupiter. | * Functions relating to the planet Jupiter. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_jupiter_equ_sdiam (double JD) | ||||
* \brief Calcaluate the eqatorial semidiameter of Jupiter in arc seconds. | ||||
* \ingroup jupiter | ||||
*/ | ||||
double get_jupiter_equ_sdiam (double JD); | ||||
/*! \fn double get_jupiter_pol_sdiam (double JD) | ||||
* \brief Calcaluate the polar semidiameter of Jupiter in arc seconds. | ||||
* \ingroup jupiter | ||||
*/ | ||||
double get_jupiter_pol_sdiam (double JD); | ||||
/*! \fn double get_jupiter_rst (double JD, struct ln_lnlat_posn * observer, | ||||
struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Jupiter. | ||||
* \ingroup jupiter | ||||
*/ | ||||
int get_jupter_rst (double JD, struct ln_lnlat_posn * observer, struct ln_r | ||||
st_time * rst); | ||||
/*! \fn void get_jupiter_helio_coords (double JD, struct ln_helio_posn * po sition); | /*! \fn void get_jupiter_helio_coords (double JD, struct ln_helio_posn * po sition); | |||
* \brief Calculate Jupiter's heliocentric coordinates | * \brief Calculate Jupiter's heliocentric coordinates | |||
* \ingroup jupiter | * \ingroup jupiter | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_jupiter_helio_coords | void get_jupiter_helio_coords | |||
(double JD, struct ln_helio_posn * position); | (double JD, struct ln_helio_posn * position); | |||
/*! \fn void get_jupiter_equ_coords (double JD, struct ln_equ_posn * positi on); | /*! \fn void get_jupiter_equ_coords (double JD, struct ln_equ_posn * positi on); | |||
* \brief Calculate Jupiter's equatorial coordinates. | * \brief Calculate Jupiter's equatorial coordinates. | |||
skipping to change at line 1036 | skipping to change at line 1160 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_jupiter_phase (double JD); | double get_jupiter_phase (double JD); | |||
/*! \defgroup saturn Saturn | /*! \defgroup saturn Saturn | |||
* | * | |||
* Functions relating to the planet Saturn. | * Functions relating to the planet Saturn. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_saturn_equ_sdiam (double JD) | ||||
* \brief Calcaluate the equatorial semidiameter of Saturn in arc seconds. | ||||
* \ingroup saturn | ||||
*/ | ||||
double get_saturn_equ_sdiam (double JD); | ||||
/*! \fn double get_saturn_pol_sdiam (double JD) | ||||
* \brief Calcaluate the polar semidiameter of Saturn in arc seconds. | ||||
* \ingroup saturn | ||||
*/ | ||||
double get_saturn_pol_sdiam (double JD); | ||||
/*! \fn double get_saturn_rst (double JD, struct ln_lnlat_posn * observer, | ||||
struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Saturn. | ||||
* \ingroup saturn | ||||
*/ | ||||
int get_saturn_rst (double JD, struct ln_lnlat_posn * observer, struct ln_r | ||||
st_time * rst); | ||||
/*! \fn void get_saturn_helio_coords (double JD, struct ln_helio_posn * pos ition); | /*! \fn void get_saturn_helio_coords (double JD, struct ln_helio_posn * pos ition); | |||
* \brief Calculate Saturn's heliocentric coordinates. | * \brief Calculate Saturn's heliocentric coordinates. | |||
* \ingroup saturn | * \ingroup saturn | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_saturn_helio_coords | void get_saturn_helio_coords | |||
(double JD, struct ln_helio_posn * position); | (double JD, struct ln_helio_posn * position); | |||
/*! \fn void get_saturn_equ_coords (double JD, struct ln_equ_posn * positio n); | /*! \fn void get_saturn_equ_coords (double JD, struct ln_equ_posn * positio n); | |||
* \brief Calculate Saturn's equatorial coordinates. | * \brief Calculate Saturn's equatorial coordinates. | |||
skipping to change at line 1100 | skipping to change at line 1242 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_saturn_phase (double JD); | double get_saturn_phase (double JD); | |||
/*! \defgroup uranus Uranus | /*! \defgroup uranus Uranus | |||
* | * | |||
* Functions relating to the planet Uranus. | * Functions relating to the planet Uranus. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_uranus_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of Uranus in arc seconds. | ||||
* \ingroup uranus | ||||
*/ | ||||
double get_uranus_sdiam (double JD); | ||||
/*! \fn double get_uranus_rst (double JD, struct ln_lnlat_posn * observer, | ||||
struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Uranus. | ||||
* \ingroup uranus | ||||
*/ | ||||
int get_uranus_rst (double JD, struct ln_lnlat_posn * observer, struct ln_r | ||||
st_time * rst); | ||||
/*! \fn void get_uranus_helio_coords (double JD, struct ln_helio_posn * pos ition); | /*! \fn void get_uranus_helio_coords (double JD, struct ln_helio_posn * pos ition); | |||
* \brief Calculate Uranus heliocentric coordinates | * \brief Calculate Uranus heliocentric coordinates | |||
* \ingroup uranus | * \ingroup uranus | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_uranus_helio_coords | void get_uranus_helio_coords | |||
(double JD, struct ln_helio_posn * position); | (double JD, struct ln_helio_posn * position); | |||
/*! \fn void get_uranus_equ_coords (double JD, struct ln_equ_posn * positio n); | /*! \fn void get_uranus_equ_coords (double JD, struct ln_equ_posn * positio n); | |||
* \brief Calculate Uranus equatorial coordinates. | * \brief Calculate Uranus equatorial coordinates. | |||
skipping to change at line 1164 | skipping to change at line 1318 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_uranus_phase (double JD); | double get_uranus_phase (double JD); | |||
/*! \defgroup neptune Neptune | /*! \defgroup neptune Neptune | |||
* | * | |||
* Functions relating to the planet Neptune. | * Functions relating to the planet Neptune. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_neptune_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of Neptune in arc seconds. | ||||
* \ingroup neptune | ||||
*/ | ||||
double get_neptune_sdiam (double JD); | ||||
/*! \fn double get_neptune_rst (double JD, struct ln_lnlat_posn * observer, | ||||
struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Neptune. | ||||
* \ingroup neptune | ||||
*/ | ||||
int get_neptune_rst (double JD, struct ln_lnlat_posn * observer, struct ln_ | ||||
rst_time * rst); | ||||
/*! \fn void get_neptune_helio_coords (double JD, struct ln_helio_posn * po sition); | /*! \fn void get_neptune_helio_coords (double JD, struct ln_helio_posn * po sition); | |||
* \brief Calculate Neptune's heliocentric coordinates. | * \brief Calculate Neptune's heliocentric coordinates. | |||
* \ingroup neptune | * \ingroup neptune | |||
*/ | */ | |||
/* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | /* Chapter 31 Pg 206-207 Equ 31.1 31.2 , 31.3 using VSOP 87 */ | |||
void get_neptune_helio_coords | void get_neptune_helio_coords | |||
(double JD, struct ln_helio_posn * position); | (double JD, struct ln_helio_posn * position); | |||
/*! \fn void get_neptune_equ_coords (double JD, struct ln_equ_posn * positi on); | /*! \fn void get_neptune_equ_coords (double JD, struct ln_equ_posn * positi on); | |||
* \brief Calculate Neptune's equatorial coordinates. | * \brief Calculate Neptune's equatorial coordinates. | |||
skipping to change at line 1228 | skipping to change at line 1394 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_neptune_phase (double JD); | double get_neptune_phase (double JD); | |||
/*! \defgroup pluto Pluto | /*! \defgroup pluto Pluto | |||
* | * | |||
* Functions relating to the planet Pluto. | * Functions relating to the planet Pluto. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_pluto_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of Pluto in arc seconds. | ||||
* \ingroup pluto | ||||
*/ | ||||
double get_pluto_sdiam (double JD); | ||||
/*! \fn double get_pluto_rst (double JD, struct ln_lnlat_posn * observer, s | ||||
truct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for Pluto. | ||||
* \ingroup pluto | ||||
*/ | ||||
int get_pluto_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rs | ||||
t_time * rst); | ||||
/*! \fn void get_pluto_helio_coords (double JD, struct ln_helio_posn * posi tion); | /*! \fn void get_pluto_helio_coords (double JD, struct ln_helio_posn * posi tion); | |||
* \brief Calculate Pluto's heliocentric coordinates. | * \brief Calculate Pluto's heliocentric coordinates. | |||
* \ingroup pluto | * \ingroup pluto | |||
*/ | */ | |||
/* Chapter 37 Pg 263 */ | /* Chapter 37 Pg 263 */ | |||
void get_pluto_helio_coords | void get_pluto_helio_coords | |||
(double JD, struct ln_helio_posn * position); | (double JD, struct ln_helio_posn * position); | |||
/*! \fn void get_pluto_equ_coords (double JD, struct ln_equ_posn * position ); | /*! \fn void get_pluto_equ_coords (double JD, struct ln_equ_posn * position ); | |||
* \brief Calculate Pluto's equatorial coordinates. | * \brief Calculate Pluto's equatorial coordinates. | |||
skipping to change at line 1292 | skipping to change at line 1470 | |||
/* Chapter 41 */ | /* Chapter 41 */ | |||
double get_pluto_phase (double JD); | double get_pluto_phase (double JD); | |||
/*! \defgroup lunar Lunar | /*! \defgroup lunar Lunar | |||
* | * | |||
* Functions relating to the Moon. | * Functions relating to the Moon. | |||
* | * | |||
* All angles are expressed in degrees. | * All angles are expressed in degrees. | |||
*/ | */ | |||
/*! \fn double get_lunar_sdiam (double JD) | ||||
* \brief Calcaluate the semidiameter of the Moon in arc seconds. | ||||
* \ingroup lunar | ||||
*/ | ||||
double get_lunar_sdiam (double JD); | ||||
/*! \fn double get_lunar_rst (double JD, struct ln_lnlat_posn * observer, s | ||||
truct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for the Moon. | ||||
* \ingroup lunar | ||||
*/ | ||||
int get_lunar_rst (double JD, struct ln_lnlat_posn * observer, struct ln_rs | ||||
t_time * rst); | ||||
/*! \fn void get_lunar_geo_posn (double JD, struct ln_geo_posn * moon, doub le precision); | /*! \fn void get_lunar_geo_posn (double JD, struct ln_geo_posn * moon, doub le precision); | |||
* \brief Calculate the rectangular geocentric lunar cordinates. | * \brief Calculate the rectangular geocentric lunar cordinates. | |||
* \ingroup lunar | * \ingroup lunar | |||
*/ | */ | |||
/* ELP 2000-82B theory */ | /* ELP 2000-82B theory */ | |||
void get_lunar_geo_posn (double JD, struct ln_geo_posn * moon, double preci sion); | void get_lunar_geo_posn (double JD, struct ln_rect_posn * moon, double prec ision); | |||
/*! \fn void get_lunar_equ_coords (double JD, struct ln_equ_posn * position , double precision); | /*! \fn void get_lunar_equ_coords (double JD, struct ln_equ_posn * position , double precision); | |||
* \brief Calculate lunar equatorial coordinates. | * \brief Calculate lunar equatorial coordinates. | |||
* \ingroup lunar | * \ingroup lunar | |||
*/ | */ | |||
void get_lunar_equ_coords | void get_lunar_equ_coords | |||
(double JD, | (double JD, | |||
struct ln_equ_posn * position, double precision); | struct ln_equ_posn * position, double precision); | |||
/*! \fn void get_lunar_ecl_coords (double JD, struct ln_lnlat_posn * positi on, double precision); | /*! \fn void get_lunar_ecl_coords (double JD, struct ln_lnlat_posn * positi on, double precision); | |||
skipping to change at line 1339 | skipping to change at line 1529 | |||
* \ingroup lunar | * \ingroup lunar | |||
*/ | */ | |||
double get_lunar_earth_dist (double JD); | double get_lunar_earth_dist (double JD); | |||
/*! \fn double get_lunar_bright_limb (double JD); | /*! \fn double get_lunar_bright_limb (double JD); | |||
* \brief Calculate the position angle of the Moon's bright limb. | * \brief Calculate the position angle of the Moon's bright limb. | |||
* \ingroup lunar | * \ingroup lunar | |||
*/ | */ | |||
double get_lunar_bright_limb (double JD); | double get_lunar_bright_limb (double JD); | |||
/*! \defgroup elliptic Elliptic Motion | ||||
* | ||||
* Functions relating to the elliptic motion of bodies. | ||||
* | ||||
* All angles are expressed in degrees. | ||||
*/ | ||||
/*! \fn double solve_kepler (double E, double M); | ||||
* \brief Calculate the eccentric anomaly. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double solve_kepler (double e, double M); | ||||
/*! \fn double get_ell_mean_anomaly (double n, double delta_JD); | ||||
* \brief Calculate the mean anomaly. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_mean_anomaly (double n, double delta_JD); | ||||
/*! \fn double get_ell_true_anomaly (double n, double delta_JD); | ||||
* \brief Calculate the true anomaly. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_true_anomaly (double e, double E); | ||||
/*! \fn double get_ell_radius_vector (double a, double e, double E); | ||||
* \brief Calculate the radius vector. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_radius_vector (double a, double e, double E); | ||||
/*! \fn double get_ell_smajor_diam (double e, double q); | ||||
* \brief Calculate the semi major diameter. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_smajor_diam (double e, double q); | ||||
/*! \fn double get_ell_sminor_diam (double e, double a); | ||||
* \brief Calculate the semi minor diameter. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_sminor_diam (double e, double a); | ||||
/*! \fn double get_ell_mean_motion (double a); | ||||
* \brief Calculate the mean daily motion (degrees/day). | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_mean_motion (double a); | ||||
/*! \fn void get_ell_geo_rect_posn (struct ln_ell_orbit* orbit, double JD, | ||||
struct ln_rect_posn* posn); | ||||
* \brief Calculate the objects rectangular geocentric position. | ||||
* \ingroup elliptic | ||||
*/ | ||||
void get_ell_geo_rect_posn (struct ln_ell_orbit* orbit, double JD, struct l | ||||
n_rect_posn* posn); | ||||
/*! \fn void get_ell_helio_rect_posn (struct ln_ell_orbit* orbit, double JD | ||||
, struct ln_rect_posn* posn); | ||||
* \brief Calculate the objects rectangular heliocentric position. | ||||
* \ingroup elliptic | ||||
*/ | ||||
void get_ell_helio_rect_posn (struct ln_ell_orbit* orbit, double JD, struct | ||||
ln_rect_posn* posn); | ||||
/*! \fn double get_ell_orbit_len (struct ln_ell_orbit * orbit); | ||||
* \brief Calculate the orbital length in AU. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_orbit_len (struct ln_ell_orbit * orbit); | ||||
/*! \fn double get_ell_orbit_vel (double JD, struct ln_ell_orbit * orbit); | ||||
* \brief Calculate orbital velocity in km/s. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_orbit_vel (double JD, struct ln_ell_orbit * orbit); | ||||
/*! \fn double get_ell_orbit_pvel (struct ln_ell_orbit * orbit); | ||||
* \brief Calculate orbital velocity at perihelion in km/s. | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_orbit_pvel (struct ln_ell_orbit * orbit); | ||||
/*! \fn double get_ell_orbit_avel (struct ln_ell_orbit * orbit); | ||||
* \ingroup elliptic | ||||
* \brief Calculate the orbital velocity at aphelion in km/s. | ||||
*/ | ||||
double get_ell_orbit_avel (struct ln_ell_orbit * orbit); | ||||
/*! \fn double get_ell_body_phase_angle (double JD, struct ln_ell_orbit * o | ||||
rbit); | ||||
* \ingroup elliptic | ||||
* \brief Calculate the pase angle of the body. The angle Sun - body - Earth | ||||
. | ||||
*/ | ||||
double get_ell_body_phase_angle (double JD, struct ln_ell_orbit * orbit); | ||||
/*! | ||||
* \fn double get_ell_body_solar_dist (double JD, struct ln_ell_orbit * orbi | ||||
t) | ||||
* \brief Calculate the distance between a body and the Sun | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_body_solar_dist (double JD, struct ln_ell_orbit * orbit); | ||||
/*! | ||||
* \fn double get_ell_body_earth_dist (double JD, struct ln_ell_orbit * orbi | ||||
t) | ||||
* \brief Calculate the distance between a body and the Earth | ||||
* \ingroup elliptic | ||||
*/ | ||||
double get_ell_body_earth_dist (double JD, struct ln_ell_orbit * orbit); | ||||
/*! | ||||
* \fn void get_ell_body_equ_coords (double JD, struct ln_ell_orbit * orbit, | ||||
struct ln_equ_posn * posn) | ||||
* \brief Calculate a bodies equatorial coords | ||||
* \ingroup elliptic | ||||
*/ | ||||
void get_ell_body_equ_coords (double JD, struct ln_ell_orbit * orbit, struc | ||||
t ln_equ_posn * posn); | ||||
/*! \fn double get_ell_body_rst (double JD, struct ln_lnlat_posn * observer | ||||
, struct ln_ell_orbit * orbit, struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for a body with an ell | ||||
iptic orbit. | ||||
* \ingroup elliptic | ||||
*/ | ||||
int get_ell_body_rst (double JD, struct ln_lnlat_posn * observer, struct ln | ||||
_ell_orbit * orbit, struct ln_rst_time * rst); | ||||
/*! \defgroup parabolic Parabolic Motion | ||||
* | ||||
* Functions relating to the Parabolic motion of bodies. | ||||
* | ||||
* All angles are expressed in degrees. | ||||
*/ | ||||
/*! \fn double solve_barker (double q, double t); | ||||
* \brief Solve Barkers equation. | ||||
* \ingroup parabolic | ||||
*/ | ||||
double solve_barker (double q, double t); | ||||
/*! \fn double get_par_true_anomaly (double q, double t); | ||||
* \ingroup parabolic | ||||
* \brief Calculate the true anomaly. | ||||
*/ | ||||
double get_par_true_anomaly (double q, double t); | ||||
/*! \fn double get_par_radius_vector (double q, double t); | ||||
* \ingroup parabolic | ||||
* \brief Calculate the radius vector. | ||||
*/ | ||||
double get_par_radius_vector (double q, double t); | ||||
/*! \fn void get_par_geo_rect_posn (struct ln_orbit* orbit, double JD, stru | ||||
ct ln_rect_posn* posn); | ||||
* \ingroup parabolic | ||||
* \brief Calculate an objects rectangular geocentric position. | ||||
*/ | ||||
void get_par_geo_rect_posn (struct ln_par_orbit* orbit, double JD, struct l | ||||
n_rect_posn* posn); | ||||
/*! \fn void get_par_helio_rect_posn (struct ln_par_orbit* orbit, double JD | ||||
, struct ln_rect_posn* posn); | ||||
* \ingroup parabolic | ||||
* \brief Calculate an objects rectangular heliocentric position. | ||||
*/ | ||||
void get_par_helio_rect_posn (struct ln_par_orbit* orbit, double JD, struct | ||||
ln_rect_posn* posn); | ||||
/*! | ||||
* \fn void get_par_body_equ_coords (double JD, struct ln_par_orbit * orbit, | ||||
struct ln_equ_posn * posn) | ||||
* \ingroup parabolic | ||||
* \brief Calculate a bodies equatorial coordinates. | ||||
*/ | ||||
void get_par_body_equ_coords (double JD, struct ln_par_orbit * orbit, struc | ||||
t ln_equ_posn * posn); | ||||
/*! | ||||
* \fn double get_par_body_earth_dist (double JD, struct ln_par_orbit * orbi | ||||
t) | ||||
* \ingroup parabolic | ||||
* \brief Calculate the distance between a body and the Earth. | ||||
*/ | ||||
double get_par_body_earth_dist (double JD, struct ln_par_orbit * orbit); | ||||
/*! | ||||
* \fn double get_par_body_solar_dist (double JD, struct ln_par_orbit * orbi | ||||
t) | ||||
* \ingroup parabolic | ||||
* \brief Calculate the distance between a body and the Sun. | ||||
*/ | ||||
double get_par_body_solar_dist (double JD, struct ln_par_orbit * orbit); | ||||
/*! \fn double get_par_body_phase_angle (double JD, struct ln_par_orbit * o | ||||
rbit); | ||||
* \ingroup parabolic | ||||
* \brief Calculate the pase angle of the body. | ||||
*/ | ||||
double get_par_body_phase_angle (double JD, struct ln_par_orbit * orbit); | ||||
/*! \fn double get_par_body_rst (double JD, struct ln_lnlat_posn * observer | ||||
, struct ln_par_orbit * orbit, struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for a body with a para | ||||
bolic orbit. | ||||
* \ingroup parabolic | ||||
*/ | ||||
int get_par_body_rst (double JD, struct ln_lnlat_posn * observer, struct ln | ||||
_par_orbit * orbit, struct ln_rst_time * rst); | ||||
/*! \defgroup asteroid Asteroids | ||||
* | ||||
* Functions relating to Asteroids. | ||||
* | ||||
* All angles are expressed in degrees. | ||||
*/ | ||||
/*! | ||||
* \fn double get_asteroid_mag (double JD, struct ln_ell_orbit * orbit, doub | ||||
le H, double G) | ||||
* \ingroup asteroid | ||||
* \brief Calculate the visual magnitude of an asteroid. | ||||
*/ | ||||
double get_asteroid_mag (double JD, struct ln_ell_orbit * orbit, double H, | ||||
double G); | ||||
/*! \fn double get_asteroid_sdiam_km (double H, double A) | ||||
* \brief Calcaluate the semidiameter of an asteroid in km. | ||||
* \ingroup asteroid | ||||
*/ | ||||
double get_asteroid_sdiam_km (double H, double A); | ||||
/*! \fn double get_asteroid_sdiam_arc (double JD, struct ln_ell_orbit * orb | ||||
it, double H, double A); | ||||
* \brief Calcaluate the semidiameter of an asteroid in arc seconds. | ||||
* \ingroup asteroid | ||||
*/ | ||||
double get_asteroid_sdiam_arc (double JD, struct ln_ell_orbit * orbit, doub | ||||
le H, double A); | ||||
/*! \defgroup comet Comets | ||||
* | ||||
* Functions relating to Comets. | ||||
* | ||||
* All angles are expressed in degrees. | ||||
*/ | ||||
/*! | ||||
* \fn double get_ell_comet_mag (double JD, struct ln_ell_orbit * orbit, dou | ||||
ble g, double k) | ||||
* \ingroup comet | ||||
* \brief Calculate the visual magnitude of a comet in an elliptic orbit. | ||||
*/ | ||||
double get_ell_comet_mag (double JD, struct ln_ell_orbit * orbit, double g, | ||||
double k); | ||||
/*! | ||||
* \fn double get_par_comet_mag (double JD, struct ln_par_orbit * orbit, dou | ||||
ble g, double k) | ||||
* \ingroup comet | ||||
* \brief Calculate the visual magnitude of a comet in a parabolic orbit. | ||||
*/ | ||||
double get_par_comet_mag (double JD, struct ln_par_orbit * orbit, double g, | ||||
double k); | ||||
/*! \defgroup refraction Atmospheric Refraction | ||||
* | ||||
* Functions relating to Atmospheric Refraction | ||||
* | ||||
* All angles are expressed in degrees. | ||||
*/ | ||||
/*! \fn double get_refraction_adj (double altitude, double atm_pres, double | ||||
temp) | ||||
* \brief Calculate the adjustment in altitude of a body due to atmospheric | ||||
* refraction. | ||||
* \ingroup refraction | ||||
*/ | ||||
double get_refraction_adj (double altitude, double atm_pres, double temp); | ||||
/*! \fn double interpolate3 (double n, double y1, double y2, double y3) | ||||
* \ingroup misc | ||||
* \brief Calculate an intermediate value of the 3 arguments. | ||||
*/ | ||||
double interpolate3 (double n, double y1, double y2, double y3); | ||||
/*! \fn double interpolate5 (double n, double y1, double y2, double y3, dou | ||||
ble y4, double y5) | ||||
* \ingroup misc | ||||
* \brief Calculate an intermediate value of the 5 arguments. | ||||
*/ | ||||
double interpolate5 (double n, double y1, double y2, double y3, double y4, | ||||
double y5); | ||||
/*! \defgroup rst Rise, Set, Transit | ||||
* | ||||
* Functions relating to an objects rise, set and transit | ||||
* | ||||
* All angles are expressed in degrees. | ||||
*/ | ||||
/*! \fn double get_object_rst (double JD, struct ln_lnlat_posn * observer, | ||||
struct ln_equ_posn * object,struct ln_rst_time * rst); | ||||
* \brief Calculate the time of rise, set and transit for an object not orbi | ||||
ting the Sun. | ||||
* \ingroup rst | ||||
*/ | ||||
int get_object_rst (double JD, struct ln_lnlat_posn * observer, struct ln_e | ||||
qu_posn * object, struct ln_rst_time * rst); | ||||
#ifdef __cplusplus | #ifdef __cplusplus | |||
}; | }; | |||
#endif | #endif | |||
#endif | #endif | |||
End of changes. 38 change blocks. | ||||
54 lines changed or deleted | 581 lines changed or added | |||