34 #define AE_DTR 1.7453292519943295769e-2
35 #define AE_RTD 5.7295779513082320877e1
36 #define AE_RTS 2.0626480624709635516e5
37 #define AE_STR 4.8481368110953599359e-6
38 #define AE_STD (1.0 / 3600.0)
39 #define AE_STDAY 0.00001157407407407407
40 #define AE_COSSUN -0.014543897651582657
41 #define AE_COSZEN -9.8900378587411476e-3
42 #define AE_J2000 2451545.0
43 #define AE_B1950 2433282.423
44 #define AE_J1900 2415020.0
45 #define AE_MJD_START 2400000.5
47 #define AE_AU 1.49597870691e8
48 #define AE_CLIGHT 2.99792458e5
49 #define AE_S_PER_D 86400.0
50 #define AE_D_PER_S (1.0 / AE_S_PER_D)
51 #define AE_CLIGHT_AUD (86400.0 * AE_CLIGHT / AE_AU)
53 #define AE_R_EARTH 6378137.0
54 #define AE_R_EARTH_AU (0.001 * AE_R_EARTH / AE_AU)
56 #define AE_E_M_RAT 81.300585
57 #define AE_FLAT 298.257222101
60 #define AE_T_CMB 2.725
62 #define AE_JPL_HEAD_SIZE (5 * sizeof(double) + 41 * sizeof(int32_t))
64 #define AE_JPL_CONST_LEN 6
101 #define AE_N_SS_BODIES 16
102 #define AE_N_SS_BODIES_JPL 13
145 #define AE_PLANTBL_N_HARMONIC 18
146 struct ae_plantbl_t {
319 double *ra,
double *dec);
325 double ae_ctime_to_last(
double t,
double delta_t,
double tlong,
double nutl,
329 void ae_delta_q(
double q0[],
double q1[],
double *dra,
double *ddec);
336 double *ra,
double *dec);
338 double *ra,
double *dec);
342 void ae_geocentric(
double jd_tt,
double q[],
double e[],
double v_e[],
343 double *ra,
double *dec,
double *dist);
345 double *ra,
double *dec,
double *dist);
347 const struct ae_star_t *star,
double *ra,
350 int obj_num,
double *ra,
double *dec,
double *dist);
353 double *dec,
double *dist);
355 double *ra,
double *dec,
double *dist);
361 void ae_gmoon(
double jd,
double rect[],
double pol[]);
362 double ae_gmst(
double jd_ut1,
double jd_tt);
363 double ae_gast(
double jd_ut1,
double jd_tt,
double nutl,
double eps);
364 double ae_lmst(
double jd_ut1,
double jd_tt,
double tlong);
365 double ae_last(
double jd_ut1,
double jd_tt,
double tlong,
double nutl,
367 double aes_last(
double jd_ut1,
double tlong);
374 void ae_jd_to_cal(
double jd,
int *year,
int *month,
double *day);
376 const char *const_name);
382 double r[],
double v[],
char is_planetary);
385 double ae_light_t(
double p[],
double q[],
int do_retardation);
387 int obj_num,
double q[],
double v_q[],
char is_planetary);
395 void ae_nutate(
double nutl,
double nuto,
double eps,
double p[],
int direction);
396 void aes_nutate(
double jd_tt,
double p[],
int direction);
398 double n[],
double *w);
401 void ae_precess(
double jd_tt,
double r[],
int direction);
403 double *alt,
double *az);
415 void ae_subobs_point(
double j[],
double n[],
double w,
double f,
int retrograde,
416 double *lat,
double *lon);
420 double *lat,
double *lon,
double *dist);
422 void ae_topocentric(
double jd_tt,
double jd_ut1,
double tlat,
double glat,
423 double tlong,
double trho,
double (*refrac)(
double,
void *),
424 void *refrac_param,
double dist,
double *ra,
double *dec);
425 void aes_topocentric(
double jd_ut1,
double glat,
double tlong,
double dist,
426 double *ra,
double *dec);
435 #define ae_get_d(a) ((double)((int)(a)))
440 #define ae_get_m(a) ((double)fabs(((int)(((a) - ae_get_d(a)) * 60))))
445 #define ae_get_s(a) (fabs(((a) - ae_get_d(a) - ((double)((int)(((a) - ae_get_d(a)) * 60))) / 60) * 3600))
449 #define ae_dms_fmt "%dd %d' %.2f\""
453 #define ae_dms_sfmt "%4dd %02d' %05.2f\""
457 #define ae_dms_arg(a) (int)ae_get_d(a), (int)ae_get_m(a), ae_get_s(a)
461 #define ae_hms_fmt "%dh %dm %.2fs"
465 #define ae_hms_sfmt "%3dh %02dm %05.2fs"
469 #define ae_hms_arg(a) (int)ae_get_d(a / 15.0), (int)ae_get_m(a / 15.0), ae_get_s(a / 15.0)
523 void ae_map_saturn(
double res,
const struct ae_physical_t *b,
537 void ae_set_stokes(
struct ae_stokes_t *s,
double i,
double q,
double u,
540 void ae_saturn_components_alloc(
int n_ring,
struct ae_orbit_t * ae_orb_planet[]
Pointers to the planetary orbit objects.
Definition: init.c:192
double ra
Right Ascension, degrees.
Definition: aephem.h:186
#define AE_PLANTBL_N_HARMONIC
Number of arguments for ae_plantbl_t.
Definition: aephem.h:145
const char * ae_constel_name[]
A list of constellation names.
Definition: constel.c:36
void aes_nutate(double jd_tt, double p[], int direction)
Correct for nutation.
Definition: nutate.c:377
int ae_is_retrograde(const struct ae_physical_t *phys)
Determine whether a body's rotation is retrograde.
Definition: physical.c:113
A matrix was not invertible.
Definition: aephem.h:95
void * rad_tbl
Table of radial thingies (?).
Definition: aephem.h:154
double cos_ring_inc
Cosine of the ring inclination.
Definition: aephem.h:511
double epoch
Epoch of orbital elements.
Definition: aephem.h:163
const double * a_inner
Inner radius of rings, in Saturn equatorial radii.
Definition: aephem.h:478
long ascii_len_block
The length of a block, in bytes (ASCII only).
Definition: aephem.h:219
struct ae_physical_term_t * dec_cos_term
Cosine series coefficents for the north pole dec.
Definition: aephem.h:264
Bad JPL header; differing numbers of constants and values.
Definition: aephem.h:77
For holding information on a JPL ephemeris file.
Definition: aephem.h:198
void ae_rect_to_polar(const double rect[], double *ra, double *dec, double *radius)
Convert an equatorial rectangular unit vector to ra/dec/radius.
Definition: coord.c:40
void ae_gmoon(double jd, double rect[], double pol[])
Compute geocentric moon position.
Definition: gplan.c:742
int ae_cat_to_constel_index(const char *cat_name, char *full_name, int len)
Given a catalogue star name, find a star's constellation.
Definition: constel.c:548
double M
Mean anomaly, in degrees.
Definition: aephem.h:170
struct ae_orbit_t ae_orb_venus
Default orbital parameters for Venus.
Definition: init.c:47
Bad JPL header; ksize != 2 * n_coeff.
Definition: aephem.h:74
Use T = # Julian centuries since J2000.
Definition: aephem.h:142
Bad JPL header; could not read date range.
Definition: aephem.h:78
double v
Radial velocity in units of km/s.
Definition: aephem.h:191
double i
The intensity Stokes parameter.
Definition: aephem.h:485
ae_aberration_direction_t
Define directions for aberration.
Definition: aephem.h:133
Neptune, the Mystic.
Definition: aephem.h:115
double em_ratio
Earth-moon ratio.
Definition: aephem.h:204
void ae_altaz_to_radec(double last, double glat, double alt, double az, double *ra, double *dec)
Convert alt/az to ra/dec.
Definition: coord.c:179
double last_x
Value at which coefficients were evaluated.
Definition: aephem.h:225
int n_pix
The dimension of each side of the map.
Definition: aephem.h:517
int max_cheby
Maximum Chebyshev coefficients for a body.
Definition: aephem.h:217
A required FITS keyword was corrupt.
Definition: aephem.h:91
void ae_diurnal_aberration(double last, double tlat, double trho, int direction, double *ra, double *dec)
Correct for diurnal aberration.
Definition: diurnal_ab.c:51
double w
Argument of the perihelion, in degrees.
Definition: aephem.h:166
double ae_gast(double jd_ut1, double jd_tt, double nutl, double eps)
Get Greenwich apparent sidereal time.
Definition: calendar.c:85
struct ae_plantbl_t ae_plu404
Ephemeris for Pluto.
Definition: plu404.c:1401
The moon.
Definition: aephem.h:122
void ae_gplan(double jd_tt, struct ae_plantbl_t *plan, double pobj[])
Use a table to find a planet's polar, heliocentric position.
Definition: gplan.c:106
Mercury, the Winged Messenger.
Definition: aephem.h:108
double pole_dec
North pole declination, J2000.
Definition: aephem.h:260
void ae_geocentric_lat(double glat, double height, double *tlat, double *trho)
Calculate the geocentric latitude and the distance to the earth's centre.
Definition: coord.c:310
struct ae_physical_t ae_phys_mars
Physical parameters for Mars.
Definition: phys_data.c:93
struct ae_physical_t ae_phys_saturn
Physical parameters for Saturn.
Definition: phys_data.c:129
void ae_relativity(double p[], double q[], double o[])
Correct for light deflection due to solar gravitation.
Definition: relativity.c:42
void ae_geocentric(double jd_tt, double q[], double e[], double v_e[], double *ra, double *dec, double *dist)
Given heliocentric coordinates, reduce to geocentric coordinates.
Definition: geocentric.c:82
double W
Longitude of the ascending node, in degrees.
Definition: aephem.h:165
double pole_ra_t
North pole ra coefficient for T = Julian centuries since J2000.
Definition: aephem.h:257
int n_coeff
Number of Chebyshev coefficients.
Definition: aephem.h:213
Add the effect of aberration.
Definition: aephem.h:134
double c
The b in , in degrees.
Definition: aephem.h:235
double equinox
Epoch of equinox and ecliptic.
Definition: aephem.h:171
double res
The resolution of the map, in units of the planet's semi-major axis.
Definition: aephem.h:519
double ae_ctime_to_jd(double t)
Convert a C time to a Julian date.
Definition: calendar.c:339
int n
Number of rings.
Definition: aephem.h:474
double * n_ring_back
Number of pixels looking off-disc through each of the rings.
Definition: aephem.h:509
A function requiring cfitsio was called, but cfitsio is not available.
Definition: aephem.h:89
struct ae_orbit_t ae_orb_pluto
Default orbital parameters for Pluto.
Definition: init.c:173
ae_precess_direction_t
Define directions for precession and nutation.
Definition: aephem.h:127
void ae_jpl_close(struct ae_jpl_handle_t *jh)
Finish with a JPL handle.
Definition: jpl_eph.c:504
double epoch
Epoch of coordinates.
Definition: aephem.h:185
void ae_kepler(double jd_tt, const struct ae_orbit_t *orb, double q[])
Find a Keplerian orbit.
Definition: kepler.c:83
double a
The a in .
Definition: aephem.h:233
For holding information on a body's physical and rotational properties.
Definition: aephem.h:248
double plat
Perturbation in ecliptic latitude.
Definition: aephem.h:177
double ae_zatan2(double x, double y)
Quadrant correct inverse circular tangent.
Definition: math_util.c:109
void ae_rect_to_polar_with_jd(double pp[], double jd, char ofdate, double polar[])
Convert equatorial rectangular coordinates to polar coordinates.
Definition: coord.c:68
struct ae_plantbl_t ae_mlat404
Ephemeris for the moon.
Definition: mlat404.c:1129
double au
Definition of the AU.
Definition: aephem.h:203
Unknown object number.
Definition: aephem.h:86
long ascii_start
The beginning byte number of the data (ASCII only).
Definition: aephem.h:218
Bad JPL block.
Definition: aephem.h:81
int rec_size
Record size.
Definition: aephem.h:215
const double * tau
Opacities of rings.
Definition: aephem.h:476
void ae_geocentric_moon_from_orbit(double jd_tt, const struct ae_orbit_t *o_orb, double *ra, double *dec, double *dist)
Calculate the geocentric coordinates of the moon from orbital elements.
Definition: geocentric.c:381
int time_var
One of AE_PHYSICAL_D or AE_PHYSICAL_T, or AE_PHYSICAL_END to mark last term.
Definition: aephem.h:232
struct ae_physical_t ae_phys_jupiter
Physical parameters for Jupiter.
Definition: phys_data.c:116
int ae_read_orbit_from_cat(const char *path, const char *name, struct ae_orbit_t *orb)
Parse orbital elements from a catalogue file.
Definition: kfiles.c:54
void aes_topocentric(double jd_ut1, double glat, double tlong, double dist, double *ra, double *dec)
Apply diurnal aberrations and calculate topocentric altitude and azimuth.
Definition: topocentric.c:112
struct ae_physical_t ae_phys_pluto
Physical parameters for Pluto.
Definition: phys_data.c:218
double ae_gmst(double jd_ut1, double jd_tt)
Get the Greenwich mean sidereal time.
Definition: calendar.c:44
void ae_precess(double jd_tt, double r[], int direction)
Precess a coordinate.
Definition: precess.c:178
void ae_nutate(double nutl, double nuto, double eps, double p[], int direction)
Correct for nutation.
Definition: nutate.c:311
Bad chebyshev time when gettin JPL data.
Definition: aephem.h:85
double ae_mod_180(double x)
Reduce x modulo 360 degrees, but centre at 0 degrees.
Definition: math_util.c:60
void ae_geocentric_sun_from_orbit(double jd_tt, const struct ae_orbit_t *o_orb, double *ra, double *dec, double *dist)
Calculate the geocentric coordinates of the sun from orbital elements.
Definition: geocentric.c:320
double ae_disc_semiminor(double a, double c, double lat)
Calculate the semi-minor axis of an observed disc.
Definition: physical.c:93
For storing information on a planet's (i.e., Saturn's) rings.
Definition: aephem.h:473
The sun.
Definition: aephem.h:118
struct ae_plantbl_t ae_mar404
Ephemeris for Mars.
Definition: mar404.c:1579
int ipt[13][3]
Index pointers to the Chebyshev coefficents.
Definition: aephem.h:205
double distance
Distance.
Definition: aephem.h:155
double d
The c in , in degrees.
Definition: aephem.h:236
Pluto, now a dwarf planet.
Definition: aephem.h:116
double px
Parallax, seconds of arc.
Definition: aephem.h:188
double mag
Visual magnitude.
Definition: aephem.h:192
Could not compute projection's native pole.
Definition: aephem.h:94
double n_disc
Number of pixels looking on the disc.
Definition: aephem.h:505
int n_const
Number of constants.
Definition: aephem.h:202
Our moon, relative to the Earth-moon barycentre.
Definition: aephem.h:117
ae_retcode_t
Error codes that functions might return.
Definition: aephem.h:69
double ae_mod_2pi(double x)
Reduce x modulo 2 pi.
Definition: math_util.c:78
Was expecting a JPL binary file.
Definition: aephem.h:80
For holding data on planetary ephemerides.
Definition: aephem.h:147
struct ae_orbit_t ae_orb_earth
Default orbital parameters for Earth.
Definition: init.c:65
void ae_annual_aberration(double v_earth[], double p[], int direction)
Correct for the annual aberration.
Definition: annual_ab.c:45
void ae_delta_q(double q0[], double q1[], double *dra, double *ddec)
Convert change in rectangular coordinatates to change in ra/dec.
Definition: coord.c:350
void ae_polar_to_rect(double ra, double dec, double radius, double rect[])
Convert ra/dec/radius to a rectangular vector.
Definition: coord.c:117
double r
Computed radius vector.
Definition: aephem.h:176
double mudec
Proper motion in Dec., "/century.
Definition: aephem.h:190
void ae_nutation_lon_ob(double jd_tt, double *nutl, double *nuto)
Calculate the nutation in longitude and oblation.
Definition: nutate.c:194
struct ae_physical_term_t ae_phys_no_term[]
An empty series for ephemeride terms with no extra terms.
Definition: phys_data.c:26
double ae_disc_solid_angle(double a, double b, double dist)
Calculate the solid angle of an observed disc.
Definition: physical.c:44
double pole_dec_t
North pole dec coefficient for T = Julian centuries since J2000.
Definition: aephem.h:262
For marking the end of the series.
Definition: aephem.h:140
int ae_light_t_jpl(struct ae_jpl_handle_t *jh, double jd_tt, double e[], int obj_num, double q[], double v_q[], char is_planetary)
Get the apparent position of an object, corrected for light-travel time.
Definition: light_t.c:90
double aes_last(double jd_ut1, double tlong)
Get the local apparent sidereal time.
Definition: calendar.c:145
const char * ae_ss_name[]
The names of the solar system bodies.
Definition: init.c:234
struct ae_physical_term_t * w_sin_term
Sine series coefficents for the prime meridian.
Definition: aephem.h:271
For holding information on a star/planet.
Definition: aephem.h:183
struct ae_plantbl_t ae_mer404
Ephemeris for Mercury.
Definition: mer404.c:1043
void ae_radec_to_gal(double ra, double dec, double *l, double *b, int fk5)
Convert ra/dec to l/b (galactic coordinates).
Definition: coord.c:216
double * t_ring
The temperature of the rings.
Definition: aephem.h:494
For holding Stokes parameters.
Definition: aephem.h:484
struct ae_physical_t ae_phys_neptune
Physical parameters for Neptune.
Definition: phys_data.c:205
struct ae_plantbl_t ae_mlr404
Ephemeris data for the moon.
Definition: mlr404.c:3275
Saturn, the Bringer of Old Age.
Definition: aephem.h:113
void ae_phys_pole(double jd_ut1, double jd_tt, const struct ae_physical_t *phys, double n[], double *w)
Calculate the axis of a body's north pole and its prime meridean.
Definition: physical.c:270
double rms_dev_spheroid
RMS deviation from spheroid, km. Not required.
Definition: aephem.h:252
double ae_delta_t(double jd_ut1)
Get the value of delta T == Ephemeris Time - Universal Time.
Definition: calendar.c:460
double v
The V stokes parameter.
Definition: aephem.h:488
Unable to parse float in JPL file.
Definition: aephem.h:84
Transform from J2000 to JD.
Definition: aephem.h:128
int ae_coord_to_constel_index(double ra, double dec, double epoch)
Given a sky coordinate, find the constellation it is in.
Definition: constel.c:654
For modelling Saturn's emission.
Definition: aephem.h:492
struct ae_plantbl_t ae_ear404
Ephemeris for the earth-moon barycentre.
Definition: ear404.c:1777
void ae_light_t_orbit(double jd_tt, double e[], const struct ae_orbit_t *orb, double q[])
Get the apparent position of an object, corrected for light-travel time.
Definition: light_t.c:46
ae_ss_bodies_t
Enumerate Solar System bodies.
Definition: aephem.h:107
void ae_radec_to_altaz(double last, double glat, double ra, double dec, double *alt, double *az)
Convert ra/dec to alt/az.
Definition: coord.c:144
double * vc
For caching velocity Chebyshev coefficients.
Definition: aephem.h:224
The Solar System Barycenter.
Definition: aephem.h:123
double ecc
Eccentricity.
Definition: aephem.h:169
double dec
Declination, degrees.
Definition: aephem.h:187
struct ae_orbit_t ae_orb_uranus
Default orbital parameters for Uranus.
Definition: init.c:137
int ae_jpl_init_ascii(const char *path, const char *header_path, int search_dates, struct ae_jpl_handle_t *jh)
Read a JPL ephemeris ASCII header.
Definition: jpl_eph.c:160
struct ae_stokes_t ** data
The bitmap.
Definition: aephem.h:520
void aes_subobs_point(double jd_ut1, const struct ae_orbit_t *o_orb, const struct ae_orbit_t *q_orb, const struct ae_physical_t *phys, double *lat, double *lon, double *dist)
Calculate the sub-observer point.
Definition: physical.c:147
double * block
A local cache of the most recent block read.
Definition: aephem.h:222
The JPL header was corrupted.
Definition: aephem.h:73
double ae_lmst(double jd_ut1, double jd_tt, double tlong)
Get the local mean sidereal time.
Definition: calendar.c:106
Bad JPL header; could not find a group.
Definition: aephem.h:75
int ae_jpl_init_bin(const char *path, struct ae_jpl_handle_t *jh)
Read a JPL Ephemeris header in binary format.
Definition: jpl_eph.c:383
struct ae_plantbl_t ae_sat404
Ephemeris for Saturn.
Definition: sat404.c:1737
double sun_pv_t
The time for which sun_pv was last calculated.
Definition: aephem.h:221
double step
Ephemeris step-size, in days.
Definition: aephem.h:201
Nutation.
Definition: aephem.h:119
struct ae_physical_t ae_phys_earth
Physical parameters for Earth.
Definition: phys_data.c:80
For storing a planetary map.
Definition: aephem.h:516
double ae_ctime_to_last(double t, double delta_t, double tlong, double nutl, double eps)
Calculate the local apparent sidereal time from a C time.
Definition: calendar.c:369
double t_disc
The temperature of the disc.
Definition: aephem.h:493
int ephemeris_version
Version number.
Definition: aephem.h:206
Mars, the Bringer of War.
Definition: aephem.h:111
Transform from JD to J2000.
Definition: aephem.h:129
double * exp_tau
For recording the opacity of the rings.
Definition: aephem.h:510
struct ae_physical_t ae_phys_uranus
Physical parameters for Uranus.
Definition: phys_data.c:174
double * pol_ring
Fractional linear polarisation of rings, assumed normal to ring surface.
Definition: aephem.h:497
double ae_flattening(const struct ae_physical_t *phys)
Calculate a body's flattening.
Definition: physical.c:328
void ae_topocentric(double jd_tt, double jd_ut1, double tlat, double glat, double tlong, double trho, double(*refrac)(double, void *), void *refrac_param, double dist, double *ra, double *dec)
Apply diurnal aberrations and calculate topocentric altitude and azimuth.
Definition: topocentric.c:60
double t_background
The background temperature.
Definition: aephem.h:495
The function does not work as it is still being developed!
Definition: aephem.h:97
struct ae_physical_t * ae_phys_planet[]
Pointers to the planetary physical information objects.
Definition: init.c:213
double ae_last(double jd_ut1, double jd_tt, double tlong, double nutl, double eps)
Get the local apparent sidereal time.
Definition: calendar.c:127
Uranus, the Magician.
Definition: aephem.h:114
double w_d_sq
Prime meridean coefficient for d^2.
Definition: aephem.h:269
void ae_geocentric_from_orbit(double jd_tt, const struct ae_orbit_t *o_orb, const struct ae_orbit_t *q_orb, double *ra, double *dec, double *dist)
Determine geocentric coordinates using orbital elements.
Definition: geocentric.c:141
double * const_val
Constant values.
Definition: aephem.h:208
int ae_read_star_from_cat(const char *path, const char *name, struct ae_star_t *star)
Parse star positional data from a catalogue file.
Definition: kfiles.c:119
ae_physical_use_d_or_t
Define whether a term uses T or d for physical ephemeride terms.
Definition: aephem.h:139
double ae_mjd(double jd)
Given a Julian Date, get the Modified Julian Date.
Definition: calendar.c:410
An unknown projection type was detected.
Definition: aephem.h:92
struct ae_plantbl_t ae_ven404
Ephemeris for Venus.
Definition: ven404.c:844
const double * a_outer
Outer radius of rings, in Saturn equatorial radii.
Definition: aephem.h:480
char name[32]
Object name (31 chars).
Definition: aephem.h:184
double r_eq
Equatorial radius, km.
Definition: aephem.h:250
A required FITS keyword did not exist.
Definition: aephem.h:90
void ae_g2plan(double jd_tt, struct ae_plantbl_t *plan, double pobj[], double *lp_equinox)
Accumulate the sum of trigonometric series in two variables.
Definition: gplan.c:521
Was expecting a JPL ASCII file.
Definition: aephem.h:79
An unexpected EOF was found in a file.
Definition: aephem.h:71
double ae_refrac_ulich(double alt, void *param)
Atmospheric refraction correction (in millimetre bands).
Definition: refrac.c:128
void ae_gal_to_radec(double ra, double dec, double *l, double *b, int fk5)
Convert l/b (galactic coordinates) to ra/dec.
Definition: coord.c:262
Julian date outside JPL ephemeris range.
Definition: aephem.h:83
void ae_g3plan(double jd_tt, struct ae_plantbl_t *plan, double pobj[], int objnum)
Accumulate the sum of trigonometric series in three variables.
Definition: gplan.c:379
struct ae_orbit_t ae_orb_mars
Default orbital parameters for Mars.
Definition: init.c:83
double * n_ring_disc
Number of pixels looking on-disc through each of the rings.
Definition: aephem.h:507
An error occurred in a call to libcfitsio.
Definition: aephem.h:93
int ae_jpl_init(const char *path, struct ae_jpl_handle_t *jh)
Initialise to use a JPL ephemeris file.
Definition: jpl_eph.c:75
void ae_diurnal_parallax(double last, double tlat, double trho, double dist, double *ra, double *dec)
Correct for diurnal parallax.
Definition: diurnal_px.c:46
struct ae_physical_t ae_phys_venus
Physical parameters for Venus.
Definition: phys_data.c:67
void ae_geocentric_from_cat(double jd_tt, double e[], double v_e[], const struct ae_star_t *star, double *ra, double *dec)
Reduce a star's catalogue coordinates to its apparent place.
Definition: geocentric.c:233
Remove the effect of aberration.
Definition: aephem.h:135
struct ae_physical_t ae_phys_mercury
Physical parameters for Mercury.
Definition: phys_data.c:54
struct ae_physical_term_t * ra_sin_term
Sine series coefficents for the north pole ra.
Definition: aephem.h:259
void ae_fk4_to_fk5(struct ae_star_t *star)
Convert FK4 B1950.0 catalogue coordinates to FK5 J2000.0 coordinates.
Definition: fk4_to_fk5.c:58
double ae_cal_to_jd(long year, int month, double day)
Calculate Julian date from a Gregorian calendar date.
Definition: calendar.c:219
Use d = # days since J2000.
Definition: aephem.h:141
struct ae_plantbl_t * ptable
The perturbation tables.
Definition: aephem.h:174
For holding information on an orbit.
Definition: aephem.h:161
double pol_disc_angle
Angle east of north of disc polarisation, in degrees.
Definition: aephem.h:501
double L
Computed mean longitude.
Definition: aephem.h:175
double * pc
For caching position Chebyshev coefficients.
Definition: aephem.h:223
char * arg_tbl
Table of arguments (?).
Definition: aephem.h:151
int is_bin
Is the file binary or ASCII?
Definition: aephem.h:212
Jove, the Bringer of Jollity.
Definition: aephem.h:112
A path could not be accessed for I/O.
Definition: aephem.h:70
struct ae_physical_t ae_phys_sun
Physical parameters for the Sun.
Definition: phys_data.c:31
void * lon_tbl
Table of longitudinal thingies (?).
Definition: aephem.h:152
int ae_jpl_get_coords(struct ae_jpl_handle_t *jh, double jd_tt, int obj_num, double r[], double v[], char is_planetary)
Get object positions from a JPL ephemeris file.
Definition: jpl_eph.c:851
const char * ae_retcode_string(int retcode)
For returning human readable return codes.
Definition: init.c:292
void ae_subobs_point(double j[], double n[], double w, double f, int retrograde, double *lat, double *lon)
Calculate the sub-observer point.
Definition: physical.c:213
double aes_disc_solid_angle(double jd_ut1, const struct ae_orbit_t *o_orb, const struct ae_orbit_t *q_orb, const struct ae_physical_t *phys)
Calculate the solid angle of an observed disc.
Definition: physical.c:63
double timescale
Timescale.
Definition: aephem.h:156
struct ae_orbit_t ae_orb_mercury
Default orbital parameters for Mercury.
Definition: init.c:29
double aes_ctime_to_last(double t, double tlong)
Calculate the local sidereal time from a C time.
Definition: calendar.c:393
double start
JD at which the ephemeris begins.
Definition: aephem.h:199
double ae_tdb(double jd)
Find Barycentric Dynamical Time from Terrestrial Dynamical Time.
Definition: calendar.c:165
char max_power_of_t
The maximum power in time.
Definition: aephem.h:150
int ae_geocentric_from_jpl(struct ae_jpl_handle_t *jh, double jd_tt, int obj_num, double *ra, double *dec, double *dist)
Determine geocentric coordinates using JPL ephemerides.
Definition: geocentric.c:192
double r_pole
Polar radius, km.
Definition: aephem.h:251
double pol_disc
Fractional linear polarisation of disc.
Definition: aephem.h:499
Venus, the Bringer of Peace.
Definition: aephem.h:109
Libration.
Definition: aephem.h:120
int last_block_num
Last block number read.
Definition: aephem.h:216
Object not found in a catalogue file.
Definition: aephem.h:87
double w
Prime meridean.
Definition: aephem.h:265
struct ae_orbit_t ae_orb_neptune
Default orbital parameters for Neptune.
Definition: init.c:155
double mura
Proper motion in R.A., "/century.
Definition: aephem.h:189
double q
The Q stokes parameter.
Definition: aephem.h:486
void * lat_tbl
Table of latitudinal thingies (?).
Definition: aephem.h:153
The coefficients for sine/cosine terms in a body's rotation data.
Definition: aephem.h:229
double dm
Daily motion, in AU per day.
Definition: aephem.h:168
double ae_g1plan(double jd_tt, struct ae_plantbl_t *plan)
Accumulate the sum of trigonometric series in one variable.
Definition: gplan.c:647
double ae_dut1(double jd_utc)
Given a UTC, return DUT1.
Definition: calendar.c:614
double pole_ra
North pole ra, J2000.
Definition: aephem.h:255
double max_depress
Maximum depression, km. Not required.
Definition: aephem.h:254
double trunclvl
?
Definition: aephem.h:157
double max_elev
Maximum elevation, km. Not required.
Definition: aephem.h:253
struct ae_plantbl_t ae_nep404
Ephemeris for Neptune.
Definition: nep404.c:480
FILE * fp
The JPL file being read from.
Definition: aephem.h:211
struct ae_orbit_t ae_orb_saturn
Default orbital parameters for Saturn.
Definition: init.c:119
double u
The U stokes parameter.
Definition: aephem.h:487
double r_mean
Mean radius, km. Not required.
Definition: aephem.h:249
double ae_light_t(double p[], double q[], int do_retardation)
Get light-travel time between two objects.
Definition: light_t.c:127
struct ae_ring_geometry_t ae_saturn_rings
Physical parameters for Saturn's rings.
Definition: phys_data.c:164
double a
Mean distance (semimajor axis), in AU.
Definition: aephem.h:167
double ae_refrac_visible(double alt, void *param)
Atmospheric refraction correction (in visible bands).
Definition: refrac.c:50
void ae_jd_to_cal(double jd, int *year, int *month, double *day)
Calculate month, day, and year from a Julian date.
Definition: calendar.c:277
struct ae_plantbl_t ae_jup404
Ephemeris for Jupiter.
Definition: jup404.c:1235
double i
Inclination, in degrees.
Definition: aephem.h:164
const char ** name
Names of rings.
Definition: aephem.h:475
An unknown read error occured in a file.
Definition: aephem.h:72
char maxargs
The length of arg_tbl, lon_tbl, lat_tbl and rad_tbl.
Definition: aephem.h:148
struct ae_plantbl_t ae_ura404
Ephemeris for Uranus.
Definition: ura404.c:1384
char ** const_name
Constant names.
Definition: aephem.h:207
double ae_jpl_get_const_val(const struct ae_jpl_handle_t *jh, const char *const_name)
Get the value of a constant defined in the JPL ephemeris header.
Definition: jpl_eph.c:522
double end
JD at which the ephemeris ends.
Definition: aephem.h:200
void ae_v_orbit(double jd_tt, const struct ae_orbit_t *orb, double v[])
Calculate the velocity of an object as it moves in its orbit.
Definition: v_orbit.c:40
Earth-moon barycentre.
Definition: aephem.h:110
struct ae_orbit_t ae_orb_jupiter
Default orbital parameters for Jupiter.
Definition: init.c:101
The earth.
Definition: aephem.h:121
double ae_mod_360(double x)
Reduce x modulo 360 degrees.
Definition: math_util.c:37
int swop
Do we need to swop bytes?
Definition: aephem.h:214
char name[32]
Name of the object.
Definition: aephem.h:162
double sun_pv[6]
For storing barycentric sun position/velocity.
Definition: aephem.h:220
double ae_epsilon(double jd_tt)
Calculate the obliquity of the ecliptic.
Definition: epsilon.c:55
double b
The b in , in degrees.
Definition: aephem.h:234
Data file seems corrupt.
Definition: aephem.h:82
double w_d
Prime meridean coefficient for d = days since J2000.
Definition: aephem.h:267