Énergétique du climat, modélisation et scénarios¶
Rien d’obligatoire, mais quelques notions de base sur :
- les équations différentielles ordinaires du 1er ordre,
- les échanges énergétiques (thermodynamique),
- le cycle du carbone et le cycle de l’eau
peuvent être utiles.
Les étudiants et les étudiantes qui suivront ce cours pourront ainsi avoir une démonstration :
- des principaux phénomènes physiques en jeu dans l’évolution du climat ;
- de leur modélisation dans une version des plus simples ; et
- de l’utilisation de ces modèles et de scénarios pour projeter l’évolution future du climat.
Elles et ils sauront :
- prédire les grandes tendances de l’évolution du climat en réponse à un déséquilibre radiatif ;
- identifier des boucles de rétroaction contribuant de façon majeure à la sensibilité du climat :
- comprendre la notion d’engagement à un changement climatique ; et
- utiliser les estimations de la sensibilité climatique issues du GIEC pour projeter les évolutions des températures en réponse à des émissions de GES ; ou, à l’inverse,
- estimer le budget d’émissions de GES à ne pas dépasser pour respecter l’accord de Paris.
- Commencez par executer le block ci-dessous avec Shift + Enter, puis faites de-même avec les blocks suivants au fur et à mesure de votre progression.
- Répondez aux questions sur un brouillon et avec une calculatrice ou un ordinateur si nécessaire.
- Les réponses numériques sont à donner dans le système d'unités internationales (m, s, kg, K, J, W, ...).
- Les solutions aux problèmes numériques seront données par l'enseignant dans les cellules de code du notebook en notant les variables prescrites en majuscules (par ex :
RAYON_SOLEIL
) pour les distinguer des variables dérivées notées en minuscules (par ex :surf_soleil_terre
).
# Imports pour le calcul scientifique
import numpy as np
import pandas as pd
# Imports pour les graphes
import hvplot.pandas
import panel as pn
import panel.widgets as pnw
# Import pour gérer les chemins
from pathlib import Path
# Imports pour utiliser simclimat
from simclimat.model import ClimateIntegrator, get_sensitivity, set_option
Le parcours d'un rayon de Soleil¶
Afin de comprendre le rôle du Soleil et de la composition de l'atmosphère terrestre dans la détermination du climat de la Terre, commençons par suivre le parcours d'un rayon de Soleil qui atteint la Terre.
Figure 1.1: Le Soleil photographié depuis la Terre. Wikipedia.jpg).
Tout au long de ce travail, on supposera que le Soleil et la Terre sont de forme sphérique, une approximation qui n'impactera pas nos conclusions principales.
Émissions d'un rayonnement par le Soleil¶
Le Soleil est l'étoile de notre système. Elle est en milieu de vie environ (4.6 sur 11 milliards d'années).
Problème : Pourquoi le soleil émet-il un rayonnement ?
Figure 1.3: Une barre de cuivre chauffée jusqu’à incandescence, dans le noir, observée avec une caméra « thermique ». Fig. 2 in Marron et al. 2023.
Certains objets à haute températures émettent un rayonnement (métal, braise, lave). Dans la figure ci-dessus, il s'agit d'une barre de cuivre chauffée jusqu'à incandescence.
En dessous d'une certaine température (de l'ordre de 700°C), le métal n'émet plus de rayonnement visible : dans le noir, on ne le voit pas.
On peut cependant voir le reste de la barre de cuivre grâce à une caméra spéciale, parfois appelée "caméra thermique".
Question
- Que "voit-on" avec ce type de caméra ?
- Qu'est-ce qu'elle permet de mesurer directement ?
L'expérience ci-dessous permet de se convaincre de ce qui est réellement mesuré :
Figure 1.4: Mise en évidence du reflet infrarouge dans une vitre. Fig. 3 in Marron et al. 2023.
Question
- De quelles couleurs devrait-on voir la personne et la bibliothèque derrière elle avec ce type de caméra ?
Figure 1.5: Mise en évidence du reflet infrarouge dans une vitre. Fig. 3 in Marron et al. 2023.
Puissance du rayonnement émis par un objet¶
Figure 1.6: Introduction de la notion de puissance de rayonnement infrarouge. Fig. 4 in Marron et al. 2023.
Question
- Comment évolue la puissance du rayonnement émis par l'objet avec la température de l'objet ?
- Comment évolue la longueur d'onde du rayonnement émis par l'objet avec la température de l'objet ?
Estimation du rayonnement émis par le soleil¶
Le rayonnement du Soleil est émis depuis sa photosphère qui est alimentée par les réactions nucléaires en son cœur.
La puissance de son rayonnement $I_\mathrm{Soleil}$ est reliée à sa température de surface $T_\mathrm{Soleil}$ par loi de Stefan-Boltzman qui s'applique aux corps noirs:
$$ I_\mathrm{Soleil} = \sigma T_\mathrm{Soleil}^4 $$
où $\sigma = 5.670 \times 10^{-8}$ (W m-2 K4) est la constante de Stefan-Boltzmann.
Cette loi a permis à Stefan d'estimer la température du Soleil.
Pour estimer la température du Soleil comme l'a fait Stefan, il nous faut connaître la puissance de son rayonnement (le flux énergétique solaire par unité de surface du Soleil).
Ce dernier peut être calculé à partir:
- d'une mesure de la constante solaire, $S = 1361$ W m-2, mesurée par des radiomètres sensibles au rayonnement à toutes les longueurs d'onde ;
- d'une estimation de la distance Terre-soleil moyenne, $D_\mathrm{ST} = 1.496 \times 10^{11}$ m, mesurée avec une précision de l'ordre de la dizaine de mètres grâce à l'utilisation de sondes spatiales et de télémétrie radar (voir Mesure de la distance Terre-Soleil) ;
- d'une estimation du rayon moyen du Soleil, $R_\mathrm{Soleil} = 6.963 \times 10^8$ m, estimé à partir du diamètre apparent (rad) du soleil mesuré depuis la Terre (voir Taille apparente) et de la distance Terre-Soleil.
Constante solaire (W m-2)
La puissance du rayonnement solaire que recevrait une surface de 1 m2 située à une distance d'une unité astronomique (distance moyenne Terre-Soleil), exposée perpendiculairement aux rayons du Soleil, en l'absence d’atmosphère.
Figure 1.7: Composite des valeurs journalières de la constante solaire mesurée par des radiomètres sur différentes plateformes spatiales depuis novembre 1978: HF sur Nimbus7, ACRIM 1 sur SMM, ERBE sur ERBS, ACRIM II sur UARS, VIRGO sur SOHO, et ACRIM III sur ACRIM_Sat. Les valeurs moyennes et minimales sont également données. Australian Space Weather Forecasting Centre.
Question
- Calculer la puissance du rayonnement solaire à partir de la constante solaire et de la distance Soleil-Terre.
# Distance soleil-terre moyenne (m)
DISTANCE_SOLEIL_TERRE = 1.496e11
# Constante solaire (W m-2)
CONSTANTE_SOLAIRE = 1361
# Rayon moyen du soleil (m)
RAYON_SOLEIL = 6.963e8
# Constante de Stefan-Boltzmann (W m-2 K4)
SIGMA = 5.670e-8
Question
- Qualitativement, quelle serait la puissance et la couleur du rayonnement émis par une barre de cuivre chauffé à cette température ?
- Prédire la couleur du Soleil vu du haut de l'atmosphère terrestre.
Puissance du rayonnement solaire reçu par la Terre en moyenne ?¶
Question
- Quelle est la puissance du rayonnement solaire reçu par la Terre en moyenne (on la notera $Q$ (W m-2)) ?
- Comparer votre estimation à la valeur donnée par le 6ème rapport d'évaluation du GIEC (figure ci-dessous).
Figure 1.8: Bilan énergétique partiel de la Terre estimé au début du 21ème siècle : rayonnement solaire entrant. Fig 7.2 in IPCC AR6 WGI.
De quelle couleur est le soleil vu depuis le haut de l'atmosphère ?¶
La cellule de code ci-dessous représente :
- les couleurs vues par un être humain "conventionnel" aux différentes longueurs d'ondes
- le spectre d'émission de Planck d'un corps noir pour une température qui peut être choisie grâce au curseur,
- l'intensité des bandes Rouge-Vert-Bleu pour ce spectre,
- la couleur résultante vue par un être humain "conventionnel" (celle-ci est approximative et varie en fonction de votre écran).
Question
- Utiliser le graphe ci-dessous pour déterminer la couleur vue par un être humain regardant le soleil depuis le haut de l'atmosphère.
- Cette couleur correspond-elle à ce qui est vu depuis le sol ?
import warnings
warnings.filterwarnings("ignore")
import panel.widgets as pnw
import xarray as xr
import hvplot.xarray # noqa
import colour
from scipy import integrate
# Vitesse de la lumière dans le vide (m s-1)
VITESSE_LUMIERE_VIDE = 2.998e8
# Constante de Planck (J s)
CONSTANTE_PLANCK = 6.626e-34
# Constante de Boltzmann (J K-1)
CONSTANTE_BOLTZMANN = 1.381e-23
XLABEL = "Longeur d'onde (µm)"
YLABEL = "Luminance énergétique spectrale (MW m-2 sr-1 µm-1)"
def loi_planck(temperature, longueur_onde):
'''Application de la loi de Planck pour une température
et des longueurs d'onde données.'''
energie_thermique = CONSTANTE_BOLTZMANN * temperature
frequence = VITESSE_LUMIERE_VIDE / longueur_onde
energie_photon = CONSTANTE_PLANCK * frequence
distribution_bose_einstein = 1 / (
np.exp(energie_photon / energie_thermique) - 1)
luminance = (2 * CONSTANTE_PLANCK * VITESSE_LUMIERE_VIDE**2 / longueur_onde**5 *
distribution_bose_einstein)
return luminance
def calcule_luminance(temperature, range_longueur_onde=(0, 3)):
'''Retourne la luminance énergétique spectrale d'un corps noir à température donnée
par unité de longueur (MW m-2 µm-1) sur un intervalle de longueurs d'onde
selon la loi de Planck.'''
# Construction du tableau de longueur d'ondes à partir de l'intervalle
longueur_onde = np.linspace(*range_longueur_onde, 1 + 2**10) * 1.e-6
luminance = loi_planck(temperature, longueur_onde)
# Remplacer par des zéro où il y a eu division par zéro (longueur d'onde nulle)
luminance_safe = np.where(np.isinf(luminance) | np.isnan(luminance), 0, luminance)
# Formatage
s_luminance = pd.Series(
luminance_safe, index=longueur_onde * 1.e6, name=YLABEL)
s_luminance.index.name = XLABEL
# Conversion du résultat en W m-3 vers MW m-2 µm-1
return s_luminance * 1.e-6 * 1.e-6
def plot_color_eye(temperature):
'''Représentation de la couleur à l'oeil humain du spectre corps noir
à la température donnée.'''
# Calcul du spectre corps noir normalisé avec colour
sd = colour.sd_blackbody(temperature).normalise()
# Conversion du spectre en CIE XYZ
xyz = colour.sd_to_XYZ(sd)
# Conversion de XYZ à sRGB
rgb = colour.XYZ_to_sRGB(xyz / 100)
colors = [
(' R ', colour.notation.RGB_to_HEX([rgb[0], 0, 0])),
(' V ', colour.notation.RGB_to_HEX([0, rgb[1], 0])),
(' B ', colour.notation.RGB_to_HEX([0, 0, rgb[2]])),
(' ', None),
('RVB', colour.notation.RGB_to_HEX(rgb))
]
gspec = pn.GridSpec(width=100, height=200)
for k in range(len(colors)):
gspec[k, 0] = pn.pane.Str(colors[k][0])
gspec[k, 1] = pn.Spacer(background=colors[k][1])
return gspec
def plot_luminance(temperature, range_longueur_onde=3):
'''Représentation de la luminance énergétique spectrale calculée
selon la loi de Planck.'''
s_luminance = calcule_luminance(temperature, range_longueur_onde)
# Plot de la luminance
p_luminance = s_luminance.hvplot(color='k')
# Préparation d'un tableau pour représenter le spectre visible
longueur_onde_visible = np.linspace(0.38, 0.75, 101)
frequence_visible = VITESSE_LUMIERE_VIDE / longueur_onde_visible
da_longueur_onde_visible = xr.DataArray(
frequence_visible, coords=[(XLABEL, longueur_onde_visible)])
da_visible = da_longueur_onde_visible.expand_dims(
dim={YLABEL: np.array([0., 400.])})
# Plot du spectre visible
p_visible = da_visible.hvplot.contourf(
cmap='rainbow_r', levels=100, colorbar=False)
# Plot de la couleur à l'œil humain
p_color = plot_color_eye(temperature)
# Calcul de l'intensité lumineuse totale (W m-2)
dx = s_luminance.index[1] - s_luminance.index[0]
intensite = integrate.romb(s_luminance, dx=dx) * 1e6 * np.pi
title = 'Intensité lumineuse (W m-2): {:.2e}'.format(intensite)
# Superposition des graphes
xlim = s_luminance.index.min(), s_luminance.index.max()
ylim = 0., s_luminance.max() * 1.1
p = pn.Row(
(p_visible * p_luminance).opts(
show_legend=False, xlim=xlim, ylim=ylim, ylabel=YLABEL,
width=600, height=400, title=title),
p_color)
return p
slider_temperature = pnw.FloatSlider(
name="Température du corps noir (K)", start=200, end=1e4, step=50, value=3000,
bar_color='red')
slider_max_longueur_onde = pnw.IntRangeSlider(
name="Intervalle de longueurs d'onde (µm)", start=0, end=50, step=1, value=(0, 3),
bar_color='gray')
# Représentation graphique interactive
plot_luminance_interactif = pn.bind(
plot_luminance, slider_temperature, slider_max_longueur_onde)
pn.Column(pn.Row(slider_temperature, slider_max_longueur_onde), plot_luminance_interactif)
La traversée de l'atmosphère par le rayon de soleil¶
Qu'advient-il des rayons du soleil arrivés en haut de l'atmosphère lorsqu'il traverse celle-ci ?
Pour y répondre, appuyons-nous sur l'étude de la figure suivante et sur quelques connaissances préliminaires en physique.
Figure 1.9 : Une photographie d'un paysage. De Prabhu B. Doss.
Question
- Pourquoi voyons-nous l'image des nuages sur une partie du plan d'eau ?
- Pourquoi une partie du plan d'eau est sombre alors que la neige sur les montagnes apparaît blanche ?
- (Pourquoi une partie du plan d'eau est sombre alors que l'image des nuages apparaît vivement sur une autre ?)
- Pourquoi le ciel n'est-il pas noir ?
- (Pourquoi est-il bleu ?)
- Pourquoi les nuages sont blanc ou gris ?
- (Quand les nuages sont-ils blancs plutôt que gris ?
Figure 1.10: Bilan énergétique partiel de la Terre estimé au début du 21ème siècle : rayonnement solaire entrant, réfléchi et absorbé. Fig 7.2 in IPCC AR6 WGI.
Calcul de l'albédo¶
Les puissances du rayonnement solaire entrant et du rayonnement solaire sortant données dans la figure ci-dessus permettent de calculer la part du rayonnement solaire absorbé par la Terre (c'est-à-dire par sa surface et par son atmosphère).
Albedo (sans dimension)
L'albédo est le pouvoir réfléchissant d'une surface, c'est-à-dire le rapport de la puissance du rayonnement réfléchi à la puissance du rayonnement incident.
Pour définir l'albédo terrestre, on généralise cette notion à des surfaces complexes et en incluant la diffusion dans la réflexion.
- L'estimation des différentes puissances moyennes qui interviennent dans ce bilan est complexe: elle s'appuie sur des systèmes d'observation avancés (télédétection satellite en particulier) et sur des modèles physiques élaborés.
- Les dériver à partir d'observations et de principes premiers est donc hors de porté dans ce cours.
- Notons seulement qu'il est possible d'isoler le rayonnement solaire sortant du reste du rayonnement sortant en ne retenant que la plage des longueurs d'ondes correspondantes du spectre sortant mesuré.
- Ces estimations sont cependant issues de nombreux travaux scientifiques revus et synthétisés dans les rapports d'évaluation du GIEC successifs.
- Nous admettrons, donc leur autorité sans chercher à les redémontrer à par.
Question
- Calculer l'albédo, noté $\alpha$, de la Terre en incluant l'atmosphère, à partir de la puissance moyenne du rayonnement solaire entrant que nous avons calculé complété par les puissances moyennes de rayonnement données dans la figue précédente en supposant que
Énergie solaire absorbée par la Terre en un an¶
Supposons un instant que la figure précédente décrive le bilan énergétique complet du rayonnement moyen en haut de l'atmosphère terrestre et que ces moyennes correspondent à des rayonnements constants.
L'énergie associée à l'un de ces rayonnements sur 1 année est donnée par le produit de la puissance de ce rayonnement et de cette durée. Elle peut être intégrée sur l'ensemble de la surface de la Terre en connaissant le rayon de la Terre, $R_\mathrm{Terre} = 6.371 \times 10^6$ m, mesuré actuellement par satellite (voir Taille de la Terre).
- Question
- Avec ces hypothèses, calculer l'énergie qui serait absorbée par toute la surface de la Terre en une année.
- À la production annuelle de combien de centrales nucléaires (environ) en une année cette énergie est-elle égale ?
# Rayon moyen de la Terre (m)
RAYON_TERRE = 6.371e6
Pourquoi le soleil change-t-il de couleur quand il se couche ?¶
Question
- Utiliser les informations ci-dessous pour discuter :
- du rôle de la diffusion dans la couleur du soleil, du ciel et des nuages, vus depuis le sol,
- du rôle de la diffusion dans l'albédo global de la Terre.
from IPython.display import YouTubeVideo
YouTubeVideo('rA0vLouZOgg')
Vidéo 1.1: Expérience sur la couleur de la lumière diffusée (seule la première partie jusqu'à 1 m 40 s est utile ici). Université Joseph Fourier.
Figure 1.11: Schéma des effets sur un rayonnement incident venant de la gauche de la diffusion de Rayleigh (à gauche) et de la diffusion de Mie pour une particule de taille moyenne (au milieu) et pour une particule de grosse taille (à droite). Wikipedia.
Diffusion de Rayleigh¶
- Pour des particules petites par rapport à la longueur d'onde (jusqu'à un dixième de la longueur d'onde)
- Dépend de la longueur d'onde
- Dépend de l'angle de vue, mais relativement isotrope
Diffusion de Mie¶
- Pour des grosses particules
- Ne dépend pas de la longueur d'onde
- Direction de diffusion affectée par la taille de la particule
La fin d'un parcours, le commencement d'un nouveau¶
Ainsi, seule une partie du rayonnement solaire atteint la surface de la Terre sans être réfléchit.
Problème : Quelles sont les conséquences du rayonnement solaire reçu par la surface de la Terre ?
Introduction au rayonnement terrestre¶
Question
- Selon vous :
- Qu'advient-il à la part du rayonnement non-réfléchit qui atteint le sol ?
- Comment le sol maintient-il un équilibre énergétique ?
- En quoi cela dépend-il du type de surface (terre nue, végétation, océan, glace) ?
Figure 1.12: Bilan énergétique partiel de la Terre estimé au début du 21ème siècle : rayonnement solaire entrant, réfléchi et absorbé, et rayonnement terrestre émis. Fig 7.2 in IPCC AR6 WGI.
Parcours du rayonnement terrestre dans l'atmosphère¶
Pour comprendre ce qu'il advient du rayonnement émis par la Terre lorsque celui-ci traverse l'atmosphère, il nous faut étudier comment le rayonnement infrarouge interagit avec un gaz.
Commençons d'abord par étudier l'interaction du rayonnement infrarouge avec un solide ou un liquide.
Rayonnement à travers la matière solide ou liquide¶
L'expérience ci-dessous permet d'étudier un rayonnement au travers d'un verre d'eau à température ambiante et d'un autre plus chaud.
Le vers d'eau, qu'il soit chaud ou froid, laisse passer la lumière visible (même s'il modifie un peu sa trajectoire.
Figure 1.13: Rayonnement visible et infrarouge à travers la matière. Fig. 5 in Marron et al. 2023.
Question
- Le verre d'eau laisse-t-il passer le rayonnement infrarouge ?
- Qu'est-ce qui permet de le dire sur cette photo ?
Rayonnement à travers les gaz¶
On s'intéresse maintenant au cas du CO2 présent dans l'atmosphère.
Pour cela, on réalise des expérience avec des ballons remplis d'air et remplis d'eau et on mesure le rayonnement reçu par une caméra infrarouge.
L'atmosphère étant en moyenne plus froide que la surface terrestre, on considère dans un premier temps le cas de ballons plus froids que la température ambiante.
Ces expériences ne sont pas possibles avec les caméras infrarouges les plus courantes dont la gamme spectrale de sensibilité ne se superpose pas avec celle du spectre d'absorption du CO2.
Il faut pour cela une caméra infrarouge du type de celles utilisées par un laboratoire de physique.
Figure 1.14: Ballons d'air et de CO2 froids observés avec une caméra infrarouge. Fig. 8 in Marron et al. 2023.
Question
- Le CO2 laisse-t-il passer le rayonnement visible ?
- Pourquoi la couleur du ballon rempli de CO2 est-elle différente de la couleur du mur du fond ?
- Cela peut-il être dû à l'effet de la membrane du ballon ?
On reproduit maintenant l'expérience avec des ballons chauds.
Figure 1.15: Ballons d'air et de CO2 chauds observés avec une caméra infrarouge. Fig. 9 in Marron et al. 2023.
Question
- Comparer les résultats de cette expérience avec celles utilisant des verres d'eau, ci-dessus, en termes de rayonnement absorbé et de rayonnement émis.
Rayonnement émis par le système terre-atmosphère¶
Figure 1.16: Deux représentations du rayonnement infrarouge émis par le système Terre-atmosphère. Fig. 11 in Marron et al. 2023.
Question
- Comment évolue cette puissance de rayonnement infrarouge lorsque du CO2 est ajouté dans l'atmosphère toutes choses égales par ailleurs ?
Nous pouvons maintenant compléter la figure du bilan radiatif du système Terre-atmosphère ci-dessous.
Figure 1.18: Bilan énergétique partiel de la Terre estimé au début du 21ème siècle : rayonnement solaire entrant, réfléchi et absorbé, et rayonnement terrestre émis interagissant avec l'atmosphère. Fig 7.2 in IPCC AR6 WGI.
Flux de chaleur latente et sensible¶
Jusqu'à présent nous avons ignorés les flux de chaleur latente et de chaleur sensibles.
Nous les ignorons ici, mais les nous les mentionnons tout de même, car ils jouent un rôle important notamment dans l'homogénéisation des températures dans la troposphère.
Leurs valeurs estimées sont données dans la figure complétée du bilan radiatif ci-dessous.
Figure 1.19: Bilan énergétique partiel de la Terre estimé au début du 21ème siècle : rayonnement solaire entrant, réfléchi et absorbé, rayonnement terrestre émis interagissant avec l'atmosphère, et flux de chaleur sensible et latente. Fig 7.2 in IPCC AR6 WGI.
Bilan de rayonnements et évolution de la température¶
Le dernier élément nécessaire pour relier CO2 et température est la notion de bilan de rayonnements.
Partons d'une analogie : celle d'une plaque de tôle au soleil.
Figure 1.20: Bilan des rayonnements pour une plaque de tôle au Soleil. Fig. 13 in Marron et al. 2023.
Dans le vide¶
Figure : Bilan des rayonnements et évolution de la température, dans le vide. Fig. 15 in Marron et al. 2023.
Bilan des rayonnements du système Terre-atmosphère¶
Figure 1.21: Bilan des rayonnements du système Terre-atmosphère. Fig. 16 in Marron et al. 2023.
Question
- Répondre aux deux questions de la figure ci-dessus.
En résumé : le bilan énergétique observé du système Terre-atmosphère¶
Figure 1.23: Bilan énergétique du système Terre-atmosphère estimé au début du 21ème siècle : rayonnement solaire entrant, réfléchi et absorbé, rayonnement terrestre émis interagissant avec l'atmosphère, flux de chaleur sensible et latente, et déséquilibre du bilan énergétique. Fig 7.2 in IPCC AR6 WGI.
Prendre le bilan énergétique de la Terre comme référence¶
Notre point de départ est le bilan énergétique observé de la Terre tel que représenté dans la figure ci-dessus.
On peut voir que, même lorsque moyennées globalement, le bilan énergétique de la Terre implique un certain nombre de processus complexes.
Notre objectif est de nous focaliser sur les processus radiatifs et des les relier à la sensibilité du climat aux changements de concentrations de dioxyde de carbone (CO2).
Pour cela, un modèle zéro-dimensionnel du système Terre est conçu et utilisé.
Vers un modèle zéro-dimensionnel du système Terre¶
Nous nous focalisons sur le bilan radiatif global de la Terre, en ignorant les transferts énergétiques entre les surfaces et l'atmosphère associés au cycle de l'eau (flux de chaleur latente) et le contact des masses d'air avec la surface (flux de chaleur sensible). De plus, aucune distinction n'est faite entre l'atmosphère gazeuse et les nuages.
Pour une atmosphère totalement absorbante¶
Le système en considération est celui de la surface de la Terre et de l'atmosphère au-dessus. On suppose d'abord que l'atmosphère absorbe entièrement le rayonnement terrestre et qu'elle est suffisamment fine pour que l'intensité des radiations émises par les deux "faces" de la couche atmosphérique soient la même.
À l'équilibre, le bilan énergétique global de la Terre est donné par :
Modèle de bilan énergétique (MBE) totalement absorbant à l'équilibre :
\begin{equation} \begin{aligned} \left(1 - \alpha\right) \frac{S}{4} + \sigma T_G^4 &= \sigma T_0^4 \\ \sigma T_0^4 &= 2 \sigma T_G^4, \end{aligned} \end{equation}
où
- $T_0$ est la moyenne globale de la température à l'équilibre de surface de la Terre,
- $T_G$ est la moyenne globale de la température à l'équilibre de la couche gazeuse.
De plus, $\alpha$ et $G$ sont deux quantités à identifier ci-dessous.
Question
- Identifier les termes du bilan énergétique de la Terre représenté en Figure 1.23, ci-dessus, avec les termes du MBE totalement absorbant (Eq. 1).
- Quels termes en Figure 1.23 sont négligés dans le MBE totalement absorbant ?
- Est-ce que varier les concentrations en Gaz à Effet de Serre (GES) a un effet sur le MBE totalement absorbant ?
Pour une atmosphère partiellement absorbante¶
Nous developpons maintenant un MBE plus général. Les trois variables d'état, ou variables prognostiques dépendant du temps, de ce MBE sont :
- la moyenne globale de la température de la Terre, $T$ (Kelvin),
- la moyenne globale de la concentration en CO2, $CO2$ (parts per million, ppm,
- la latitude de l'étendue moyenne des glaces, $\phi$ (degrés vers le nord).
Le rayonnement solaire entrant absorbé par la surface, $Q$, et le rayonnement terrestre sortant du haut de l'atmosphère, $I$, sont donnés par l'équation diagnostique suivante,
\begin{equation}
\begin{aligned}
Q(T, \phi) &= \left[1 - \alpha(\phi)\right] \frac{S}{4} \\
I(T, CO2) &= \left[1 - G(T, CO2)\right] \sigma T^4.
\end{aligned}
\end{equation}
Dans ce modèle, la température moyenne de la surface ($T$) au temps $t$ est gouvernée par l'équation (différentielle ordinaire) prognostique quivante,
MBE partiellement absorbant :
\begin{align} \frac{dT}{dt} = (Q - I) / \tau_{\mathrm{RE}}, \end{align}
où $\tau_{\mathrm{RE}} = 100$ y est une constante associée à la "capacité thermique" de l'atmosphère et contrôlant l'échelle de temps de du retour à l'équilibre de la température de surface. La concentration de CO2 et l'étendue des glaces sont aussi gouvernées par des équations différentielles ordinaires fonctions des autres variables d'état. Ces relations sont clarifiées plus bas.
Question
- Sous quelles condition est-ce que l'équilibre radiatif est atteint dans le MBE partiellement absorbant (Eq. 3)?
- Qu'est-ce que cela implique concernant l'évolution de la température de surface ?
- À l'équilibre, pour quelle valeur de $G$ est-ce que l'équation du MBE partiellement absorbant (Eq. 3) coïncide avec le bilan radiatif du MBE totalement absorbant (Eq. 1) ?
- Qu'est-que les termes $\alpha$ et $G$ représentent dans ces modèles ?
Question
- Dériver la formule de la température $T_0$ à l'équilibre radiatif en fonction des autres variables d'état pour le MBE partiellement absorbant (Eq. 3)
- Coder cette formule afin de définir la variable
equilibrium_temperature
dans la fonctionget_equilibrium_temperature
dans la cellule de code ci-dessous.- Exécuter la cellule de code pour représenter $T_0$ en fonction de $\alpha$ et selon $G$.
- Expliquer la relation entre $T_0$ et $G$.
def donner_temperature_equilibre(G=0.25, constante_solaire=CONSTANTE_SOLAIRE, sigma=SIGMA):
# Définition du tableau de valeurs de alpha entre 0 et 1
alpha = np.arange(0, 1, 0.01)
# À FAIRE: remplacer 273 par la formule de la température à l'équilibre (K)
temperature_equilibre = 273
# Création du tableur indexé par alpha
df = pd.DataFrame(temperature_equilibre, index=alpha,
columns=["Température à l'équilibre"])
df.index.name = 'alpha'
# Graphe
return df.hvplot(ylim=[220, 320])
# Graphe interactif
hvp = pn.interact(donner_temperature_equilibre)
hvp
Boucle de rétroaction
Cycle de variables le long duquel une perturbation de l'une de ces variables est propagée par les autres variables de retour jusqu'à la variable initiale.
Une boucle de rétroaction est dite positive si elle amplifie la perturbation initiale.
Elle est dite négative si elle l'atténue.
Exemple en écologie: un boom dans une population de proies signifie plus de nourriture pour les prédateurs, ce qui accroît le nombre de prédateurs.
Cela conduit à une sur-prédation menant au déclin de la population de proies en réponse à quoi la population de prédateur décline également.
C'est une boucle de rétroaction négative.
Question
- À partir de votre compréhension des processus climatiques et de votre intuition, décrivez les relations les plus importantes entre les variables prognostiques $T$, $CO2$ et $\phi$, et les variables diagnostiques $Q$, $\alpha$, $I$ et $G$, qui devraient constituer le MBE partiellement absorbant (Eq. 3).
- Identifier trois boucles de rétroaction et si elles sont positives ou négatives.
Estimer la Sensibilité Climatique à l'Équilibre (SCE).¶
Le GIEC (2013) donne la définition suivante de la SCE :
Sensibilité Climatique à l'Équilibre
Le changement à l'équilibre de la moyenne globale et annuelle de la température de l'air à la surface après un doublement des concentrations atmosphériques de CO2 par rapport au niveau pré-industriel.
Le réchauffement mesuré par la SCE résulte d'une combinaison du réchauffement induit par la croissance des concentrations de CO2 toutes choses égales par ailleurs, du réchauffement dû aux boucles de rétroactions positives et du refroidissement dû aux boucles négatives, comme indiqué Figure 2.3, ci-dessous.
Figure 2.3: À la fois le réchauffement initial et les boucles de rétroaction contribuent à la SCE. Femkemilene. Creative Commons Attribution-Share Alike 4.0 International license.
Notre objectif est d'estimer la SCE à partir du MBE partiellement absorbant.
Implémenter le MBE partiellement absorbant¶
Le MBE est implémenter en Python.
Les équations du modèle sont définies dans la classe BaseClimate
dans le fichier simclimat/model.py.
L'équation pour le rayonnement solaire entrant $Q$ (Eq. 2) est codée dans la méthode get_power_in
ainsi,
power_in = (1. - albedo) * s0 / 4
et l'équation pour le rayonnement terrestre sortant $I$ (Eq. 2) est codée dans la méthode get_power_out
ainsi :
power_out = (1. - gh_frac) * self.param['sigma'] * state['temp']**4
où state
est un dictionnaire stockant les valeurs actuelles de la température de surface ('temp'
), des concentrations de CO2 ('co2'
) et de l'étendue des glaces ('lat_ice'
).
Les termes de droite des équations prognostiques pour la température, la concentration de CO2 et l'étendue des glaces sont donnés par les méthodes field_temperature
, field_co2
et field_latitude_ice
, respectivement.
Par exemple, pour la température,
def field_temperature(self, state, t=None):
"""Get value of the component of the vector field associated with
the temperature at the current state."""
# Solar power absorbed by the Earth
power_in = self.get_power_in(state)
# Solar power radiated out by the Earth
power_out = self.get_power_out(state)
val = (power_in - power_out) / self.param['tau_re']
return val
À partir du code, il pourrait sembler que les variables entrant dans les équations sont des paramètres constants.
Cependant, mis à part les quantités qui sont bien des paramètres et qui sont stockées dans le dictionnaire self.param
, toutes les variables (power_in
, power_out
, albedo
, gh_frac
, etc.) dependent des valeurs actuelles des variables d'état.
Comme expliqué ci-dessous, ces dernières sont mise à jour à chaque itération numérique du modèle.
Comprendre comment utiliser le MBE partiellement absorbant pour calculer la SCE¶
Ci-dessous, nous avons besoin de définir une solution stationnaire:
Solution stationnaire
Une solution du modèle pour laquelle les variables prognostiques n'évoluent pas dans le temps.
Dans le cas du MBE partiellement absorbant (Eq. 3), cela signifie que, \begin{equation} \begin{aligned} \frac{d T}{d t}(t) &= 0\\ \frac{d CO2}{d t}(t) &= 0\\ \frac{d \phi}{d t}(t) &= 0. \end{aligned} \end{equation}
L'implémentation numérique du MBE partiellement absorbant peut-être exécutée suivant deux modes: The partially-absorbing EBM can be run in two modes.
Mode intégration numérique selon le temps¶
Les variables prognostiques sont intégrées numériquement depuis l'état initial en avant dans le temps afin de donner une approximation de l'évolution transitoire du modèle sur une période donnée.
Les équations d'évolution étant continues dans le temps, elle nécessitent d'être discrétisée afin d'être intégrées numériquement en utilisant un ordinateur.
Pour cela, on peut par exemple utiliser le schéma numérique d'Euler avec un pas de temps $\delta t$ choisit ici d'un an.
Par exemple, la température pour l'année $t_n$ est obtenue à partir de l'état du systèe à l'année $t_{n - 1}$ selon la relation suivante:
\begin{align}
T(t_n) = T(t_{n - 1}) + \delta t (Q(t_{n - 1}) - I(t_{n - 1})) / \tau_{\mathrm{RE}}.
\end{align}
Ceci est illustré dans la Figure 4, ci-dessous.
Figure 2.4: Illustration de l'intégration numérique. Public Domain.
Ce schéma est implémenté dans la classe Euler
du fichier simclimat/integration.py.
Une itération est obtenue en appelant la méthode iterate
définie par
def iterate(self, state, t=None):
""" Integrate the model one time step forward
with a Euler scheme. """
# Evaluate the vector field at the current state
vec = self.field(state, t)
# Integrate the model one step forward with a Euler scheme
# Index in case there are some constant variables in the state
state[vec.keys()] += vec * self.dt
Mode continuation numérique¶
Ce mode résout directement le système pour trouver ses solutions stationnaires pour des valeurs d'un paramètre ou d'une variable (la variable de continuation) proches les unes des autres.
Cela est fait par une succession d'étapes de correction et de prévision (voir ci-dessous).
Si la solution stationnaire est (globalement) stable, une intégration initialisée dans le voisinage de cette solution finirait par converger vers celle-ci.
Ce processus d'intégration est, toutefois, bien plus lent en général que d'obtenir une solution stationnaire par continuation.
De plus, il ne fonctionnerait pas si la solution stationnaire était instable.
La solution stationnaire est plutôt trouvée par continuation en répétant les deux étapes suivantes :
- Étape de correction: Les zéros du terme de droite du système d'équations prognostiques (Eq. 5) sont cherchés, par exemple grâce à la méthode itérative de Newton..
- Étape de prévision: Une prévision de la nouvelle valeur de la solution stationnaire pour une nouvelle valeur de la variable de continuation est faite en utilisant la dérivée du terme de droite du système d'équations prognostiques par rapport à la variable de continuation (en supposant que des petits changements de la variable de continuation mènent à des changements finis de la solution stationnaire).
Ce processus de continuation en deux étapes est répété afin d'obtenir un graphe des solutions stationnaires en fonction de la variable de continuation, tel qu'illustré par la Figure 5, ci-dessous.
Il est implémenté dans la classe ContinuatorFixedPoint
du fichier simclimat/continuation.py
Figure 2.5: Illustration de la continuation numérique. Michael E Henderson. Free.
(Pour ce cours, il n'est pas nécessaire dans savoir plus concernant ces méthodes numériques.)
Question
- Dans quel mode et comment utiliseriez vous le MBE partiellement absorbant (Eq. 3) pour calculer la SCE ?
- Donner la formule explicite que vous appliqueriez pour calculer la SCE selon sa définition et en supposant que le niveau pré-industriel est définit pour l'année 1750 avec une concentration en CO2 de 280 ppm.
Analyser les solutions du MBE partiellement absorbant¶
Le code suivant implémente une application numérique du MBE afin de calculer la SCE selon la solution de la Question. Ce qui importe ici n'est pas le code lui-même, mais plutôt comment accéder aux résultats du modèle pour l'analyse :
- les résultats sont représentés ci-dessous par un graphe et une table donnant les données correspondantes ;
- différentes variables peuvent être représentées en cliquant sur les boutons radio ci-dessous,
- deux processus physiques peuvent être activés ou désactivés en cliquant sur les cases à cocher ci-dessous,
- le résultat du calcul de la SCE est donné dans la boite de texte du bas ci-dessous.
Avant cela, le bloque de code suivant doit être exécuté au moins une fois en cliquant dedans et en tapant Shift-Enter
.
# Import pour gérer les chemins
from pathlib import Path
# Import pour utiliser simclimat
from simclimat.model import ClimateContinuator, get_sensitivity, set_option
# Configuration des graphes
ldl = [['solid', 'dashed'], ['dotdash', 'dotted']]
kwargs_plot = {'width': 500, 'height': 400, 'legend': 'bottom_right',
'fontsize': 14}
# Variables à représenter
variable_groups = {
'Température': ['Température', "Température à l'équilibre"],
"Fraction d'effet de serre": ["Fraction d'effet de serre"],
"Latitude d'étendue des glaces": ["Latitude d'étendue des glaces"],
'Albédo': ['Albédo'],
'Rayonnement': ['Rayonnement solaire net', 'Rayonnement terrestre net']}
# Noms longs en français
long_names_fr = {
'temp': 'Température',
'temp_eq': "Température à l'équilibre",
'co2': 'Concentration de CO2',
'co2_eq': "Concentration de CO2 à l'équilibre",
'greenhouse_fraction': "Fraction d'effet de serre",
'lat_ice': "Latitude d'étendue des glaces",
'albedo': 'Albédo',
'power_in': 'Rayonnement solaire net',
'power_out': 'Rayonnement terrestre net',
'press_sat': 'Pression de vapeur saturante'
}
# Définition des processus qui peuvent être activés et désactivés
processes = {'water_vapor': "Rétroaction vapeur d'eau",
'latitude_ice': "Rétroaction glace-albedo"}
processes_long_names = list(processes.values())
# Définition du modèle pour le mode continuation
mdl = ClimateContinuator(Path('cfg', 'main.yaml'))
long_names_fr_short_names = {v: k for k, v in long_names_fr.items()}
def plot_variable(record, variable='temp'):
index_name = long_names_fr[mdl.cont_variable]
var_group = variable_groups[variable]
# Labels
xlabel = '{} ({})'.format(index_name, mdl.units['co2'])
ylabel1 = np.intersect1d(
var_group[0].split(), *(var.split() for var in var_group))
ylabel_no_units = ' '.join([ylabel1[l]
for l in range(len(ylabel1))])
ylabel = '{} ({})'.format(
ylabel_no_units, mdl.units[long_names_fr_short_names[var_group[0]]])
# Graphe de la branche pour une variable
g1 = record.hvplot(x=index_name, y=var_group, xlabel=xlabel,
ylabel=ylabel, line_dash=ldl[0], **kwargs_plot)
# Ajout de la table correspondante
table = record.hvplot.table(columns=[index_name] + var_group,
width=400, height=kwargs_plot['height'])
return pn.Row(g1, table)
# Définition du widget d'information de l'exécution
status_text = pnw.TextInput(value='Prêt à résoudre')
# Définition du widget donnant le résultat de la valeur de la SCE
sensitivity_text = pnw.TextInput(value='Exécuter pour calculer la valeur de la SCE')
def solve(active_processes, data):
# Mise à jour des processus actifs dans les options du modèle
for proc, proc_long_name in processes.items():
set_option(mdl.cfg['active'], proc,
proc_long_name in active_processes)
# Calcul de la branche de continuation
record, success = mdl.get_branch(verbose=False)
# Ajout des diagnostiques
diagnostic = mdl.diagnose(record)
record = pd.concat([record, diagnostic], axis='columns')
# Remplacer les noms courts par les longs pour les graphes
record.columns = [long_names_fr[name] for name in record.columns]
# Information du statut de l'exécution
if success:
status_text.value = 'Exécution {} réussie après {} pas'.format(
data['count'], record.index[-1])
else:
status_text.value = 'Run {} failed'.format(data['count'])
data['count'] += 1
# Impression de la SCE
co2 = record[long_names_fr['co2']]
temp = record[long_names_fr['temp']]
sensitivity = get_sensitivity(co2, temp, mdl.param['co2_ref'])
sensitivity_text.value = (
"Sensibilité climatique à l'équilibre : {:.2f} °C".format(sensitivity))
return record
# Définition des cases à cocher pour activer ou désactiver les processus
processes_checkboxgroup = pnw.CheckBoxGroup(
name='Active processes', value=processes_long_names,
options=processes_long_names, inline=False)
# Définition des boutons pour choisir une variable à représenter
variable_button = pnw.RadioButtonGroup(
name='variable', value=list(variable_groups)[0],
options=list(variable_groups))
data = {'record': None, 'count': 0, 'active_processes': None}
@pn.depends(processes_checkboxgroup, variable_button)
def reactive(active_processes, variable):
if (data['active_processes'] is None) or (
data['active_processes'] != active_processes):
data['active_processes'] = active_processes
data['record'] = solve(active_processes, data)
return plot_variable(data['record'], variable)
# Représentation graphique de l'ensemble
pn.Column(processes_checkboxgroup, status_text, variable_button, reactive,
sensitivity_text)
Question
- Assurez-vous que tous les processus sont actifs grâce aux cases à cocher.
- Décrivez les relations entre les variables du modèle à l'aide des figures en vous appuyant sur votre compréhension des processus et sur votre réponse à la Question.
Question
- Utilisez les résultats des figures pour discuter du caractère approprié de l'utilisation de la SCE pour calculer le changement de la température de surface à l'équilibre en réponse à un changement des concentrations de CO2 pour une autre concentration initiale que 280 ppm (par exemple pour sa valeur de 410 ppm en 2018).
Question
- Désactivez successivement les processus associez à la valeur d'eau et à l'étendue des glaces, analysez comment la SCE change et expliquez ces changements.
Telle qu'évaluée par le rapport d'évaluation numéro 6 (AR6) du GIEC, la SCE calculée à partir de modèles de système terre est vraisemblablement dans l'intervalle 2.5-4°C. La figure 2.6, ci-dessous, détaille ces nombres.
Figure 2.6: Estimations par le GIEC de la SCE. Fig. TS.16 in IPCC (2021).
Question
- Comparez les résultats de la SCE obtenus à partir du MBE partiellement absorbant avec les valeurs du GIEC.
- Quelles sont les différences majeures entre le MBE partiellement absorbant utilisé ici et les modèles de la circulation générale participant au GIEC ?
- Donnez plusieurs raisons motivant l'utilisation de modèles complexes plutôt qu'un MBE..
Pour aller plus loin¶
L'effet de serre terrestre est-il saturé ?¶
Il est parfois dit que l'effet de serre terrestre est saturé, c'est à dire qu'il y a bien un effet de serre, mais qu'ajouter du CO2 anthropique n'a aucun effet étant donné que l'atmosphère est déjà saturé en vapeur d'eau et en CO2.
C'est argument avait déjà été donné par Knut Angstrom au début du XXème siècle.
Il a déjà été démontré de manière scientifiquement convaincante que ce n'est pas le cas dès les années 1950, mais l'argument est encore aujourd'hui utilisé par certains pour remettre en cause l'influence humaine sur le climat.
Pour vous convaincre et aller plus loin dans votre compréhension de l'effet de serre, regarder la vidéo de médiation scientifique par David Louapre de Science étonnante.
YouTubeVideo('ewc8FBtEKPs')
Références¶
- Allen et al. (2018). IPCC. Global Warming of 1.5°C
- Dufresne, J.-L., & Treiner, J. (2011). L’effet de serre atmosphérique : Plus subtil qu’on ne le croit ! La Météorologie, 2011(72), 31‑41
- Hartmann, D.L. (1994). Global Physical Climatology, Academic Press.
- Masson-Delmotte et al. (2021). IPCC AR6 - WGI. Cambridge University Press, Cambridge
- Mélières, M.A., Maréchal, C. (2020). Climats: passé, présent, futur, Belin
- Strogatz, S.H. (1994). Nonlinear Dynamics and Chaos, Westview
Crédits¶
Contributeurs : Alexis Tantet, Imma Bastida et Philippe Drobinski. Ce notebook dépend du paquet Python py-simclimat qui est lui-même une adaptation du logiciel SimClimat. L'approche pédagogique du bilan radiatif du système Terre-Atmosphère et les figures correspondantes sont issus de Marron et al. 2023.