diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb index 0bbbe371b01e359e381e43239412d77bf53fb1fb..c45a1f3377a8a53a962a4625d8c86b7aca038b8e 100644 --- a/module3/exo3/exercice.ipynb +++ b/module3/exo3/exercice.ipynb @@ -1,6 +1,1127 @@ { - "cells": [], + "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, + "hideOutput": true, + "hidePrompt": false + }, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n", + "import isoweek" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + " Les données sont disponibles du site Web du [l'Institut Scripps](https://scrippsco2.ucsd.edu/data/atmospheric_co2/primary_mlo_co2_record.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 1991 et se termine avec une semaine récente." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "data_url = \"https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/monthly/monthly_in_situ_co2_mlo.csv\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "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 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." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "data_file = \"concentration-co2.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": {}, + "source": [ + "Les 54 premières lignes du fichier CSV est un commentaire, que nous ignorons en précisant `skiprows=54`." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + " | Yr | \n", + "Mn | \n", + "Date | \n", + "Date | \n", + "CO2 | \n", + "seasonally | \n", + "fit | \n", + "seasonally | \n", + "CO2 | \n", + "seasonally | \n", + "
---|---|---|---|---|---|---|---|---|---|---|
0 | \n", + "\n", + " | \n", + " | \n", + " | \n", + " | \n", + " | adjusted | \n", + "\n", + " | adjusted fit | \n", + "filled | \n", + "adjusted filled | \n", + "
1 | \n", + "\n", + " | \n", + " | Excel | \n", + "\n", + " | [ppm] | \n", + "[ppm] | \n", + "[ppm] | \n", + "[ppm] | \n", + "[ppm] | \n", + "[ppm] | \n", + "
2 | \n", + "1958 | \n", + "01 | \n", + "21200 | \n", + "1958.0411 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
3 | \n", + "1958 | \n", + "02 | \n", + "21231 | \n", + "1958.1260 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
4 | \n", + "1958 | \n", + "03 | \n", + "21259 | \n", + "1958.2027 | \n", + "315.70 | \n", + "314.44 | \n", + "316.19 | \n", + "314.91 | \n", + "315.70 | \n", + "314.44 | \n", + "
5 | \n", + "1958 | \n", + "04 | \n", + "21290 | \n", + "1958.2877 | \n", + "317.45 | \n", + "315.16 | \n", + "317.30 | \n", + "314.99 | \n", + "317.45 | \n", + "315.16 | \n", + "
6 | \n", + "1958 | \n", + "05 | \n", + "21320 | \n", + "1958.3699 | \n", + "317.51 | \n", + "314.71 | \n", + "317.86 | \n", + "315.06 | \n", + "317.51 | \n", + "314.71 | \n", + "
7 | \n", + "1958 | \n", + "06 | \n", + "21351 | \n", + "1958.4548 | \n", + "-99.99 | \n", + "-99.99 | \n", + "317.24 | \n", + "315.14 | \n", + "317.24 | \n", + "315.14 | \n", + "
8 | \n", + "1958 | \n", + "07 | \n", + "21381 | \n", + "1958.5370 | \n", + "315.86 | \n", + "315.19 | \n", + "315.86 | \n", + "315.22 | \n", + "315.86 | \n", + "315.19 | \n", + "
9 | \n", + "1958 | \n", + "08 | \n", + "21412 | \n", + "1958.6219 | \n", + "314.93 | \n", + "316.19 | \n", + "314.00 | \n", + "315.29 | \n", + "314.93 | \n", + "316.19 | \n", + "
10 | \n", + "1958 | \n", + "09 | \n", + "21443 | \n", + "1958.7068 | \n", + "313.21 | \n", + "316.08 | \n", + "312.46 | \n", + "315.35 | \n", + "313.21 | \n", + "316.08 | \n", + "
11 | \n", + "1958 | \n", + "10 | \n", + "21473 | \n", + "1958.7890 | \n", + "-99.99 | \n", + "-99.99 | \n", + "312.44 | \n", + "315.40 | \n", + "312.44 | \n", + "315.40 | \n", + "
12 | \n", + "1958 | \n", + "11 | \n", + "21504 | \n", + "1958.8740 | \n", + "313.33 | \n", + "315.20 | \n", + "313.62 | \n", + "315.46 | \n", + "313.33 | \n", + "315.20 | \n", + "
13 | \n", + "1958 | \n", + "12 | \n", + "21534 | \n", + "1958.9562 | \n", + "314.67 | \n", + "315.43 | \n", + "314.77 | \n", + "315.51 | \n", + "314.67 | \n", + "315.43 | \n", + "
14 | \n", + "1959 | \n", + "01 | \n", + "21565 | \n", + "1959.0411 | \n", + "315.58 | \n", + "315.54 | \n", + "315.62 | \n", + "315.57 | \n", + "315.58 | \n", + "315.54 | \n", + "
15 | \n", + "1959 | \n", + "02 | \n", + "21596 | \n", + "1959.1260 | \n", + "316.49 | \n", + "315.86 | \n", + "316.27 | \n", + "315.63 | \n", + "316.49 | \n", + "315.86 | \n", + "
16 | \n", + "1959 | \n", + "03 | \n", + "21624 | \n", + "1959.2027 | \n", + "316.65 | \n", + "315.38 | \n", + "316.98 | \n", + "315.69 | \n", + "316.65 | \n", + "315.38 | \n", + "
17 | \n", + "1959 | \n", + "04 | \n", + "21655 | \n", + "1959.2877 | \n", + "317.72 | \n", + "315.42 | \n", + "318.09 | \n", + "315.77 | \n", + "317.72 | \n", + "315.42 | \n", + "
18 | \n", + "1959 | \n", + "05 | \n", + "21685 | \n", + "1959.3699 | \n", + "318.29 | \n", + "315.49 | \n", + "318.65 | \n", + "315.85 | \n", + "318.29 | \n", + "315.49 | \n", + "
19 | \n", + "1959 | \n", + "06 | \n", + "21716 | \n", + "1959.4548 | \n", + "318.15 | \n", + "316.03 | \n", + "318.04 | \n", + "315.94 | \n", + "318.15 | \n", + "316.03 | \n", + "
20 | \n", + "1959 | \n", + "07 | \n", + "21746 | \n", + "1959.5370 | \n", + "316.54 | \n", + "315.86 | \n", + "316.67 | \n", + "316.03 | \n", + "316.54 | \n", + "315.86 | \n", + "
21 | \n", + "1959 | \n", + "08 | \n", + "21777 | \n", + "1959.6219 | \n", + "314.80 | \n", + "316.06 | \n", + "314.83 | \n", + "316.12 | \n", + "314.80 | \n", + "316.06 | \n", + "
22 | \n", + "1959 | \n", + "09 | \n", + "21808 | \n", + "1959.7068 | \n", + "313.84 | \n", + "316.72 | \n", + "313.32 | \n", + "316.22 | \n", + "313.84 | \n", + "316.72 | \n", + "
23 | \n", + "1959 | \n", + "10 | \n", + "21838 | \n", + "1959.7890 | \n", + "313.33 | \n", + "316.32 | \n", + "313.33 | \n", + "316.30 | \n", + "313.33 | \n", + "316.32 | \n", + "
24 | \n", + "1959 | \n", + "11 | \n", + "21869 | \n", + "1959.8740 | \n", + "314.81 | \n", + "316.68 | \n", + "314.54 | \n", + "316.39 | \n", + "314.81 | \n", + "316.68 | \n", + "
25 | \n", + "1959 | \n", + "12 | \n", + "21899 | \n", + "1959.9562 | \n", + "315.58 | \n", + "316.35 | \n", + "315.72 | \n", + "316.47 | \n", + "315.58 | \n", + "316.35 | \n", + "
26 | \n", + "1960 | \n", + "01 | \n", + "21930 | \n", + "1960.0410 | \n", + "316.43 | \n", + "316.39 | \n", + "316.61 | \n", + "316.56 | \n", + "316.43 | \n", + "316.39 | \n", + "
27 | \n", + "1960 | \n", + "02 | \n", + "21961 | \n", + "1960.1257 | \n", + "316.98 | \n", + "316.35 | \n", + "317.27 | \n", + "316.64 | \n", + "316.98 | \n", + "316.35 | \n", + "
28 | \n", + "1960 | \n", + "03 | \n", + "21990 | \n", + "1960.2049 | \n", + "317.58 | \n", + "316.28 | \n", + "318.03 | \n", + "316.71 | \n", + "317.58 | \n", + "316.28 | \n", + "
29 | \n", + "1960 | \n", + "04 | \n", + "22021 | \n", + "1960.2896 | \n", + "319.03 | \n", + "316.70 | \n", + "319.14 | \n", + "316.79 | \n", + "319.03 | \n", + "316.70 | \n", + "
... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "... | \n", + "
728 | \n", + "2018 | \n", + "07 | \n", + "43296 | \n", + "2018.5370 | \n", + "408.90 | \n", + "408.08 | \n", + "409.43 | \n", + "408.65 | \n", + "408.90 | \n", + "408.08 | \n", + "
729 | \n", + "2018 | \n", + "08 | \n", + "43327 | \n", + "2018.6219 | \n", + "407.10 | \n", + "408.63 | \n", + "407.33 | \n", + "408.91 | \n", + "407.10 | \n", + "408.63 | \n", + "
730 | \n", + "2018 | \n", + "09 | \n", + "43358 | \n", + "2018.7068 | \n", + "405.59 | \n", + "409.09 | \n", + "405.66 | \n", + "409.18 | \n", + "405.59 | \n", + "409.09 | \n", + "
731 | \n", + "2018 | \n", + "10 | \n", + "43388 | \n", + "2018.7890 | \n", + "405.99 | \n", + "409.62 | \n", + "405.83 | \n", + "409.44 | \n", + "405.99 | \n", + "409.62 | \n", + "
732 | \n", + "2018 | \n", + "11 | \n", + "43419 | \n", + "2018.8740 | \n", + "408.12 | \n", + "410.39 | \n", + "407.47 | \n", + "409.72 | \n", + "408.12 | \n", + "410.39 | \n", + "
733 | \n", + "2018 | \n", + "12 | \n", + "43449 | \n", + "2018.9562 | \n", + "409.23 | \n", + "410.16 | \n", + "409.07 | \n", + "409.97 | \n", + "409.23 | \n", + "410.16 | \n", + "
734 | \n", + "2019 | \n", + "01 | \n", + "43480 | \n", + "2019.0411 | \n", + "410.92 | \n", + "410.87 | \n", + "410.29 | \n", + "410.23 | \n", + "410.92 | \n", + "410.87 | \n", + "
735 | \n", + "2019 | \n", + "02 | \n", + "43511 | \n", + "2019.1260 | \n", + "411.66 | \n", + "410.90 | \n", + "411.24 | \n", + "410.47 | \n", + "411.66 | \n", + "410.90 | \n", + "
736 | \n", + "2019 | \n", + "03 | \n", + "43539 | \n", + "2019.2027 | \n", + "412.00 | \n", + "410.45 | \n", + "412.25 | \n", + "410.68 | \n", + "412.00 | \n", + "410.45 | \n", + "
737 | \n", + "2019 | \n", + "04 | \n", + "43570 | \n", + "2019.2877 | \n", + "413.52 | \n", + "410.72 | \n", + "413.73 | \n", + "410.91 | \n", + "413.52 | \n", + "410.72 | \n", + "
738 | \n", + "2019 | \n", + "05 | \n", + "43600 | \n", + "2019.3699 | \n", + "414.83 | \n", + "411.42 | \n", + "414.54 | \n", + "411.13 | \n", + "414.83 | \n", + "411.42 | \n", + "
739 | \n", + "2019 | \n", + "06 | \n", + "43631 | \n", + "2019.4548 | \n", + "413.96 | \n", + "411.38 | \n", + "413.91 | \n", + "411.35 | \n", + "413.96 | \n", + "411.38 | \n", + "
740 | \n", + "2019 | \n", + "07 | \n", + "43661 | \n", + "2019.5370 | \n", + "411.85 | \n", + "411.03 | \n", + "412.36 | \n", + "411.57 | \n", + "411.85 | \n", + "411.03 | \n", + "
741 | \n", + "2019 | \n", + "08 | \n", + "43692 | \n", + "2019.6219 | \n", + "410.08 | \n", + "411.62 | \n", + "410.23 | \n", + "411.81 | \n", + "410.08 | \n", + "411.62 | \n", + "
742 | \n", + "2019 | \n", + "09 | \n", + "43723 | \n", + "2019.7068 | \n", + "408.55 | \n", + "412.06 | \n", + "408.52 | \n", + "412.05 | \n", + "408.55 | \n", + "412.06 | \n", + "
743 | \n", + "2019 | \n", + "10 | \n", + "43753 | \n", + "2019.7890 | \n", + "408.43 | \n", + "412.07 | \n", + "408.67 | \n", + "412.29 | \n", + "408.43 | \n", + "412.07 | \n", + "
744 | \n", + "2019 | \n", + "11 | \n", + "43784 | \n", + "2019.8740 | \n", + "410.28 | \n", + "412.56 | \n", + "410.29 | \n", + "412.54 | \n", + "410.28 | \n", + "412.56 | \n", + "
745 | \n", + "2019 | \n", + "12 | \n", + "43814 | \n", + "2019.9562 | \n", + "411.85 | \n", + "412.78 | \n", + "411.88 | \n", + "412.79 | \n", + "411.85 | \n", + "412.78 | \n", + "
746 | \n", + "2020 | \n", + "01 | \n", + "43845 | \n", + "2020.0410 | \n", + "413.37 | \n", + "413.33 | \n", + "413.11 | \n", + "413.05 | \n", + "413.37 | \n", + "413.33 | \n", + "
747 | \n", + "2020 | \n", + "02 | \n", + "43876 | \n", + "2020.1257 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
748 | \n", + "2020 | \n", + "03 | \n", + "43905 | \n", + "2020.2049 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
749 | \n", + "2020 | \n", + "04 | \n", + "43936 | \n", + "2020.2896 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
750 | \n", + "2020 | \n", + "05 | \n", + "43966 | \n", + "2020.3716 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
751 | \n", + "2020 | \n", + "06 | \n", + "43997 | \n", + "2020.4563 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
752 | \n", + "2020 | \n", + "07 | \n", + "44027 | \n", + "2020.5383 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
753 | \n", + "2020 | \n", + "08 | \n", + "44058 | \n", + "2020.6230 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
754 | \n", + "2020 | \n", + "09 | \n", + "44089 | \n", + "2020.7077 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
755 | \n", + "2020 | \n", + "10 | \n", + "44119 | \n", + "2020.7896 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
756 | \n", + "2020 | \n", + "11 | \n", + "44150 | \n", + "2020.8743 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
757 | \n", + "2020 | \n", + "12 | \n", + "44180 | \n", + "2020.9563 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "-99.99 | \n", + "
758 rows × 10 columns
\n", + "\n", + " | Yr | \n", + "Mn | \n", + "Date | \n", + "Date | \n", + "CO2 | \n", + "seasonally | \n", + "fit | \n", + "seasonally | \n", + "CO2 | \n", + "seasonally | \n", + "
---|