{ "cells": [ { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "source": [ "# Préambule" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "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 périodique de CO2 dans l'hémisphère Nord. Celle-ci provenant du cycle de vie des plantes. \n", "De même, ces données ont montré une évolution continue du taux de CO2 dans l'atmosphère depuis 1958." ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "source": [ "# Travail à faire" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "source": [ "Le but de l'exercice 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": true, "hidePrompt": true }, "source": [ "# Base de données" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "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.\n", "\n", "Les parties du code nécessaires à l'affichage des courbes ne sera pas affichées dans le rapport final. Elles seront tout de même accessibles dans le fichier *jupyter*." ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "source": [ "# Vérification de la base de données" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "source": [ "## Exploration des données" ] }, { "cell_type": "markdown", "metadata": { "hideCode": true, "hidePrompt": true }, "source": [ "Nous commençons 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": true }, "outputs": [], "source": [ "# Import des librairies\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "hideCode": false, "hideOutput": true, "hidePrompt": true }, "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": { "hideCode": true, "hideOutput": false, "hidePrompt": true }, "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": true, "hideOutput": true, "hidePrompt": true }, "outputs": [ { "data": { "text/html": [ "
| \n", " | CO2 | \n", "
|---|---|
| date | \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", "