"La première étape est de charger les données du fichier et de s'assurer de son contenu. D'après les commentaires en en-tête de fichier, la première colonne indique la date et la seconde la concentration de CO2 en micro-moles par mole (ppm). Les mesures sont alignées sur 12h00 sur le premier jour de la semaine."
"La première étape est de charger les données du fichier et de s'assurer de son contenu. D'après les commentaires en en-tête de fichier, la première colonne indique la date et la seconde la concentration de CO2 en micro-moles par mole (ppm). Les mesures sont alignées sur 12h00 sur le premier jour de la semaine."
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 1,
"execution_count": 2,
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"%matplotlib inline\n",
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.pyplot as plt\n",
"import pandas as pd\n",
"import pandas as pd\n",
"import isoweek"
"import isoweek\n",
"import datetime"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 2,
"execution_count": 3,
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
...
@@ -52,14 +53,14 @@
...
@@ -52,14 +53,14 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 29,
"execution_count": 4,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
"name": "stdout",
"name": "stdout",
"output_type": "stream",
"output_type": "stream",
"text": [
"text": [
"Missing weeks (74 in total):\n",
"Missing weeks (74 in total out of 3357 weeks):\n",
"print(f\"Missing weeks ({len(missing_weeks)} in total):\")\n",
"print(f\"Missing weeks ({len(missing_weeks)} in total out of {w} weeks):\")\n",
"print(\",\\t\".join(missing_weeks))\n",
"print(\",\\t\".join(missing_weeks))\n",
"\n",
"\n",
"missing_weeks_keep_year = [e[:4] for e in missing_weeks]\n",
"missing_weeks_keep_year = [e[:4] for e in missing_weeks]\n",
...
@@ -115,6 +116,138 @@
...
@@ -115,6 +116,138 @@
"for y in sorted(missing_weeks_per_year):\n",
"for y in sorted(missing_weeks_per_year):\n",
" print(y, missing_weeks_per_year[y])"
" print(y, missing_weeks_per_year[y])"
]
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nous pouvons constater que certaines années ont quelques semaines manquantes. Celles qui se démarquent le plus notamment sont 1958 et 1964 pour lesquelles une grosse part de l'année est manquante. Pour rappel, l'année 1958 n'est mesurée qu'à partir de la première donnée, ainsi les semaines maquantes sont bien des données manquantes _entre_ des mesures et non le début d'année, qui n'a pas été mesuré. Au sens global, seuls environ 2% des mesures sont manquantes, l'influence sur les résultats est donc limitée."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"data = raw_data.copy()\n",
"\n",
"data['Date'] = [pd.Period(w, 'W') for w in data['Date']]\n",
"\n",
"data = data.set_index('Date').sort_index()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Graphique de l'évolution de la concentration de CO2\n",
"\n",
"Maintenant que notre dataset est vérifié, nous pouvons tracer un premier graphique concernant l'évolution de la concentration en CO2 dans l'atmosphère de Mauna Loa. Nous obtenons le graphique suivant, en nuage de points:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7f2c79704f98>"
"Nous constatons ainsi deux phénomènes. Le premier est une tendance globale de l'augmentation de la concentration. Le second est une oscillation périodique tout au long de la courbe."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Tendance globale\n",
"\n",
"Afin de mesurer la tendance globale, puisque l'oscillation périodique observée est annuelle, nous allons calculer la moyenne annuelle de la concentration de CO2."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"# Create an array containing the week period containing the 1st of January\n",