Celestial Programming : Compute Horizon Distance


Assumes a spherical body, without atmospheric refraction.
dd distance from viewpoint to horizon.
RR radius of body.
hh height of viewpoint above body's surface.
ss 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, RR is 6,378 km (3,963 mi) for the equitorial radius, and 6,357 km (3,950 mi) for the polar radius.

The value ss 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=2Rh+h2d = \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=Rcos1(RR+h)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.
γ=cos1(RR+h)\gamma=\cos^{-1}\left( \dfrac{R}{R+h} \right)

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

hh in feet, dd in Miles
ds1.22hd \approx s \approx 1.22\sqrt{h}
hh in meters, dd in kilometers
ds3.57hd \approx s \approx 3.57\sqrt{h}

Test Data for Earth

hh Equitorial Polar Approximation Arc Length γ\gamma
0 m (0 feet)0 m (0 feet)0 m (0 feet)0 m (0 feet)0 m (0 feet)
0.5 m (1.6 feet)2.5 km (1.5 mi)2.5 km (1.5 mi)2.5 km (1.5 mi)2.5 km (1.5 mi)0.022°
1 m (3.2 feet)3.5 km (2.2 mi)3.5 km (2.2 mi)3.5 km (2.2 mi)3.5 km (2.2 mi)0.032°
1.5 m (4.9 feet)4.3 km (2.7 mi)4.3 km (2.7 mi)4.3 km (2.7 mi)4.3 km (2.7 mi)0.039°
2 m (6.5 feet)5 km (3.1 mi)5 km (3.1 mi)5 km (3.1 mi)5 km (3.1 mi)0.045°
3 m (9.8 feet)6.1 km (3.8 mi)6.1 km (3.8 mi)6.1 km (3.8 mi)6.1 km (3.8 mi)0.055°
4 m (13.1 feet)7.1 km (4.4 mi)7.1 km (4.4 mi)7.1 km (4.4 mi)7.1 km (4.4 mi)0.064°
5 m (16.4 feet)7.9 km (4.9 mi)7.9 km (4.9 mi)7.9 km (4.9 mi)7.9 km (4.9 mi)0.071°
6 m (19.6 feet)8.7 km (5.4 mi)8.7 km (5.4 mi)8.7 km (5.4 mi)8.7 km (5.4 mi)0.078°
7 m (22 feet)9.4 km (5.8 mi)9.4 km (5.8 mi)9.4 km (5.8 mi)9.4 km (5.8 mi)0.084°
8 m (26 feet)10.1 km (6.2 mi)10 km (6.2 mi)10 km (6.2 mi)10.1 km (6.2 mi)0.09°
9 m (29 feet)10.7 km (6.6 mi)10.6 km (6.6 mi)10.7 km (6.6 mi)10.7 km (6.6 mi)0.096°
10 m (32 feet)11.2 km (7 mi)11.2 km (7 mi)11.2 km (7 mi)11.2 km (7 mi)0.101°
20 m (65 feet)15.9 km (9.9 mi)15.9 km (9.9 mi)15.9 km (9.9 mi)15.9 km (9.9 mi)0.143°
30 m (98 feet)19.5 km (12.1 mi)19.5 km (12.1 mi)19.5 km (12.1 mi)19.5 km (12.1 mi)0.175°
40 m (131 feet)22 km (14 mi)22 km (14 mi)22 km (14 mi)22 km (14 mi)0.202°
50 m (164 feet)25 km (15.6 mi)25 km (15.6 mi)25 km (15.6 mi)25 km (15.6 mi)0.226°
100 m (328 feet)35 km (22 mi)35 km (22 mi)35 km (22 mi)35 km (22 mi)0.32°
200 m (656 feet)50 km (31 mi)50 km (31 mi)50 km (31 mi)50 km (31 mi)0.453°
500 m (1,640 feet)79 km (49 mi)79 km (49 mi)79 km (49 mi)79 km (49 mi)0.717°
1 km (3,280 feet)112 km (70 mi)112 km (70 mi)112 km (70 mi)112 km (70 mi)1.014°
2 km (1.2 mi)159 km (99 mi)159 km (99 mi)159 km (99 mi)159 km (99 mi)1.434°
10 km (6.2 mi)357 km (222 mi)356 km (221 mi)357 km (221 mi)356 km (221 mi)3.206°
100 km (62 mi)1,133 km (704 mi)1,131 km (703 mi)1,128 km (701 mi)1,122 km (697 mi)10.08°
1,000 km (621 mi)3,708 km (2,304 mi)3,703 km (2,301 mi)3,570 km (2,218 mi)3,359 km (2,087 mi)30.178°
10,000 km (6,213 mi)15,085 km (9,373 mi)15,071 km (9,364 mi)11,289 km (7,014 mi)7,467 km (4,639 mi)67.081°
1,000,000 km (621,371 mi)1,006,357 km (625,321 mi)1,006,336 km (625,308 mi)112,893 km (70,148 mi)9,978 km (6,200 mi)89.636°