# Why does Earth's atmospheric density have a big “knee” around 100 km? Is there a good analytical approximation?

I've used a quick very rough approximation of the drop of atmospheric density with altitude in this answer and in this answer by using a single exponential and scale height parameter, but that's not what happens in reality. I've typed in some numbers from the U.S. Standard Atmosphere 1976 for $$\rho(Z)/\rho_0$$ and plotted it below.

The Standard Atmosphere document contains a thorough introduction, and I will try to read it, but in the mean time I'd still like to know if there is a very simple way to understand what changes in the atmospheric physics in the neighborhood 100 km that makes the density fall off so much more slowly beyond this region? Why the giant knee?

Is there a way to write a nice, smooth, analytic function that better approximates the density that reproduces the general behavior of this knee?

note: the three thin lines are simple scale-height plots with $$h_{scale}$$ of 6.5, 7, and 7.5 km, bottom to top, just for reference.

Python for plot:

info = """80, 1.5068E-05, 85, 6.7099E-06, 90, 2.789E-06,
95, 1.137E-06, 100, 4.575E-07, 105, 1.898E-07,
110, 7.925E-08, 115, 3.501E-08, 120, 1.814E-08,
125, 1.054E-08, 130, 6.655E-09, 135, 4.461E-09,
140, 3.128E-09, 145, 2.270E-09, 150, 1.694E-09,
155, 1.294E-09, 160, 1.007E-09, 165, 7.959E-10,
170, 6.380E-10, 175, 5.174E-10, 180, 4.240E-10,
190, 2.924E-10, 200, 2.047E-10, 210, 1.507E-10,
220, 1.116E-10, 230, 8.402E-11, 240, 6.415E-11,
250, 4.957E-11, 260, 3.871E-11, 280, 2.425E-11,
300, 1.564E-11, 320, 1.032E-11, 340, 6.941E-12,
360, 4.739E-12, 380, 3.276E-12, 400, 2.288E-12,
420, 1.612E-12, 440, 1.144E-12, 460, 8.180E-13,
480, 5.844E-13, 500, 4.257E-13"""

import numpy as np
import matplotlib.pyplot as plt

alti, ratio = [info.strip('/n').split(',')[i::2] for i in range(2)]

alti, ratio = [np.array([float(x) for x in thing]) for thing in [alti, ratio]]

alts = alti[:15]

rats = [np.exp(-alts/hs) for hs in [6.5, 7, 7.5]]

# https://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19770009539.pdf
# U.S. Standard Atmosphere, 1976, NOAA, NASA, USAF
# Altitude (Z, Geometric Height) is in kilometers above sea level.
# Data is from Table 4.
# Here ratio is rho(Z) / rho_0, and rho_0 seems to be 1.225 kg/m^3

plt.figure()
plt.yscale('log')
for rat in rats:
plt.plot(alts, rat, linewidth=0.6)
plt.plot(alti, ratio, '-k', linewidth=2)
plt.show()

• Reference: en.wikipedia.org/wiki/Thermosphere – Russell Borogove May 23 '17 at 6:40
• @RussellBorogove I see, plug that into here en.wikipedia.org/wiki/Scale_height. Oh, so there is a chance of a nice smooth analytical function for $\rho(Z)/\rho_0$ if one adds an analytical function for height-dependent temperature. Nice! – uhoh May 23 '17 at 6:47
• – David Hammen May 23 '17 at 11:12
• @DavidHammen I should have just searched here for "knee" :) So it's only the part about the analytical approximation that keeps this from being a duplicate. Not that I'm advocating using them. – uhoh May 23 '17 at 11:16
• The link found in this comment seems helpful. – uhoh May 23 '17 at 11:38