But anyway, this again… Here is a quick and dirty Python program to calculate the weight of a “standard” air column per square metre of a given height using the barometric formula and data lifted from Wikipedia:
import math
import scipy.integrate as integrate
g0 = 9.80665 # Earth-surface gravitational acceleration [m/s2]
M = 0.0289644 # Molar mass Earth's air [kg/mol]
R0 = 8.3144598 # Universal gas constant [Nm/(mol·K)]
# https://en.wikipedia.org/wiki/Barometric_formula
def rho(h):
# Geopotential height [m], Mass density [kg/m3],
# Standard temperature [K], and Temperature lapse rate [K/m]
if h < 10_000:
h_b, rho_b, T_b, L_b = 0.0, 1.2250, 288.15, 0.0065
elif h < 20_000:
h_b, rho_b, T_b, L_b = 11_000.0, 0.36391, 216.65, None
elif h < 32_000:
h_b, rho_b, T_b, L_b = 20_000.0, 0.08803, 216.65, -0.001
elif h < 47_000:
h_b, rho_b, T_b, L_b = 32_000.0, 0.01322, 228.65, -0.0028
elif h < 51_000:
h_b, rho_b, T_b, L_b = 47_000.0, 0.00143, 270.65, None
elif h < 71_000:
h_b, rho_b, T_b, L_b = 51_000.0, 0.00086, 270.65, 0.0028
else:
h_b, rho_b, T_b, L_b = 71_000.0, 0.000064, 214.65, 0.002
if L_b is None:
rho = rho_b * math.exp(-g0*M*(h-h_b) / (R0*T_b))
else:
rho = rho_b * ((T_b + (h-h_b)*L_b) / T_b)**(g0*M/(R0*L_b) - 1.0)
return rho
for hmax_km in [1, 1.6, 3, 10, 30, 70]:
mass_per_sqm = integrate.quad(rho, 0, hmax_km*1000, limit=100)
print(f'hmax = {hmax_km} km => air mass = {int(mass_per_sqm[0])} kg/m2')
The program calculates the mass over an area of 1 square meter from ground level and up to 1 km, 1.6 km, 3 km, 10 km, 30 km, and 70 km. Above this, there is very little point in continuing, so I stopped there. The output is the following:
hmax = 1 km => air mass = 1285 kg/m2
hmax = 1.6 km => air mass = 2116 kg/m2
hmax = 3 km => air mass = 4244 kg/m2
hmax = 10 km => air mass = 19763 kg/m2
hmax = 30 km => air mass = 24153 kg/m2
hmax = 70 km => air mass = 26281 kg/m2
If you want it for areas larger than 1 square meter, please feel free to multiply the numbers up to your selected area. If you want non-SI units over non-SI areas, feel free to convert it yourself, 'cause I’m not touching US customary units. I stretched as far as explicitly including 1.6 km, and that should be enough.