New equatorial type (24 bytes: RA/Dec/distance) captures apparent coordinates of date — what the observation pipeline computes at precession step 3 but was discarding before hour angle conversion. Matches telescope GoTo mount conventions. 24 new SQL functions (82 → 106 total): - equatorial type I/O + 3 accessors (eq_ra, eq_dec, eq_distance) - Satellite RA/Dec: eci_to_equatorial (topocentric), eci_to_equatorial_geo (geocentric) - Solar system equatorial: planet/sun/moon/small_body_equatorial - Atmospheric refraction: Bennett (1982) with domain clamp at -1 deg - Refracted pass prediction: predict_passes_refracted (horizon at -0.569 deg) - Stellar proper motion: star_observe_pm, star_equatorial_pm (Hipparcos/Gaia convention) - Light-time correction: planet/sun/small_body_observe_apparent, *_equatorial_apparent - DE equatorial variants: planet_equatorial_de, moon_equatorial_de Also includes v0.8.0 orbital_elements type (MPC parser, small_body_observe), GiST 0-based indexing fix, llms.txt updates, and doc improvements. All 18 regression suites pass. Zero build warnings (GCC + Clang).
25 lines
761 B
C
25 lines
761 B
C
/*
|
|
* kepler.h -- Two-body Keplerian position from classical elements
|
|
*
|
|
* Exposes kepler_position() for use by orbital_elements_type.c
|
|
* and any future code that needs raw Keplerian propagation.
|
|
*/
|
|
|
|
#ifndef PG_ORRERY_KEPLER_H
|
|
#define PG_ORRERY_KEPLER_H
|
|
|
|
/*
|
|
* Two-body Keplerian position from classical orbital elements.
|
|
*
|
|
* q (AU), e, inc/omega/Omega (radians), T_peri (JD), jd (JD).
|
|
* Output: pos[3] in AU, ecliptic J2000 frame.
|
|
*
|
|
* Handles elliptic (e<0.99), near-parabolic (0.99<=e<=1.01),
|
|
* and hyperbolic (e>1.01) orbits.
|
|
*/
|
|
extern void kepler_position(double q, double e, double inc,
|
|
double omega, double Omega,
|
|
double T_peri, double jd, double pos[3]);
|
|
|
|
#endif /* PG_ORRERY_KEPLER_H */
|