On this page I explain how terrestrial atmospheric refraction is calculated from basic physical laws and how the equations and constants used in refraction equations are derived. The same principle can be applied to derive astronomical refraction, although this is not the topic of this page.
Atmospheric Refraction is the bending of light due to a gradient of the refractive index caused by a density gradient of the air. This light bending causes observed objects in the distance to be displaced (mainly up) or distorted und inverted (mirage). In survey it is important to know how much light gets bent to be able to correct the observed height of a distant object for Refraction effects.
The density gradient along a light ray is difficult to measure in practice. Consequently, the path of a light ray can not be kown exactly. But as long as the air is not too turbulent, we can use an average gradient. In this case a light ray can be approximated by an arc with the radius r.
Refraction can be expressed by the Refraction Coefficient k, which is the ratio of the radius of the earth to the radius of a bent light ray:
(1) 

per Definition  
where^{'} 

Note: The phenomenon of refraction is not dependent on the shape of the earth. We could define a refraction factor that is not related to the radius of the earth. In fact we could simply use the curvature κ = 1 / r of the light ray. We can always get this curvature from k by dividing all equations for k through R: κ = k / R.
If we know the pressure, temperature and temperature gradient at the observer and assume the same conditions along the line of sight, we can use the following simple equation to calculate the Refraction Coefficient [1]:
(2) 
 
where^{'} 

How this equation is derived from the refractive index gradient of the air will be shown on this page.
If we know the Refraction Coefficient, height measurements using a theodolite can be corrected with the following equations:
(3) 
 
where^{'} 

A positive Refraction Angle means the light ray is bent down and the object appears too high. In a zenith angle measurement we have to add the Refraction Angle to the zenith angle to get the correct angle as measured without refraction.
From the Refraction Angle we can calculate the magnitude l of how much an object at distance d appears to be raised due to Refraction:
(4) 
 
where^{'} 

As Refraction Angles in radian are numbers much less than 1, this equations are very good approximations. The distance d can be the line of sight distance or the distance along the light ray or the distance along the surface of the earth. They are all essentially the same as long as d is much smaller than R.
Before we can derive equations for atmospheric refraction we first have to investigate how refraction works. We know that the speed of light in a medium is slower than in a vacuum. This is expressed by the refractive index:
(5) 

per Definition  
where^{'} 

The refractive index depends on the density and composition of the medium and the wavelength of the light. In a homogeneous solid like glas the refractive index is constant. As soon as light, or any electromagnetic wave, encounters a boundary with a sudden change in the refractive index, the light gets bent by an angle that can be calculated by Snell's law if we know the refractive index of both sides of the boundary. Light gets always bent towards the denser medium, that is the medium with a greater refractive index.
A typical value for the refractive index of air at sea level under standard atmospheric conditions is n_{o} = 1.000278. Since it is so close to 1, the difference between the refractive index of air and that in a vacuum (n = 1) is of most interest. Since n−1 is very small, it is useful to define Refractivity, which is equal to:
(6) 

per Definition  
where^{'} 

So Refractivity of air at sea level is typically N = 278 Nunits.
Refraction in the atmosphere is more complicated than in a solid with constant refractive index. The air density decreases continuously with increasing altitude. This is called a density gradient. Consequently the refractive index also decreases continuously with increasing altitude until it reaches 1 in the vaccum of space. How is light affected by a refractive index gradient? We can't apply Snell's law here because we have no boundaries.
But we can use calculus to derive an equation that relates curvature of a light ray to any refractive index gradient.
Consider a bundle of light rays propagating through the air with a refractive index gradient as shown in Fig. 1. The radius of curvature of the light ray is denoted as r. All rays in the bundle must traverse the air in the same time dt, if they are part of the same bundle. Lets consider two rays in that bundle.
Path 2: The wave on this path has a radius of r and a velocity v and traverses the path in a time dt. The length of the path that is traversed in time dt is r·dθ. Because length is velocity times time, we can write this as:
(7) 
Path 1: The refractive index n is different since the path is higher in the atmosphere. We denote the refractinve index here as n + dn where dn is the difference in the indices. The radius of this path is r + dr. The associated velocity is v + dv and the time interval dt is the same for both rays. Similar to (7) we can write for this ray:
(8) 
We can get rid of dθ and dt by dividing equations (7) and (8):
(9) 
Subtracting 1 from both sides we optain:
(10) 
The definition of the refractive index is n = c/v, where c is the speed of light in vacuum and v the speed of light in the medium. Differentiating with respect to v gives:
(11) 
We have now a relation between the refractive index and the speed of light in the medium. But we need a relation between the refractive index and the radius of curvature of the light ray. We can get this by replacing the green term in (11) with the blue term of (10):
(12) 
The inverse of the radius of curvature r is called curvature. Hence, the relation (12) describes the curvature of the ray as a function of the refractive index n and the refractive index gradient dn/dh.
We can make some simplifications: if we assume that the ray propagates close to parallel to the ground, so that the angle β in the figure is small, then cos(β) ≈ 1. The refractive index n of air is very close to 1, so we can neglegt the term 1/n.
So the curvature of the light ray can be expressed as:
(13) 
 
where^{'} 

Note: As the refractive index decreases with increasing altitude, the refractive index gradient is negative, but due to the minus sign the curvature is positive. From our derivation follows, that a positive curvature means that light gets bent down toward the surface. This causes objects in the distance to appear higher than they are.
This is true even if the light ray starts initialliy horizontal. This is due to the gradient of the refractive index, not the curvature of the atmosphere. So even on a flat earth with a vertical gradient, horizontal light gets bent down towards the denser part of the atmosphere.
Note: If the refractive index gradient is 0, the curvature 1/r of the light ray is zero, which means the light ray is straight.
Now we can calculate the curvature 1/r of a light ray at any point from the refractive index gradient dn/dh at that point. And as the Refraction Coefficient k is a measure of this curvature, using the relation (1), the Refraction Coefficient can be calculated from this gradient:
(14) 
 
where^{'} 

I found this derivation on the following PDF:
Note: The end result in the linked document is expressed as 1/K, where K is called the Kvalue. I call this value the Refraction Factor a. The connection between the Refraction Coefficient k and K or a is:
(15) 
 
where^{'} 

Calculations like for hidden height assume a straight light ray. But there is a trick to keep the same equations for bent light, by increasing the radius of the earth in the equations by the Refraction Factor a and making the light ray straight. The geometry of the two situations is the same.
A value of a = K = 7/6 corresponds to Standard Refraction k = 0.143.
Before we can derive the equation for the Rrefraction Coefficient k as a function of atmospheric pressure, temperature and temperature gradient, we have to calculate the Refractivity of the air N dependent on some atmospheric parameters.
The refractivity of the atmosphere at a certain point is a function of many things, including the wavelength of light, the air pressure P, the absolute temperate T, and the humidity e at that point. A commonly used expression is [3] [4]:
(16) 
 
where^{'} 

For an accuracy of less than 0.5% some simplifying assumptions may be made if we limit the range of certain variables [4]:
So equation (16) can be simplified to:
(17) 
 
where^{'} 

The constant K_{1} is calculated as follows: The refractivity is proportional to the density of the air. So we can write:
(18)  
gas law  
where^{'} 

Note: The factor 100 is present so we can use the pressure P in mbar instead of Pa (Pascal).
The blue term is our K_{1}. Now we only have to find the refractivity N_{o} for light of wavelength λ = 550 nm, standard pressure at sea level P_{o} = 1013.25 mbar and standard absolute temperature at sea level T_{o} = 288.15 K = 15°C. Humidity is set to 0 and CO_{2} content is set to standard 450 ppm, which is irrelevant for an accuracy of less than 0.5% as can be explored with the Calculator for Refractivity based on Ciddor Equation.
We can use the Calculator for Refractivity based on Ciddor Equation (or even the older Edlén Equation) to find N_{o} = 278. The Ciddor equation was derived empirically by accurate measurements of the refractive index of air under many different conditions [5].
Now we can calculate K_{1}:
(19) 

As we know how the Refraction Coefficient k can be calculated from the refractive index gradient dn/dh or the refractivity gradient dN/dh (14), we can derive the equation for the Refraction Coefficient from atmospheric parameters like pressure P, temperature T and temperature gradient dT/dh as shown in (2).
To be able to calculate the refractivity gradient dN/dh, we need equations to calculate pressure P and temperature T as functions of altitude h. This equations are provided for the model of the International Standard Atmosphere. For the troposphere with a linear temperature gradient α:
(20) 
 
with  
where^{'} 

(21) 
 
where^{'} 

We can insert this equations in (17) and get refractivity as a function of altitude:
(22)  
where^{'} 

We need the refractivity gradient, so we have to calculate the derivative with respect to h:
(23) 
We can split the blue term into 2 terms:
(24) 
Applying this split and simplifying we get:
(25) 
Resubstituting the expressions for P and T:
(26) 
gives:
(27) 
α is simply the temperature gradient α = dT/dh, so we finally get:
(28) 

We can insert some values: g/R_{S} = 0.0343 K/m, K_{1} = 79.0 K/mbar and R = 6.37 × 10^{6} m:
(29) 
to get finally:
(30) 
 
where^{'} 

Note: I used a value g = 9.83 m/s^{2} to get the published constant 0.0343. This is slightly more than average gravitational acceleration. Gravitational acceleration on earth at sea level is in the range of g = 9.7639...9.8337 m/s^{2} [6].