Functions | |
| double | ln_solve_kepler (double e, double M) |
| Calculate the eccentric anomaly. | |
| double | ln_get_ell_mean_anomaly (double n, double delta_JD) |
| Calculate the mean anomaly. | |
| double | ln_get_ell_true_anomaly (double e, double E) |
| Calculate the true anomaly. | |
| double | ln_get_ell_radius_vector (double a, double e, double E) |
| Calculate the radius vector. | |
| double | ln_get_ell_smajor_diam (double e, double q) |
| Calculate the semi major diameter. | |
| double | ln_get_ell_sminor_diam (double e, double a) |
| Calculate the semi minor diameter. | |
| double | ln_get_ell_mean_motion (double a) |
| Calculate the mean daily motion (degrees/day). | |
| void | ln_get_ell_geo_rect_posn (struct ln_ell_orbit *orbit, double JD, struct ln_rect_posn *posn) |
| Calculate the objects rectangular geocentric position. | |
| void | ln_get_ell_helio_rect_posn (struct ln_ell_orbit *orbit, double JD, struct ln_rect_posn *posn) |
| Calculate the objects rectangular heliocentric position. | |
| double | ln_get_ell_orbit_len (struct ln_ell_orbit *orbit) |
| Calculate the orbital length in AU. | |
| double | ln_get_ell_orbit_vel (double JD, struct ln_ell_orbit *orbit) |
| Calculate orbital velocity in km/s. | |
| double | ln_get_ell_orbit_pvel (struct ln_ell_orbit *orbit) |
| Calculate orbital velocity at perihelion in km/s. | |
| double | ln_get_ell_orbit_avel (struct ln_ell_orbit *orbit) |
| Calculate the orbital velocity at aphelion in km/s. | |
| double | ln_get_ell_body_phase_angle (double JD, struct ln_ell_orbit *orbit) |
| Calculate the phase angle of the body. The angle Sun - body - Earth. | |
| double | ln_get_ell_body_elong (double JD, struct ln_ell_orbit *orbit) |
| Calculate the bodies elongation to the Sun.. | |
| double | ln_get_ell_body_solar_dist (double JD, struct ln_ell_orbit *orbit) |
| Calculate the distance between a body and the Sun. | |
| double | ln_get_ell_body_earth_dist (double JD, struct ln_ell_orbit *orbit) |
| Calculate the distance between a body and the Earth. | |
| void | ln_get_ell_body_equ_coords (double JD, struct ln_ell_orbit *orbit, struct ln_equ_posn *posn) |
| Calculate a bodies equatorial coords. | |
| int | ln_get_ell_body_rst (double JD, struct ln_lnlat_posn *observer, struct ln_ell_orbit *orbit, struct ln_rst_time *rst) |
| Calculate the time of rise, set and transit for a body with an elliptic orbit. | |
| int | ln_get_ell_body_rst_horizon (double JD, struct ln_lnlat_posn *observer, struct ln_ell_orbit *orbit, double horizon, struct ln_rst_time *rst) |
| Calculate the time of rise, set and transit for a body with an elliptic orbit. | |
| int | ln_get_ell_body_next_rst (double JD, struct ln_lnlat_posn *observer, struct ln_ell_orbit *orbit, struct ln_rst_time *rst) |
| Calculate the time of rise, set and transit for a body with an elliptic orbit. | |
| int | ln_get_ell_body_next_rst_horizon (double JD, struct ln_lnlat_posn *observer, struct ln_ell_orbit *orbit, double horizon, struct ln_rst_time *rst) |
| Calculate the time of rise, set and transit for a body with an elliptic orbit. | |
| int | ln_get_ell_body_next_rst_horizon_future (double JD, struct ln_lnlat_posn *observer, struct ln_ell_orbit *orbit, double horizon, int day_limit, struct ln_rst_time *rst) |
| Calculate the time of rise, set and transit for a body with an elliptic orbit. | |
| double | ln_get_ell_last_perihelion (double epoch_JD, double M, double n) |
| Calculate the julian day of the last perihelion. | |
All angles are expressed in degrees.
| double ln_get_ell_body_earth_dist | ( | double | JD, | |
| struct ln_ell_orbit * | orbit | |||
| ) |
Calculate the distance between a body and the Earth.
| JD | Julian day. | |
| orbit | Orbital parameters |
References ln_get_ell_geo_rect_posn(), ln_rect_posn::X, ln_rect_posn::Y, and ln_rect_posn::Z.
Referenced by ln_get_ell_body_phase_angle().
| double ln_get_ell_body_elong | ( | double | JD, | |
| struct ln_ell_orbit * | orbit | |||
| ) |
Calculate the bodies elongation to the Sun..
| JD | Julian day | |
| orbit | Orbital parameters |
References ln_ell_orbit::a, ln_ell_orbit::e, ln_ell_orbit::JD, ln_get_earth_solar_dist(), ln_get_ell_body_solar_dist(), ln_get_ell_mean_anomaly(), ln_get_ell_mean_motion(), ln_get_ell_radius_vector(), ln_rad_to_deg(), ln_range_degrees(), ln_solve_kepler(), and ln_ell_orbit::n.
| void ln_get_ell_body_equ_coords | ( | double | JD, | |
| struct ln_ell_orbit * | orbit, | |||
| struct ln_equ_posn * | posn | |||
| ) |
Calculate a bodies equatorial coords.
| JD | Julian Day. | |
| orbit | Orbital parameters. | |
| posn | Pointer to hold asteroid position. |
References ln_equ_posn::dec, ln_get_ell_helio_rect_posn(), ln_get_solar_geo_coords(), ln_rad_to_deg(), ln_range_degrees(), ln_equ_posn::ra, ln_rect_posn::X, ln_rect_posn::Y, and ln_rect_posn::Z.
Referenced by ln_get_ell_body_next_rst_horizon(), ln_get_ell_body_next_rst_horizon_future(), and ln_get_ell_body_rst_horizon().
| double ln_get_ell_body_next_rst | ( | double | JD, | |
| struct ln_lnlat_posn * | observer, | |||
| struct ln_ell_orbit * | orbit, | |||
| struct ln_rst_time * | rst | |||
| ) |
Calculate the time of rise, set and transit for a body with an elliptic orbit.
| JD | Julian day | |
| observer | Observers position | |
| orbit | Orbital parameters | |
| rst | Pointer to store Rise, Set and Transit time in JD |
This function guarantee, that rise, set and transit will be in <JD, JD+1> range.
Note: this functions returns 1 if the body is circumpolar, that is it remains the whole day above the horizon. Returns -1 when it remains the whole day below the horizon.
References ln_get_ell_body_next_rst_horizon().
| double ln_get_ell_body_next_rst_horizon | ( | double | JD, | |
| struct ln_lnlat_posn * | observer, | |||
| struct ln_ell_orbit * | orbit, | |||
| double | horizon, | |||
| struct ln_rst_time * | rst | |||
| ) |
Calculate the time of rise, set and transit for a body with an elliptic orbit.
| JD | Julian day | |
| observer | Observers position | |
| orbit | Orbital parameters | |
| horizon | Horizon height | |
| rst | Pointer to store Rise, Set and Transit time in JD |
This function guarantee, that rise, set and transit will be in <JD, JD+1> range.
Note: this functions returns 1 if the body is circumpolar, that is it remains the whole day above the horizon. Returns -1 when it remains the whole day below the horizon.
| JD | Julian day | |
| observer | Observers position | |
| orbit | Orbital parameters | |
| horizon | Horizon height | |
| day_limit | Maximal number of days that will be searched for next rise and set | |
| rst | Pointer to store Rise, Set and Transit time in JD |
This function guarantee, that rise, set and transit will be in <JD, JD + day_limit> range.
Note: this functions returns 1 if the body is circumpolar, that is it remains the whole day above the horizon. Returns -1 when it remains the whole day below the horizon.
References ln_get_ell_body_equ_coords().
Referenced by ln_get_ell_body_next_rst().
| double ln_get_ell_body_phase_angle | ( | double | JD, | |
| struct ln_ell_orbit * | orbit | |||
| ) |
Calculate the phase angle of the body. The angle Sun - body - Earth.
| JD | Julian day | |
| orbit | Orbital parameters |
References ln_ell_orbit::a, ln_ell_orbit::e, ln_ell_orbit::JD, ln_deg_to_rad(), ln_get_ell_body_earth_dist(), ln_get_ell_body_solar_dist(), ln_get_ell_mean_anomaly(), ln_get_ell_mean_motion(), ln_get_ell_radius_vector(), ln_range_degrees(), ln_solve_kepler(), and ln_ell_orbit::n.
| double ln_get_ell_body_rst | ( | double | JD, | |
| struct ln_lnlat_posn * | observer, | |||
| struct ln_ell_orbit * | orbit, | |||
| struct ln_rst_time * | rst | |||
| ) |
Calculate the time of rise, set and transit for a body with an elliptic orbit.
| JD | Julian day | |
| observer | Observers position | |
| orbit | Orbital parameters | |
| rst | Pointer to store Rise, Set and Transit time in JD |
Note: this functions returns 1 if the body is circumpolar, that is it remains the whole day above the horizon. Returns -1 when it remains the whole day below the horizon.
References ln_get_ell_body_rst_horizon().
| double ln_get_ell_body_rst_horizon | ( | double | JD, | |
| struct ln_lnlat_posn * | observer, | |||
| struct ln_ell_orbit * | orbit, | |||
| double | horizon, | |||
| struct ln_rst_time * | rst | |||
| ) |
Calculate the time of rise, set and transit for a body with an elliptic orbit.
| JD | Julian day | |
| observer | Observers position | |
| orbit | Orbital parameters | |
| horizon | Horizon height | |
| rst | Pointer to store Rise, Set and Transit time in JD |
Note: this functions returns 1 if the body is circumpolar, that is it remains the whole day above the horizon. Returns -1 when it remains the whole day below the horizon.
References ln_get_ell_body_equ_coords().
Referenced by ln_get_ell_body_rst().
| double ln_get_ell_body_solar_dist | ( | double | JD, | |
| struct ln_ell_orbit * | orbit | |||
| ) |
Calculate the distance between a body and the Sun.
| JD | Julian Day. | |
| orbit | Orbital parameters |
References ln_get_ell_helio_rect_posn(), ln_rect_posn::X, ln_rect_posn::Y, and ln_rect_posn::Z.
Referenced by ln_get_ell_body_elong(), ln_get_ell_body_phase_angle(), ln_get_ell_comet_mag(), and ln_get_ell_orbit_vel().
| void ln_get_ell_geo_rect_posn | ( | struct ln_ell_orbit * | orbit, | |
| double | JD, | |||
| struct ln_rect_posn * | posn | |||
| ) |
Calculate the objects rectangular geocentric position.
| orbit | Orbital parameters of object. | |
| JD | Julian day | |
| posn | Position pointer to store objects position |
References ln_get_earth_helio_coords(), ln_get_ell_helio_rect_posn(), ln_get_rect_from_helio(), ln_rect_posn::X, ln_rect_posn::Y, and ln_rect_posn::Z.
Referenced by ln_get_ell_body_earth_dist().
| void ln_get_ell_helio_rect_posn | ( | struct ln_ell_orbit * | orbit, | |
| double | JD, | |||
| struct ln_rect_posn * | posn | |||
| ) |
Calculate the objects rectangular heliocentric position.
| orbit | Orbital parameters of object. | |
| JD | Julian day | |
| posn | Position pointer to store objects position |
References ln_ell_orbit::a, ln_helio_posn::B, ln_ell_orbit::e, ln_ell_orbit::i, ln_ell_orbit::JD, ln_deg_to_rad(), ln_get_ell_mean_anomaly(), ln_get_ell_mean_motion(), ln_get_ell_radius_vector(), ln_get_ell_true_anomaly(), ln_solve_kepler(), ln_ell_orbit::n, ln_ell_orbit::omega, ln_helio_posn::R, ln_ell_orbit::w, ln_rect_posn::X, ln_rect_posn::Y, and ln_rect_posn::Z.
Referenced by ln_get_ell_body_equ_coords(), ln_get_ell_body_solar_dist(), and ln_get_ell_geo_rect_posn().
| double ln_get_ell_last_perihelion | ( | double | epoch_JD, | |
| double | M, | |||
| double | n | |||
| ) |
Calculate the julian day of the last perihelion.
| epoch_JD | Julian day of epoch | |
| M | Mean anomaly | |
| n | daily motion in degrees |
| double ln_get_ell_mean_anomaly | ( | double | n, | |
| double | delta_JD | |||
| ) |
Calculate the mean anomaly.
| n | Mean motion (degrees/day) | |
| delta_JD | Time since perihelion |
Referenced by ln_get_ell_body_elong(), ln_get_ell_body_phase_angle(), ln_get_ell_comet_mag(), and ln_get_ell_helio_rect_posn().
| double ln_get_ell_mean_motion | ( | double | a | ) |
Calculate the mean daily motion (degrees/day).
| a | Semi major diameter in AU |
Referenced by ln_get_ell_body_elong(), ln_get_ell_body_phase_angle(), ln_get_ell_comet_mag(), and ln_get_ell_helio_rect_posn().
| double ln_get_ell_orbit_avel | ( | struct ln_ell_orbit * | orbit | ) |
Calculate the orbital velocity at aphelion in km/s.
| orbit | Orbital parameters |
References ln_ell_orbit::a, and ln_ell_orbit::e.
| double ln_get_ell_orbit_len | ( | struct ln_ell_orbit * | orbit | ) |
Calculate the orbital length in AU.
| orbit | Orbital parameters |
Accuracy:
References ln_ell_orbit::a, ln_ell_orbit::e, and ln_get_ell_sminor_diam().
| double ln_get_ell_orbit_pvel | ( | struct ln_ell_orbit * | orbit | ) |
Calculate orbital velocity at perihelion in km/s.
| orbit | Orbital parameters |
References ln_ell_orbit::a, and ln_ell_orbit::e.
| double ln_get_ell_orbit_vel | ( | double | JD, | |
| struct ln_ell_orbit * | orbit | |||
| ) |
Calculate orbital velocity in km/s.
| JD | Julian day. | |
| orbit | Orbital parameters |
References ln_ell_orbit::a, and ln_get_ell_body_solar_dist().
| double ln_get_ell_radius_vector | ( | double | a, | |
| double | e, | |||
| double | E | |||
| ) |
Calculate the radius vector.
| a | Semi-Major axis in AU | |
| e | Orbital eccentricity | |
| E | Eccentric anomaly |
References ln_deg_to_rad().
Referenced by ln_get_ell_body_elong(), ln_get_ell_body_phase_angle(), ln_get_ell_comet_mag(), and ln_get_ell_helio_rect_posn().
| double ln_get_ell_smajor_diam | ( | double | e, | |
| double | q | |||
| ) |
Calculate the semi major diameter.
| e | Eccentricity | |
| q | Perihelion distance in AU |
| double ln_get_ell_sminor_diam | ( | double | e, | |
| double | a | |||
| ) |
Calculate the semi minor diameter.
| e | Eccentricity | |
| a | Semi-Major diameter in AU |
Referenced by ln_get_ell_orbit_len().
| double ln_get_ell_true_anomaly | ( | double | e, | |
| double | E | |||
| ) |
Calculate the true anomaly.
| e | Orbital eccentricity | |
| E | Eccentric anomaly |
References ln_deg_to_rad(), ln_rad_to_deg(), and ln_range_degrees().
Referenced by ln_get_ell_helio_rect_posn().
| double ln_solve_kepler | ( | double | E, | |
| double | M | |||
| ) |
Calculate the eccentric anomaly.
| E | Orbital eccentricity | |
| M | Mean anomaly |
References ln_deg_to_rad(), and ln_rad_to_deg().
Referenced by ln_get_ell_body_elong(), ln_get_ell_body_phase_angle(), ln_get_ell_comet_mag(), and ln_get_ell_helio_rect_posn().
1.5.8