{ "cells": [ { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "# Concentration de CO2 dans l'atmosphère depuis 1958" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import isoweek\n", "import numpy as np\n", "from datetime import datetime\n", "from scipy.signal import argrelextrema\n", "from scipy.signal import savgol_filter\n", "from scipy.optimize import curve_fit" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "## Importation des données\n", "\n", "Les données sont disponibles sur le site du [Programme Scripps CO2](https://scrippsco2.ucsd.edu/data/atmospheric_co2/mlo.html) au format *csv*." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [], "source": [ "data_url = \"https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/weekly/weekly_in_situ_co2_mlo.csv\"" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "Pour nous protéger contre une éventuelle disparition ou modification du serveur du Programme Scripps CO2, nous faisons une copie locale de ce jeux de données que nous préservons avec notre analyse. 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. Étant donné l'évolution temporelle des données, qui sont mises à jour régulièrement, celles-ci sont téléchargées à nouveau une fois par jour." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [], "source": [ "data_file = \"donnees-CO2-\" + str(datetime.today().date().year) + \"-\" + str(datetime.today().date().month) + \"-\" + str(datetime.today().date().day) + \".csv\"\n", "\n", "import os\n", "import urllib.request\n", "if not os.path.exists(data_file):\n", " urllib.request.urlretrieve(data_url, data_file)" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "Les 44 premières lignes de données contiennent une description de leur contenu (auteurs/institut, date, citation, informations données).\n", "Après ces 44 lignes, les données sont affichées directement sans titre de colonne.\n", "\n", "Les informations sur les données sont les suivantes : *The data file below contains 2 columns indicaing the date and CO2 concentrations in micro-mol CO2 per mole (ppm), reported on the 2008A SIO manometric mole fraction scale. These weekly values have been adjusted to 12:00 hours at middle day of each weekly period as indicated by the date in the first column.*" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [ { "data": { "text/html": [ "
\n", " | 0 | \n", "1 | \n", "
---|---|---|
0 | \n", "1958-03-29 | \n", "316.19 | \n", "
1 | \n", "1958-04-05 | \n", "317.31 | \n", "
2 | \n", "1958-04-12 | \n", "317.69 | \n", "
3 | \n", "1958-04-19 | \n", "317.58 | \n", "
4 | \n", "1958-04-26 | \n", "316.48 | \n", "
5 | \n", "1958-05-03 | \n", "316.95 | \n", "
6 | \n", "1958-05-17 | \n", "317.56 | \n", "
7 | \n", "1958-05-24 | \n", "317.99 | \n", "
8 | \n", "1958-07-05 | \n", "315.85 | \n", "
9 | \n", "1958-07-12 | \n", "315.85 | \n", "
10 | \n", "1958-07-19 | \n", "315.46 | \n", "
11 | \n", "1958-07-26 | \n", "315.59 | \n", "
12 | \n", "1958-08-02 | \n", "315.64 | \n", "
13 | \n", "1958-08-09 | \n", "315.10 | \n", "
14 | \n", "1958-08-16 | \n", "315.09 | \n", "
15 | \n", "1958-08-30 | \n", "314.14 | \n", "
16 | \n", "1958-09-06 | \n", "313.54 | \n", "
17 | \n", "1958-11-08 | \n", "313.05 | \n", "
18 | \n", "1958-11-15 | \n", "313.26 | \n", "
19 | \n", "1958-11-22 | \n", "313.57 | \n", "
20 | \n", "1958-11-29 | \n", "314.01 | \n", "
21 | \n", "1958-12-06 | \n", "314.56 | \n", "
22 | \n", "1958-12-13 | \n", "314.41 | \n", "
23 | \n", "1958-12-20 | \n", "314.77 | \n", "
24 | \n", "1958-12-27 | \n", "315.21 | \n", "
25 | \n", "1959-01-03 | \n", "315.24 | \n", "
26 | \n", "1959-01-10 | \n", "315.50 | \n", "
27 | \n", "1959-01-17 | \n", "315.69 | \n", "
28 | \n", "1959-01-24 | \n", "315.86 | \n", "
29 | \n", "1959-01-31 | \n", "315.42 | \n", "
... | \n", "... | \n", "... | \n", "
3154 | \n", "2020-01-25 | \n", "413.36 | \n", "
3155 | \n", "2020-02-01 | \n", "413.99 | \n", "
3156 | \n", "2020-02-08 | \n", "414.83 | \n", "
3157 | \n", "2020-02-15 | \n", "413.81 | \n", "
3158 | \n", "2020-02-22 | \n", "414.17 | \n", "
3159 | \n", "2020-02-29 | \n", "413.89 | \n", "
3160 | \n", "2020-03-07 | \n", "414.00 | \n", "
3161 | \n", "2020-03-14 | \n", "414.30 | \n", "
3162 | \n", "2020-03-21 | \n", "414.62 | \n", "
3163 | \n", "2020-03-28 | \n", "415.57 | \n", "
3164 | \n", "2020-04-04 | \n", "415.61 | \n", "
3165 | \n", "2020-04-11 | \n", "416.47 | \n", "
3166 | \n", "2020-04-18 | \n", "416.60 | \n", "
3167 | \n", "2020-04-25 | \n", "415.86 | \n", "
3168 | \n", "2020-05-02 | \n", "417.20 | \n", "
3169 | \n", "2020-05-09 | \n", "416.99 | \n", "
3170 | \n", "2020-05-16 | \n", "416.54 | \n", "
3171 | \n", "2020-05-23 | \n", "417.49 | \n", "
3172 | \n", "2020-05-30 | \n", "417.19 | \n", "
3173 | \n", "2020-06-06 | \n", "416.49 | \n", "
3174 | \n", "2020-06-13 | \n", "416.50 | \n", "
3175 | \n", "2020-06-20 | \n", "416.11 | \n", "
3176 | \n", "2020-06-27 | \n", "415.75 | \n", "
3177 | \n", "2020-07-04 | \n", "415.20 | \n", "
3178 | \n", "2020-07-11 | \n", "414.91 | \n", "
3179 | \n", "2020-07-18 | \n", "414.29 | \n", "
3180 | \n", "2020-07-25 | \n", "413.63 | \n", "
3181 | \n", "2020-08-01 | \n", "413.42 | \n", "
3182 | \n", "2020-08-08 | \n", "412.85 | \n", "
3183 | \n", "2020-08-15 | \n", "412.75 | \n", "
3184 rows × 2 columns
\n", "\n", " | 0 | \n", "1 | \n", "
---|
\n", " | conc | \n", "
---|---|
period | \n", "\n", " |
1958-03-24/1958-03-30 | \n", "316.19 | \n", "
1958-03-31/1958-04-06 | \n", "317.31 | \n", "
1958-04-07/1958-04-13 | \n", "317.69 | \n", "
1958-04-14/1958-04-20 | \n", "317.58 | \n", "
1958-04-21/1958-04-27 | \n", "316.48 | \n", "
1958-04-28/1958-05-04 | \n", "316.95 | \n", "
1958-05-12/1958-05-18 | \n", "317.56 | \n", "
1958-05-19/1958-05-25 | \n", "317.99 | \n", "
1958-06-30/1958-07-06 | \n", "315.85 | \n", "
1958-07-07/1958-07-13 | \n", "315.85 | \n", "
1958-07-14/1958-07-20 | \n", "315.46 | \n", "
1958-07-21/1958-07-27 | \n", "315.59 | \n", "
1958-07-28/1958-08-03 | \n", "315.64 | \n", "
1958-08-04/1958-08-10 | \n", "315.10 | \n", "
1958-08-11/1958-08-17 | \n", "315.09 | \n", "
1958-08-25/1958-08-31 | \n", "314.14 | \n", "
1958-09-01/1958-09-07 | \n", "313.54 | \n", "
1958-11-03/1958-11-09 | \n", "313.05 | \n", "
1958-11-10/1958-11-16 | \n", "313.26 | \n", "
1958-11-17/1958-11-23 | \n", "313.57 | \n", "
1958-11-24/1958-11-30 | \n", "314.01 | \n", "
1958-12-01/1958-12-07 | \n", "314.56 | \n", "
1958-12-08/1958-12-14 | \n", "314.41 | \n", "
1958-12-15/1958-12-21 | \n", "314.77 | \n", "
1958-12-22/1958-12-28 | \n", "315.21 | \n", "
1958-12-29/1959-01-04 | \n", "315.24 | \n", "
1959-01-05/1959-01-11 | \n", "315.50 | \n", "
1959-01-12/1959-01-18 | \n", "315.69 | \n", "
1959-01-19/1959-01-25 | \n", "315.86 | \n", "
1959-01-26/1959-02-01 | \n", "315.42 | \n", "
... | \n", "... | \n", "
2020-01-20/2020-01-26 | \n", "413.36 | \n", "
2020-01-27/2020-02-02 | \n", "413.99 | \n", "
2020-02-03/2020-02-09 | \n", "414.83 | \n", "
2020-02-10/2020-02-16 | \n", "413.81 | \n", "
2020-02-17/2020-02-23 | \n", "414.17 | \n", "
2020-02-24/2020-03-01 | \n", "413.89 | \n", "
2020-03-02/2020-03-08 | \n", "414.00 | \n", "
2020-03-09/2020-03-15 | \n", "414.30 | \n", "
2020-03-16/2020-03-22 | \n", "414.62 | \n", "
2020-03-23/2020-03-29 | \n", "415.57 | \n", "
2020-03-30/2020-04-05 | \n", "415.61 | \n", "
2020-04-06/2020-04-12 | \n", "416.47 | \n", "
2020-04-13/2020-04-19 | \n", "416.60 | \n", "
2020-04-20/2020-04-26 | \n", "415.86 | \n", "
2020-04-27/2020-05-03 | \n", "417.20 | \n", "
2020-05-04/2020-05-10 | \n", "416.99 | \n", "
2020-05-11/2020-05-17 | \n", "416.54 | \n", "
2020-05-18/2020-05-24 | \n", "417.49 | \n", "
2020-05-25/2020-05-31 | \n", "417.19 | \n", "
2020-06-01/2020-06-07 | \n", "416.49 | \n", "
2020-06-08/2020-06-14 | \n", "416.50 | \n", "
2020-06-15/2020-06-21 | \n", "416.11 | \n", "
2020-06-22/2020-06-28 | \n", "415.75 | \n", "
2020-06-29/2020-07-05 | \n", "415.20 | \n", "
2020-07-06/2020-07-12 | \n", "414.91 | \n", "
2020-07-13/2020-07-19 | \n", "414.29 | \n", "
2020-07-20/2020-07-26 | \n", "413.63 | \n", "
2020-07-27/2020-08-02 | \n", "413.42 | \n", "
2020-08-03/2020-08-09 | \n", "412.85 | \n", "
2020-08-10/2020-08-16 | \n", "412.75 | \n", "
3184 rows × 1 columns
\n", "