{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Concentration de CO2 dans l'atmosphère depuis 1958" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Prérequis : traitement de suites chronologiques\n", "\n", "En 1958, Charles David Keeling a initié une mesure de la concentration de CO2 dans l'atmosphère à l'observatoire de Mauna Loa, Hawaii, États-Unis qui continue jusqu'à aujourd'hui. L'objectif initial était d'étudier la variation saisonnière, mais l'intérêt s'est déplacé plus tard vers l'étude de la tendance croissante dans le contexte du changement climatique. En honneur à Keeling, ce jeu de données est souvent appelé \"Keeling Curve\" (voir https://en.wikipedia.org/wiki/Keeling_Curve pour l'histoire et l'importance de ces données).\n", "\n", "Les données sont disponibles sur le site Web de l'institut Scripps. Utilisez le fichier avec les observations hebdomadaires. Attention, ce fichier est mis à jour régulièrement avec de nouvelles observations. Notez donc bien la date du téléchargement, et gardez une copie locale de la version précise que vous analysez. Faites aussi attention aux données manquantes.\n", "\n", "Votre mission si vous l'acceptez :\n", "1. Réalisez un graphique qui vous montrera une oscillation périodique superposée à une évolution systématique plus lente.\n", "2. Séparez ces deux phénomènes. Caractérisez l'oscillation périodique. Proposez un modèle simple de la contribution lente, estimez ses paramètres et tentez une extrapolation jusqu'à 2025 (dans le but de pouvoir valider le modèle par des observations futures).\n", "3. Déposer dans FUN votre résultat" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import os\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "from scipy import fftpack,signal\n", "import numpy as np\n", "from sklearn.preprocessing import PolynomialFeatures\n", "from sklearn.pipeline import make_pipeline\n", "from sklearn.linear_model import LinearRegression\n", "from sklearn.metrics import r2_score\n", "from statsmodels.tsa.seasonal import seasonal_decompose" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les mesures de la concentration de CO2 d ans l'atmosphère sont disponibles sur le site Web de [l'institut Scripps](https://scrippsco2.ucsd.edu/data/atmospheric_co2/mlo.html). Nous les récupérons sous forme d'un fichier en format CSV dont chaque ligne correspond à une semaine de la période demandée. Nous téléchargeons toujours le jeu de données complet, qui commence en 1958 et se termine avec une semaine récente.\n", "\n", "Pour nous protéger contre une éventuelle disparition ou modification du serveur du Réseau Sentinelles, nous faisons une copie locale de ce jeux de données.\n", "\n", "Il est inutile et même risquée de télécharger les données à chaque exécution, car dans le cas d'une panne nous pourrions remplacer nos données par un fichier défectueux. Pour cette raison, nous téléchargeons les données seulement si la copie locale n'existe pas." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Data imported via the local file.\n" ] }, { "data": { "text/html": [ "
\n", " | CO2_concentration | \n", "
---|---|
Time | \n", "\n", " |
1958-03-29 | \n", "316.19 | \n", "
1958-04-05 | \n", "317.31 | \n", "
1958-04-12 | \n", "317.69 | \n", "
1958-04-19 | \n", "317.58 | \n", "
1958-04-26 | \n", "316.48 | \n", "
1958-05-03 | \n", "316.95 | \n", "
1958-05-17 | \n", "317.56 | \n", "
1958-05-24 | \n", "317.99 | \n", "
1958-07-05 | \n", "315.85 | \n", "
1958-07-12 | \n", "315.85 | \n", "
1958-07-19 | \n", "315.46 | \n", "
1958-07-26 | \n", "315.59 | \n", "
1958-08-02 | \n", "315.64 | \n", "
1958-08-09 | \n", "315.10 | \n", "
1958-08-16 | \n", "315.09 | \n", "
1958-08-30 | \n", "314.14 | \n", "
1958-09-06 | \n", "313.54 | \n", "
1958-11-08 | \n", "313.05 | \n", "
1958-11-15 | \n", "313.26 | \n", "
1958-11-22 | \n", "313.57 | \n", "
1958-11-29 | \n", "314.01 | \n", "
1958-12-06 | \n", "314.56 | \n", "
1958-12-13 | \n", "314.41 | \n", "
1958-12-20 | \n", "314.77 | \n", "
1958-12-27 | \n", "315.21 | \n", "
1959-01-03 | \n", "315.24 | \n", "
1959-01-10 | \n", "315.50 | \n", "
1959-01-17 | \n", "315.69 | \n", "
1959-01-24 | \n", "315.86 | \n", "
1959-01-31 | \n", "315.42 | \n", "
... | \n", "... | \n", "
2021-02-06 | \n", "416.91 | \n", "
2021-02-13 | \n", "416.46 | \n", "
2021-02-20 | \n", "416.16 | \n", "
2021-02-27 | \n", "416.45 | \n", "
2021-03-06 | \n", "417.56 | \n", "
2021-03-13 | \n", "416.54 | \n", "
2021-03-20 | \n", "418.00 | \n", "
2021-03-27 | \n", "416.43 | \n", "
2021-04-03 | \n", "417.69 | \n", "
2021-04-10 | \n", "419.02 | \n", "
2021-04-17 | \n", "417.66 | \n", "
2021-04-24 | \n", "418.54 | \n", "
2021-05-01 | \n", "419.65 | \n", "
2021-05-08 | \n", "418.16 | \n", "
2021-05-15 | \n", "419.02 | \n", "
2021-05-22 | \n", "417.98 | \n", "
2021-05-29 | \n", "419.49 | \n", "
2021-06-05 | \n", "419.46 | \n", "
2021-06-12 | \n", "418.90 | \n", "
2021-06-19 | \n", "418.49 | \n", "
2021-06-26 | \n", "417.82 | \n", "
2021-07-03 | \n", "417.70 | \n", "
2021-07-10 | \n", "417.08 | \n", "
2021-07-17 | \n", "416.91 | \n", "
2021-07-24 | \n", "415.92 | \n", "
2021-07-31 | \n", "414.94 | \n", "
2021-08-07 | \n", "414.56 | \n", "
2021-08-14 | \n", "414.66 | \n", "
2021-08-21 | \n", "414.42 | \n", "
2021-08-28 | \n", "412.68 | \n", "
3238 rows × 1 columns
\n", "\n", " | CO2_concentration | \n", "
---|---|
Time | \n", "\n", " |
1958-03-29 | \n", "316.190000 | \n", "
1958-04-05 | \n", "317.310000 | \n", "
1958-04-12 | \n", "317.690000 | \n", "
1958-04-19 | \n", "317.580000 | \n", "
1958-04-26 | \n", "316.480000 | \n", "
1958-05-03 | \n", "316.950000 | \n", "
1958-05-10 | \n", "317.255000 | \n", "
1958-05-17 | \n", "317.560000 | \n", "
1958-05-24 | \n", "317.990000 | \n", "
1958-05-31 | \n", "317.633333 | \n", "
1958-06-07 | \n", "317.276667 | \n", "
1958-06-14 | \n", "316.920000 | \n", "
1958-06-21 | \n", "316.563333 | \n", "
1958-06-28 | \n", "316.206667 | \n", "
1958-07-05 | \n", "315.850000 | \n", "
1958-07-12 | \n", "315.850000 | \n", "
1958-07-19 | \n", "315.460000 | \n", "
1958-07-26 | \n", "315.590000 | \n", "
1958-08-02 | \n", "315.640000 | \n", "
1958-08-09 | \n", "315.100000 | \n", "
1958-08-16 | \n", "315.090000 | \n", "
1958-08-23 | \n", "314.615000 | \n", "
1958-08-30 | \n", "314.140000 | \n", "
1958-09-06 | \n", "313.540000 | \n", "
1958-09-13 | \n", "313.485556 | \n", "
1958-09-20 | \n", "313.431111 | \n", "
1958-09-27 | \n", "313.376667 | \n", "
1958-10-04 | \n", "313.322222 | \n", "
1958-10-11 | \n", "313.267778 | \n", "
1958-10-18 | \n", "313.213333 | \n", "
... | \n", "... | \n", "
2021-02-06 | \n", "416.910000 | \n", "
2021-02-13 | \n", "416.460000 | \n", "
2021-02-20 | \n", "416.160000 | \n", "
2021-02-27 | \n", "416.450000 | \n", "
2021-03-06 | \n", "417.560000 | \n", "
2021-03-13 | \n", "416.540000 | \n", "
2021-03-20 | \n", "418.000000 | \n", "
2021-03-27 | \n", "416.430000 | \n", "
2021-04-03 | \n", "417.690000 | \n", "
2021-04-10 | \n", "419.020000 | \n", "
2021-04-17 | \n", "417.660000 | \n", "
2021-04-24 | \n", "418.540000 | \n", "
2021-05-01 | \n", "419.650000 | \n", "
2021-05-08 | \n", "418.160000 | \n", "
2021-05-15 | \n", "419.020000 | \n", "
2021-05-22 | \n", "417.980000 | \n", "
2021-05-29 | \n", "419.490000 | \n", "
2021-06-05 | \n", "419.460000 | \n", "
2021-06-12 | \n", "418.900000 | \n", "
2021-06-19 | \n", "418.490000 | \n", "
2021-06-26 | \n", "417.820000 | \n", "
2021-07-03 | \n", "417.700000 | \n", "
2021-07-10 | \n", "417.080000 | \n", "
2021-07-17 | \n", "416.910000 | \n", "
2021-07-24 | \n", "415.920000 | \n", "
2021-07-31 | \n", "414.940000 | \n", "
2021-08-07 | \n", "414.560000 | \n", "
2021-08-14 | \n", "414.660000 | \n", "
2021-08-21 | \n", "414.420000 | \n", "
2021-08-28 | \n", "412.680000 | \n", "
3310 rows × 1 columns
\n", "