Celestial Programming : Approximate Atmospheric Refraction

These are approximate equations for atmospheric refraction as presented in Astronomical Algorithms, Eq 16.3 and 16.4 with the additional corrections to make the functions return 0 for 90°. The observed altitude will always be greater than the true altitude. So add \(R_{true}\) to the true altitude to get the observed altitude. And subtract \(R_{observed}\) from the observed altitude to get the true altitude.

\( R_{true} = \left ( \dfrac{1.02}{\tan \left (h+\dfrac{10.3}{h+5.11} \right )} + .0019279 \right ) \dfrac{P}{1010} * \dfrac{283}{273+T} \)
\( R_{observed} =\left( \dfrac {1} {\tan \left( h_0 + \dfrac{7.31}{h_0+4.4} \right)} + 0.0013515 \right ) \dfrac{P}{1010} * \dfrac{283}{273+T} \)

Test data compared to the Nautical Almanac
AltitudeExpected\(R_{observed}\)Error\(R_{true}\)Error

Graph of \(R_{observed}\) from 0° to 90°. Y axis - refraction in arcminutes, X axis - observed altitude in degrees.