{ "cells": [ { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "#
Concentration de CO2 dans l'atmosphère depuis 1958
" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "##
Rémy MARION
" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "##
Avril 2020
" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "### 1. Préambule" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "Dès 1958, Charles David Keeling a débuté la mesure précise du taux de CO2 dans l'atmosphère à l'observatoire de Mauna Loa, Hawaii, États-Unis. \n", "Ces mesures, qui continuent aujourd'hui, ont permis de montrer une évolution tout au long de l'année du taux de CO2 dans l'hémisphère Nord. Celle-ci étant provenant du cycle de vie des plantes. \n", "De même, ces données ont montrés une évolution continue du taux de CO2 dans l'atmosphère depuis 1958." ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "### 2. Travail à faire" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "Le but de l'exercide est de réaliser un document computationnel pour :\n", "* Réaliser un graphique qui montrera une oscillation périodique superposée à une évolution systématique plus lente.\n", "* Séparer ces deux phénomènes. Caractériser l'oscillation périodique et proposer un modèle simple de la contribution lente\n", "* Estimer ses paramètres et tenter une extrapolation jusqu'à 2025 (dans le but de pouvoir valider le modèle par des observations futures).\n", "* Déposer dans FUN le résultat." ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "### 3. Base de données" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "Les données sont disponibles sur le site Web de l'institut Scripps à l'adresse suivante: \n", "https://scrippsco2.ucsd.edu/data/atmospheric_co2/primary_mlo_co2_record.html\n", "\n", "Pour notre étude, nous prendrons les relevés hebdomadaires : *weekly_in_situ_co2_mlo.csv* que l'on peut télécharger à l'adresse suiavnte : https://scrippsco2.ucsd.edu/data/atmospheric_co2/mlo.html\n", "\n", "Nous travaillerons sur une base locale (copiée sur le serveur *Jupyter* de l'INRIA) téléchargée le 13 avril 2020.\n", "La totalité des documents nécessaires à cette étude seront committés sur le serveur *GitLab* de l'INRIA." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 4. Vérification de la base de données" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "#### a. Exploration des données" ] }, { "cell_type": "markdown", "metadata": { "hideCode": false, "hidePrompt": false }, "source": [ "Nous commencerons par analyser le contenu du fichier de données (fichier structuré *CSV*) pour ensuite faire un premier tracé de l'ensemble de la base de données. \n", "Nous utiliserons les libraries *pandas* et *matplotlib* pour *python 3.6*." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [], "source": [ "# Import des librairies\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [ { "data": { "text/plain": [ "(3156, 1)" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Chargement de la base de données (CSV)\n", "# Les lignes de commentaires sont ignorées\n", "# Le séparateur de champs utilisé dans la base de données est la virgule (,)\n", "# La colonne des dates est parsé et mise en index\n", "date_parser = lambda dates: [pd.datetime.strptime(d, '%Y-%m-%d') for d in dates]\n", "\n", "data = pd.read_csv('weekly_in_situ_co2_mlo.csv', sep=',', comment='\"', header=None,\n", " names=[\"date\", \"CO2\"])\n", "data['date'] = pd.to_datetime(data['date'], format='%Y-%m-%d')\n", "\n", "# Les dates sont passées à l'index du dataframe\n", "data.set_index('date', inplace=True)\n", "data.shape" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Les 44 premières lignes de commentaires du fichier brut n'ont pas été prises en compte (commande `comment='\"'`). \n", "La base de données est composée de 3156 mesures et de 2 colonnes :\n", "* date : date de relevé. Avec un relevé par semaine.\n", "* CO2 : concentration de CO2 en *ppm*." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "hideCode": false, "hidePrompt": false }, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
CO2
date
1958-03-29316.19
1958-04-05317.31
1958-04-12317.69
1958-04-19317.58
1958-04-26316.48
\n", "
" ], "text/plain": [ " CO2\n", "date \n", "1958-03-29 316.19\n", "1958-04-05 317.31\n", "1958-04-12 317.69\n", "1958-04-19 317.58\n", "1958-04-26 316.48" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Affichage partiel de la base de données mise en forme\n", "data.head(5)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Graph de la base de données complètes\n", "data.plot()\n", "#plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "L'inspection visuelle de la base de données complète montre que le fichier est bien formé et ne semble pas comporter pas de valeurs manquantes ou aberrantes." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### b. Vérification de la \"structure\" de la base de données" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Vérifions tout de même avec un code de validation la robustesse de la base de données. Nous vérifions la présence de valeurs manquantes et le type des variables (date, float)." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CO2 0\n", "dtype: int64" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Isolation des lignes comportant des données absentes\n", "data[pd.isnull(data).any(axis=1)].count()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Il n'y a aucune valeur manquante." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "CO2 float64\n", "dtype: object" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Vérification du type de la variable CO2\n", "data.dtypes" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dtype('