Analyser les tendances de la glace arctique avec Python

Analyze Arctic ice trends with Python.

Examen des prédictions passées

Iceberg islandais incliné (image de l'auteur)

La mesure est la pierre angulaire de toute science. Sans elle, comment pourrions-nous tester nos hypothèses ?

Python, en tant que langage de programmation prééminent pour la science des données, rend facile la collecte, le nettoyage et la compréhension des données de mesure. Avec Python, nous pouvons tester les prédictions passées, valider les modèles et tenir les pronostiqueurs responsables.

L’année dernière, un vieux mème se moquant d’Al Gore est apparu dans mon flux LinkedIn, marqué avec le hashtag « #catastrophizing ». Le sujet était ses commentaires en 2007 et 2009 selon lesquels la mer Arctique serait dépourvue de glace estivale dans un délai de sept ans. Plusieurs sites de vérification des faits ont vérifié cette déclaration comme étant « en grande partie vraie » et ont fait référence à la citation suivante :

« Certains modèles suggèrent à Dr. (Wieslav) Maslowski qu’il y a 75 % de chances que l’ensemble de la calotte glaciaire polaire nord, pendant certains mois d’été, puisse être complètement libre de glace dans les cinq à sept prochaines années. »

-Al Gore, décembre 2009

Alors que de nombreuses personnes acceptent les mèmes tels quels, les scientifiques des données ont la capacité de plonger dans les données et de tirer leurs propres conclusions. Dans ce projet de science des données à succès rapide, nous utiliserons les bibliothèques pandas et Matplotlib de Python pour examiner le comportement de la glace de la mer Arctique au cours des quatre dernières décennies et mettre les commentaires et les mèmes à l’épreuve.

Un commentaire sur le changement climatique

Veuillez noter qu’il ne s’agit ni d’un article anti-climatique ni d’un article pro-climatique, mais d’un article pro-données. Quel que soit votre avis sur le changement climatique d’origine anthropique, j’espère que vous conviendrez qu’il est dans l’intérêt de tous de valider les modèles et de confirmer les prédictions.

Il est également important que les leaders d’opinion sur des sujets critiques s’abstiennent de faire des déclarations extravagantes ou précipitées qui peuvent être facilement réfutées. Cela non seulement ternit la crédibilité, mais politise également le sujet, rendant les discussions rationnelles difficiles, voire impossibles.

Dans ce cas, Al Gore a été assez sage pour adoucir ses commentaires avec des probabilités et des mots comme « suggérer » et « pourrait ». Malheureusement, ces adoucissements sont facilement égarés lors de la création de mèmes.

Centre national de données sur la neige et la glace

Pour confirmer ou réfuter la « prédiction » de Gore, nous avons besoin de connaître l’étendue minimale de la glace de mer sur la période en question. Heureusement, nous avons accès à un ensemble de données public complet compilé par le National Snow and Ice Data Center, une partie de l’Institut coopératif de recherche en sciences environnementales (CIRES) de l’Université du Colorado à Boulder [1]. Cet ensemble de données utilise des images satellites pour suivre et surveiller les changements de la glace de mer Arctique.

Étendue de la glace de mer de septembre 2022 basée sur des images satellites (courtoisie du National Snow and Ice Data Center, Université du Colorado à Boulder [1])

Les données sont fournies à la fois par mois et par jour. En général, les totaux mensuels sont recommandés pour examiner les tendances de la glace de mer. Cependant, pour nous assurer de capturer l’étendue mesurée minimale pour chaque mois, nous allons utiliser les données quotidiennes et sélectionner le jour avec la valeur la plus basse pour représenter l’ensemble du mois.

Alors que l’ensemble de données en incréments quotidiens est accessible au format CSV via le lien fourni, j’ai déjà préparé le fichier et l’ai stocké dans ce Gist pour plus de facilité d’utilisation.

Pour répondre à la question posée, nous utiliserons pandas pour préparer les données et Matplotlib pour les représenter sous forme de graphique en ligne. Nous tracerons toutes les données, mais nous nous concentrerons principalement sur les valeurs minimales qui se produisent chaque été.

Le code

Le code suivant a été entré dans JupyterLab et est décrit par cellule.

Importation de bibliothèques

Pour ce projet, nous avons seulement besoin des bibliothèques fondamentales de Matplotlib et pandas. Vous pouvez les installer avec conda en utilisant :

conda install matplotlib pandas

et avec pip en utilisant :

pip install matplotlib

pip install pandas

Le module mdates de Matplotlib nous aidera à annoter notre graphique avec la période durant laquelle Gore a postulé une mer arctique sans glace. Voici les imports :

import pandas as pdimport matplotlib.pyplot as pltimport matplotlib.dates as mdates

Chargement et préparation des données

Le code commenté suivant utilise la bibliothèque pandas pour charger les données à partir du Gist et les préparer pour le tracé. De plus, il génère une moyenne mobile annuelle pour capturer les tendances à long terme des mesures.

# Lire les données :URL = 'https://bit.ly/3NLoDzx'df = pd.read_csv(URL, skiprows=[1])# Supprimer les espaces blancs au début des noms de colonnes :df.columns = df.columns.str.strip()# Supprimer les colonnes inutiles :df = df.drop(df.columns[[4, 5]], axis=1)# Regrouper par l'extension MINIMUM mensuelle de la glace :df = df.groupby(['Year', 'Month']).agg({'Extent': ['min']}).reset_index()# Créer une colonne 'date' à partir des colonnes 'Year' et 'Month' :cols = ['Year', 'Month']df['date'] = df[cols].apply(lambda x: '-'.join(x.values.astype(str)),                             axis="columns")df['date'] = pd.to_datetime(df['date'])# Définir la colonne 'date' comme index du DataFrame :df = df.set_index(df['date'])# Supprimer les colonnes inutiles year, month et date :df = df.drop(df.columns[[0, 1, 3]], axis=1)# Calculer la moyenne mobile annuelle :df['yearly_ma'] = df.Extent.rolling(12).mean()# Vérifier les résultats :df.tail(3)
La fin du DataFrame (image by the author)

Tracé des données

Le code commenté suivant trace les données de l’extension minimale mensuelle et la moyenne mobile annuelle sous forme de graphique en ligne. La période de sept ans après les remarques de Al Gore en 2009 est mise en évidence en rouge et étiquetée “Les sept années suivantes de Gore”.

# Créer le graphique :fig, ax = plt.subplots(figsize=(12, 6))ax.set_title('Extension MINIMUM mensuelle de la glace de la mer arctique', size=15)ax.plot(df['Extent'], lw=2)ax.plot(df['yearly_ma'], color='k')ax.set_ylim([0, 20])ax.tick_params(axis='both',                which='major',                labelsize=12)ax.grid()# Ajouter une légende :ax.legend(['Extension de la glace (10^6 km²)', 'Moyenne mobile annuelle'],           frameon=True,           loc=3,           prop={'size': 14},           facecolor='#a1c9f4',           edgecolor='k',           fancybox=True,           shadow=True,           framealpha=1)# Ajouter une étendue ombrée pour la prédiction de Gore :ax.axvspan(*mdates.datestr2num(['2009-12-14', '2016-1-1']),            color='red',            alpha=0.3)# Annoter la période de 7 ans mentionnée par Gore en 2009 :ax.text(0.655, 0.8,         "Les sept années suivantes de Gore",         transform=ax.transAxes,         fontsize=14)# Définir les étiquettes des axes x et y :font1 = {'family': 'arial',          'color': 'black',          'size': 15}ax.set_xlabel('Année', fontdict=font1)ax.set_ylabel("Extension de la glace de la mer arctique (10^6 km²)",               fontdict=font1)plt.show()
Le graphique final en ligne (image de l'auteur)

La ligne bleue en dents de scie dans le graphique suit l’extension minimale de la glace de la mer arctique pour chaque mois. Le sommet de chaque oscillation représente l’extension minimale en hiver (habituellement la plus élevée en mars). Le creux de chaque oscillation représente l’extension minimale en été (habituellement la plus basse en septembre). La ligne noire est la moyenne mobile annuelle, qui filtre le “bruit” saisonnier pour montrer la tendance globale de l’extension de la glace de mer sur la période de 44 ans.

Étant donné que nous utilisons les valeurs minimales enregistrées chaque mois, plutôt que les valeurs moyennes ou médianes mensuelles plus typiques, ce graphique peut ne pas correspondre exactement à d’autres que vous trouverez en ligne.

Le résultat

Au cours des sept années suivant 2009, la mer Arctique n’est pas devenue libre de glace, bien qu’elle ait atteint un nouveau minimum de 3,34 millions de kilomètres carrés le 16 septembre 2012. C’était considérablement moins que le minimum de septembre 1981 de 6,9 millions de kilomètres carrés et même le minimum de 2009 de 5,0 millions de kilomètres carrés. En fait, il y avait une trajectoire constamment à la baisse de 2009 à 2012.

Après 2012, les valeurs semblaient se stabiliser quelque peu et à l’été 2021, la courbe de la moyenne mobile était en fait en augmentation.

Alors qu’Al Gore n’a pas “tout à fait raison”, sa déclaration a laissé place au résultat réel. Les modèles qu’il a mentionnés comprenaient une chance de 25% qu’une partie de la glace reste dans la mer Arctique pendant l’été.

Une chose que nous devrions apprendre de cela est que le climat de la Terre est une bête compliquée. Les prévisions spécifiques et à court terme sur son comportement devraient être très soigneusement considérées. Bien que créer un sentiment d’urgence puisse être important, cela peut facilement se retourner contre soi, entraînant des railleries et une crédibilité réduite.

Citations

[1] Fetterer, F., K. Knowles, W. N. Meier, M. Savoie, et A. K. Windnagel. Sea Ice Index, Version 3. 2017, Distribué par le Centre National de Données sur la Neige et la Glace. https://doi.org/10.7265/N5K072F8 . Date consultée le 18 juin 2022.

Les sites de produits de données sources spécifiques pour ce projet étaient http://nsidc.org/data/nsidc-0081.html et http://nsidc.org/data/nsidc-0051.html (plage de données : octobre 1978-juin 2022).

Des détails supplémentaires sur les données sont répertoriés dans la fiche ci-dessous :

Fiche de données NSIDC Sea Ice Index v3 (courtoisie du Centre National de Données sur la Neige et la Glace, Université du Colorado, Boulder)

Selon les politiques de citation de NSIDC, les photographies, images ou textes du site web de NSIDC peuvent être téléchargés et utilisés sauf si des limitations pour leur utilisation sont spécifiquement mentionnées. Les images satellites peuvent être téléchargées et utilisées gratuitement avec un crédit approprié. Sauf indication contraire, les photographies et les images peuvent être utilisées à des fins commerciales ; cependant, elles ne peuvent pas être revendues.

De nombreuses images sur le site incluent une légende et des informations de crédit spécifiques. Sinon, le format de crédit général devrait être : “Image/photo courtoisie du Centre National de Données sur la Neige et la Glace, Université du Colorado, Boulder”.

Merci !

Merci de lire et veuillez me suivre pour plus de projets de science des données Quick Success à l’avenir.

We will continue to update IPGirl; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI

Comment réussir le bootcamp de science des données un guide complet

J'ai obtenu mon diplôme du bootcamp en présentiel en mai 2021. Maintenant, je travaille dans l'informatique depuis pr...

AI

Des données aux dollars Utiliser la régression linéaire

La prise de décision basée sur les données est devenue un élément décisif pour les entreprises de tous les secteurs. ...

AI

Commencer avec JAX

JAX est une bibliothèque Python développée par Google pour effectuer des calculs numériques haute performance sur n'i...

AI

8 choses que la plupart des programmes de science des données n'enseignent pas (mais que vous devriez savoir) - Partie 1

Connaissances de base que tout scientifique des données devrait avoir. Environnements virtuels Python, Linux pour les...

AI

Commencer avec Python pour la science des données

Retour aux bases Un guide pour débutants sur la configuration de Python et la compréhension de son rôle en science de...

AI

De brut à raffiné Un voyage à travers la prétraitement des données - Partie 3 Données en double

La présence de valeurs en double dans les données est souvent ignorée par de nombreux programmeurs. Cependant, traite...