Densidade atmosférica e suas mudanças devido à altitude
A atmosfera terrestre é dividida em camadas que variam em temperatura, densidade, pressão e altitude. Hoje vamos focar em uma dessas variáveis: a densidade do ar; ela é definida como a razão entre massa e volume :
Quanto maior a altitude e mais distante da superfície, menor será a densidade. Mas por que?
Podemos atribuir à essa queda três fatores:
- À medida que aumentamos a altura, há menos “ar” acima de nós, pressionando-nos, diminuindo a pressão e, assim, a densidade;
- Pela gravidade diminuir conforme aumenta-se a altitude, o peso efetivo do ar decai, diminuindo também a densidade;
- Em maiores altitudes, a temperatura do ar fica mais fria, sendo assim, menos denso.
Com isso, nota-se que não é simples compreender a divisão atmosférica, visto que há tantos fatores envolvidos. Portanto, vamos simplificar nosso estudo e simular um modelo no qual a atmosfera é uma única camada isotérmica, ou seja, não possui variação de temperatura, e em que há uma diminuição exponencial da densidade com a altitude:
Para como a densidade ao nível do mar. Vamos também assumir um intervalo para a altitude, com 200 valores entre 0 e 80 km. A partir disso, já podemos estabelecer essas relações em um gráfico e ver como é o decaimento da densidade nesse modelo simplificado. Lembrando que na realidade esse processo é bem mais complexo e não exclui a variação da temperatura!

Dados simulados, não são baseados em medidas experimentais. Trata-se apenas de uma representação sobre a proporcionalidade direta entre as variáveis. A escala logarítmica foi adotada para o eixo y e a escala linear para o eixo x para uma melhor visualização do intervalo estudado.

Dados simulados, não são baseados em medidas experimentais. Trata-se apenas de uma representação sobre a proporcionalidade direta entre as variáveis. A escala logarítmica foi adotada para o eixo y e para o eixo x para uma melhor visualização da função estudada.
Logo, percebemos que, independente das escalas, a diminuição da densidade conforme aumentamos a altitude é observada e comprovada.
Código utilizado para as simulações:
- Gráfico 1:
import numpy as np
import matplotlib.pyplot as plt
import imageio
import os
def atmospheric_density(altitude):
"""
Calcula a densidade atmosférica usando um modelo exponencial:
\rho(h) = \rho_0 * exp(-h/H)
onde:
- \rho_0 = 1.225 kg/m³ (densidade ao nível do mar)
- H = 8.5 km (altura de escala)
"""
rho_0 = 1.225 # kg/m³ (densidade ao nível do mar)
H = 8500 # metros (altura de escala)
return rho_0 * np.exp(-altitude / H)
# Gerando valores de altitude de 0 a 80 km
altitudes = np.linspace(0, 80000, 200)
# Calculando as densiades atmosféricas
densities = atmospheric_density(altitudes)
# Create a directory to store the frames
if not os.path.exists("frames"):
os.makedirs("frames")
# Generate frames for the GIF
for i in range(1, len(altitudes) + 1):
plt.figure(figsize=(8, 5))
plt.plot(altitudes[:i] / 1000, densities[:i], label='Densidade Atmosférica', color='b')
plt.xlabel('Altitude (km)')
plt.ylabel('Densidade (kg/m³)')
plt.title('Densidade Atmosférica vs. Altitude')
plt.yscale('log')
plt.legend()
plt.grid()
# Save the frame
filename = f"frames/frame_{i:03d}.png" # Pad with leading zeros for proper sorting
plt.savefig(filename)
plt.close()
# Create the GIF using imageio
frames = []
for i in range(1, len(altitudes) + 1):
filename = f"frames/frame_{i:03d}.png"
frames.append(imageio.imread(filename))
imageio.mimsave("atmospheric_density.gif", frames, fps=10)
print("GIF created successfully!")
- Gráfico 2:
import numpy as np
import matplotlib.pyplot as plt
import imageio
import os
def atmospheric_density(altitude):
"""
Calcula a densidade atmosférica usando um modelo exponencial:
\rho(h) = \rho_0 * exp(-h/H)
onde:
- \rho_0 = 1.225 kg/m³ (densidade ao nível do mar)
- H = 8.5 km (altura de escala)
"""
rho_0 = 1.225 # kg/m³ (densidade ao nível do mar)
H = 8500 # metros (altura de escala)
return rho_0 * np.exp(-altitude / H)
# Gerando valores de altitude de 0 a 80 km
altitudes = np.linspace(0, 80000, 200)
# Calculando as densiades atmosféricas
densities = atmospheric_density(altitudes)
# Create a directory to store the frames
if not os.path.exists("frames"):
os.makedirs("frames")
# Generate frames for the GIF
for i in range(1, len(altitudes) + 1):
plt.figure(figsize=(8, 5))
plt.plot(altitudes[:i] / 1000, densities[:i], label='Densidade Atmosférica', color='b')
plt.xlabel('Altitude (km)')
plt.ylabel('Densidade (kg/m³)')
plt.title('Densidade Atmosférica vs. Altitude')
# set scale to 'log' for both x and y axes
plt.xscale('log')
plt.yscale('log')
plt.legend()
plt.grid()
# Save the frame
filename = f"frames/frame_{i:03d}.png" # Pad with leading zeros for proper sorting
plt.savefig(filename)
plt.close()
# Create the GIF using imageio
frames = []
for i in range(1, len(altitudes) + 1):
filename = f"frames/frame_{i:03d}.png"
frames.append(imageio.imread(filename))
imageio.mimsave("atmospheric_density_exp.gif", frames, fps=10)
print("GIF created successfully!")