Celestial Programming : Compute Horizon Distance

Assumes a spherical body, without atmospheric refraction.
\(d\) distance from viewpoint to horizon.
\(R\) radius of body.
\(h\) height of viewpoint above body's surface.
\(s\) Length of the arc along the body's surface, from the point exactly below the observer, to the horizon.
\(\gamma\) Angle between the point on the surface of the body exactly below the observer, the center of the body, and the horizon

For Earth, \(R\) is 6,378 km (3,963 mi) for the equitorial radius, and 6,357 km (3,950 mi) for the polar radius.

The value \(s\) can be used to determine the visible field of a satellite, as well as where a satellite will be visible from Earth.

Computes the distance from the observer's eye to the point on the horizon

\(d = \sqrt{2Rh+h^2} \)

Arc length along Earth's surface from observer's position to horizon

Computes the length of the arc along the Earths surface, starting at the point directly below the observer to the horzion.
\(s=R\cos^{-1}\left( \dfrac{R}{R+h}\right)\)

Angle to horizon in degrees

Computes the angle between the point below the observer, the center of the Earth, and the horizon.
\[\gamma=\cos^{-1}\left( \dfrac{R}{R+h} \right) \]

Approximate, when height above Erath is small compared to Earth's radius:

\(h\) in feet, \(d\) in Miles
\(d \approx s \approx 1.22\sqrt{h}\)
\(h\) in meters, \(d\) in kilometers
\(d \approx s \approx 3.57\sqrt{h}\)

Test Data for Earth

\(h\) Equitorial Polar Approximation Arc Length \(\gamma\)