PINE LIBRARY

LunarSolver

79
LunarSolver Library

Implements analytical approximations from Éphéméride Lunaire Parisienne (ELP2000-82B) lunar theory (Chapront-Touzé & Chapront). Uses truncated Fourier series of the main problem in Delaunay arguments D, l, l', F.

Exported functions:
  • delta_t(t_ms) → ΔT (seconds); polynomial fit valid ~1950–2050.
  • julian_day_tt(t_ms) → JD in Terrestrial Time from UTC millisecond timestamp.
  • jde_tt_to_utc_ms(jde_tt) → Approximate UTC millisecond timestamp from JD TT.
  • elp_true_distance_km_50(jd_tt) → Geocentric distance (km); 50 largest-amplitude terms.
  • elp_new_moon_solver_50(k) → JDE TT of new moon nearest lunation number k (k=0 ≈ 2000-01-06); 50-term longitude series + Newton-Raphson iteration (convergence <0.005 days).
  • elp_full_moon_solver_50(k) → JDE TT of full moon nearest k (k=0 ≈ 2000-01-21); 50-term longitude series + nutation correction + damped iteration (convergence <0.001 days).


Accuracy (truncation-limited):
- Distance: typically ± 10 - 100 km.
- Syzygy times: typically ± few minutes.

Import:
Pine Script®
import telephonejack/LunarSolver/1 as lunar


Usage examples:
Pine Script®
//@version=6 indicator("Lunar Distance Demo") float jd_tt = lunar.julian_day_tt(time) float dist_km = lunar.elp_true_distance_km_50(jd_tt) plot(dist_km, "Distance (km)") // Approximate lunation k for current bar float k_approx = (lunar.julian_day_tt(time) - 2451550.25977) / 29.530588861 int k = math.round(k_approx) float new_jde = lunar.elp_new_moon_solver_50(k) float full_jde = lunar.elp_full_moon_solver_50(k)


Coefficients: top 50 terms by amplitude from ELP main problem series (radius vector & longitude). Phase solvers use longitude terms only. Library contains no latitude series.


Disclaimer: The library was developed with assistance from Grok 4.1, always under human supervision and decision-making.

Aviso legal

As informações e publicações não se destinam a ser, e não constituem, conselhos ou recomendações financeiras, de investimento, comerciais ou de outro tipo fornecidos ou endossados pela TradingView. Leia mais nos Termos de Uso.