-- Introduction à la Mécanique des fluides numérique --

TP n°2

L'air Atmosphérique

simon.marie@lecnam.net

Dans ce notebook, on se propose de présenter les caratéristiques d'un modèle d'atmosphère standard issue de mesures ballon. On pourra ainsi se familiariser à l'utilisation de Python pour la lecture de Table de données et leur représentations graphiques.

Ce notebook est également une présentation rapide de l'évolution des grandeurs standards dans l'atmosphère terrestre (Pression, température, masse volumique).

Pour ceux qui ne seraient pas familier avec le language python, vous pouvez consulter le Notebook Introduction au Python.

In [1]:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('fivethirtyeight')
%matplotlib inline

L'idée c'est de représenter graphiquement l'évolution des grandeurs principales à partir des données d'un fichier "Data_Atmo.dat".

On crée donc deux fonction, une pour extraire les données du fichier et les représenter (atmo_table(n2,n1)) et une liste des "label" pour le type de donnée (leg)

In [5]:
leg=['','','','','','','','','','']
leg[0]='Altitude (m)' # Echantillonné tous les 100m entre 0 et 20km
leg[1]='$g (m/s^2)$' # Accélération de la pesenteur
leg[2]='Temperature (K)'
leg[3]=' Nombre Volumique ($m^{-3}$)' # Nombre moyen de molécules d'air par mètre cube
leg[4]= 'Masse volumique (kg/$m^3$)'
leg[5]=' $\\rho/\\rho_0$'
leg[6]='Vitesse du son m/s'
leg[7]='$\\nu$/$\\nu_0$' # Rapport des viscosité cinématique
leg[8]=' $\\kappa / \\kappa_0$ '
leg[9]=' $p/p_0$ '


def atmo_table(n2,n1=0):
    data=np.loadtxt('Data_Atmo.dat',dtype='f8');
    plt.plot(data[:,n1],data[:,n2])
    plt.xlabel(leg[n1])
    plt.ylabel(leg[n2])
In [8]:
# Exemple d'utilisation:
atmo_table(2) #Evolution de la pression en fonction de l'altitude.

On observe donc l'évolution de la pression atmosphérique en fonction de l'altitude. Celle-ci diminue pour atteindre 1/4 de sa valeur standard à 10000 m d'altitude !

On peut ensuite comparer l'évolution du rapport $p/(\rho T)$ à celle d'un gaz parfait ($p/(\rho T)=r$). Pour cela on peut tracer l'évolution du rapport:

$$\dfrac{p}{p_0} \dfrac{\rho_0}{\rho} \dfrac{T_0}{T} = \dfrac{p}{\rho r T}$$

On prendra $T_0=288$K

In [9]:
data=np.loadtxt('Data_Atmo.dat',dtype='f8');
plt.plot(data[:,0],288*data[:,9]/(data[:,5]*data[:,2]))
Out[9]:
[<matplotlib.lines.Line2D at 0x7f8e00046c18>]

Ainsi, l'air peut être considéré comme un gaz parfait jusqu'à 20km.

Enfin, on peut créer facilement une grille pour représenter plusieur grandeurs en fonction des autres. Pour ça on utilise la fonction subplot($x$,$y$,$n$) qui divise une figure en $x$ lignes et $y$ colonnes:

In [10]:
datas=[0,2,5]
fig=plt.figure(figsize=(10,10))
p=0
for i in datas:
    for j in datas:
        p+=1    
        fig.add_subplot(3,3,p)
        atmo_table(i,j)
In [11]:
from IPython.core.display import HTML
style=open('notebooks.css', "r").read()
HTML(style)
Out[11]: