{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Concentration de CO2 dans l'atmosphère depuis 1958" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Téléchargement et ouverture des données" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous allons commencer par importer les librairies nécéssaires :" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Utilisation de la bibliothèque intégrée à Notebook (matplotlib inline)\n", "2. Importation d'une bibliothèque pour les sorties graphique dans le nom \"plt\"\n", "3. Importation d'une bibliothèque pratique pour la manipulation de données (tableaux, séries temporelles,...) dans le nom \"pd\"\n", "4. Importation d'une bibliothèque pour faciliter la manipulation de tableaux, matrices, et opérations mathématiques dans le nom \"np\"\n", "5. Importation d'un module qui permet de chercher des chemins locaux (os)\n", "6. Importation d'un module qui défini des fonctions permettant d'ouvrir des URL dans des environnements complexes (urllib.request)\n", "7. Importation d'un module pour faciliter les optimisations non linéaires ainsi que les problèmes d'ajustement de courbes (curve_fit)\n", "8. Importation d'un module pour faciliter l'ajustement entre des données et une fonction mathématique par la méthode des moindres carrés (leastsq)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline \n", "import matplotlib.pyplot as plt \n", "import pandas as pd \n", "import numpy as np \n", "import os\n", "import urllib.request\n", "from scipy.optimize import curve_fit\n", "from scipy.optimize import leastsq" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les données d'évolution de la concentration de CO2 atmosphérique au cours du temps sont disponibles sur le site Web de l'institut Scripps. 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 (un point de donnée un jour pour chaque semaine). Nous téléchargeons le jeu de données complet, qui commence en 1958 et se termine en 2020. Il est indiqué que les données du site sont disponible gratuitement, à condition qu'un crédit approprié y soit accordé. De ce fait, nous nous devons de citer ces deux articles :\n", "\n", "C. D. Keeling, S. C. Piper, R. B. Bacastow, M. Wahlen, T. P. Whorf, M. Heimann, and H. A. Meijer, Exchanges of atmospheric CO2 and 13CO2 with the terrestrial biosphere and oceans from 1978 to 2000. I. Global aspects, SIO Reference Series, No. 01-06, Scripps Institution of Oceanography, San Diego, 88 pages, 2001.\n", "\n", "C. D. Keeling, S. C. Piper, R. B. Bacastow, M. Wahlen, T. P. Whorf, M. Heimann, and H. A. Meijer, Atmospheric CO2 and 13CO2 exchange with the terrestrial biosphere and oceans from 1978 to 2000: observations and carbon cycle implications, pages 83-113, in \"A History of Atmospheric CO2 and its effects on Plants, Animals, and Ecosystems\", editors, Ehleringer, J.R., T. E. Cerling, M. D. Dearing, Springer Verlag, New York, 2005." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Téléchargeons maintenant le jeu de données complet, et enregistrons le localement, à condition qu'il n'existe pas déjà un fichier local avec ces mêmes données :" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "data_url = \"https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/weekly/weekly_in_situ_co2_mlo.csv\"\n", "data_file = \"daily_CO2.csv\" # donnons leur un nom .csv\n", "if not os.path.exists(data_file): # si le fichier local n'existe pas déjà\n", " urllib.request.urlretrieve(data_url, data_file) # alors on enregistre les données localement (via un URL local)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "NB : Le jeu de données a été téléchargé le 11/04/2020" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Nous regardons premièrement le fichier .csv téléchargé. Les 43 premières lignes sont composées de texte (date de mise en ligne des données, références à citer, composition du tableau de données) qu'il va donc falloir enlever via la commande skiprows." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | indicated by the date in the first column. | \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", "
2019-07-06 | \n", "412.69 | \n", "
2019-07-13 | \n", "412.30 | \n", "
2019-07-20 | \n", "411.76 | \n", "
2019-07-27 | \n", "410.32 | \n", "
2019-08-03 | \n", "410.50 | \n", "
2019-08-10 | \n", "410.48 | \n", "
2019-08-17 | \n", "410.05 | \n", "
2019-08-24 | \n", "409.52 | \n", "
2019-08-31 | \n", "409.32 | \n", "
2019-09-07 | \n", "408.80 | \n", "
2019-09-14 | \n", "408.61 | \n", "
2019-09-21 | \n", "408.50 | \n", "
2019-09-28 | \n", "408.28 | \n", "
2019-10-05 | \n", "407.99 | \n", "
2019-10-12 | \n", "408.61 | \n", "
2019-10-19 | \n", "408.77 | \n", "
2019-10-26 | \n", "408.68 | \n", "
2019-11-02 | \n", "409.86 | \n", "
2019-11-09 | \n", "410.15 | \n", "
2019-11-16 | \n", "410.22 | \n", "
2019-11-23 | \n", "410.48 | \n", "
2019-11-30 | \n", "410.92 | \n", "
2019-12-07 | \n", "411.27 | \n", "
2019-12-14 | \n", "411.67 | \n", "
2019-12-21 | \n", "412.30 | \n", "
2019-12-28 | \n", "412.59 | \n", "
2020-01-04 | \n", "413.19 | \n", "
2020-01-11 | \n", "413.39 | \n", "
2020-01-25 | \n", "413.36 | \n", "
2020-02-01 | \n", "413.99 | \n", "
3156 rows × 1 columns
\n", "