"# Création du graphique pour montrer la concentration moyenne de CO2 par an au fil du temps\n",
"# Contribution lente. Création du graphique pour montrer la concentration moyenne de CO2 par an au fil du temps\n",
"plt.figure(figsize=(10, 6))\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(data['Date'], data['Mean_CO2_Concentration'], label='Mean CO2 Concentration per Year Over Time')\n",
"plt.plot(data['Date'], data['Mean_CO2_Concentration'], label='Mean CO2 Concentration per Year Over Time')\n",
"plt.title('Mean CO2 Concentration per Year Over Time')\n",
"plt.title('Mean CO2 Concentration per Year Over Time')\n",
...
@@ -222,7 +222,7 @@
...
@@ -222,7 +222,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 13,
"execution_count": 11,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -246,7 +246,7 @@
...
@@ -246,7 +246,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 14,
"execution_count": 41,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -263,7 +263,7 @@
...
@@ -263,7 +263,7 @@
}
}
],
],
"source": [
"source": [
"# Création du graphique pour montrer l'oscillation de la concentration de CO2 par an au fil du temps\n",
"# Oscillation périodique. Création du graphique pour montrer l'oscillation de la concentration de CO2 au fil du temps\n",
"plt.figure(figsize=(10, 6))\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(data['Date'], data['Oscilation'], label='Oscilation CO2 Concentration Over Time')\n",
"plt.plot(data['Date'], data['Oscilation'], label='Oscilation CO2 Concentration Over Time')\n",
"plt.title('Oscilation CO2 Concentration Over Time')\n",
"plt.title('Oscilation CO2 Concentration Over Time')\n",
...
@@ -275,7 +275,7 @@
...
@@ -275,7 +275,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 15,
"execution_count": 43,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -292,7 +292,7 @@
...
@@ -292,7 +292,7 @@
}
}
],
],
"source": [
"source": [
"# Création du graphique pour montrer l'oscillation de la concentration de CO2 par an au fil du temps (300 dernières lignes du tableau)\n",
"# Oscillation périodique. Création du graphique pour montrer l'oscillation de la concentration de CO2 au fil du temps (300 dernières lignes du tableau)\n",
"plt.figure(figsize=(10, 6))\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(data['Date'][-300:], data['Oscilation'][-300:], label='Oscilation CO2 Concentration Over Time')\n",
"plt.plot(data['Date'][-300:], data['Oscilation'][-300:], label='Oscilation CO2 Concentration Over Time')\n",
"plt.title('Oscilation CO2 Concentration Over Time')\n",
"plt.title('Oscilation CO2 Concentration Over Time')\n",
...
@@ -304,18 +304,18 @@
...
@@ -304,18 +304,18 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 16,
"execution_count": 14,
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [],
"source": [
"source": [
"# Modéliser la évolution lente pour extrapolation jusqu’en 2025\n",
"# Contribution lente. Modéliser la évolution lente pour extrapolation jusqu’en 2025\n",
"# fft de scipy.fft, a des problèmes de chargement, il se peut que nous utilisions une version de SciPy antérieure à 1.4.0. La fonction fft a été ajoutée dans SciPy version 1.4.0.\n",
"# fft de scipy.fft, a des problèmes de chargement, il se peut que nous utilisions une version de SciPy antérieure à 1.4.0. La fonction fft a été ajoutée dans SciPy version 1.4.0.\n",
...
@@ -384,7 +384,7 @@
...
@@ -384,7 +384,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 35,
"execution_count": 17,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -406,7 +406,7 @@
...
@@ -406,7 +406,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 36,
"execution_count": 46,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -419,7 +419,7 @@
...
@@ -419,7 +419,7 @@
}
}
],
],
"source": [
"source": [
"# Calculer la transformée de Fourier de la série chronologique des anomalies CO2\n",
"# Oscillation périodique. Calculer la transformée de Fourier de la série chronologique des anomalies CO2\n",
"# Calculer les fréquences correspondant aux composantes de Fourier\n",
"# Calculer les fréquences correspondant aux composantes de Fourier\n",
...
@@ -437,25 +437,25 @@
...
@@ -437,25 +437,25 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 38,
"execution_count": 47,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
"name": "stdout",
"name": "stdout",
"output_type": "stream",
"output_type": "stream",
"text": [
"text": [
"Comment caractériser l'oscillation en calculant la transformée de Fourier donne des valeurs pas faciles à comprendre a priori, une autre manière est choisie pour caractériser l'oscillation\n"
"Comment caractériser l'oscillation périodique en calculant la transformée de Fourier donne des valeurs pas faciles à comprendre a priori, une autre manière est choisie pour caractériser l'oscillation\n"
]
]
}
}
],
],
"source": [
"source": [
"# Comment caractériser l'oscillation en calculant la transformée de Fourier donne des valeurs pas faciles à comprendre a priori, une autre manière est choisie pour caractériser l'oscillation\n",
"# Comment caractériser l'oscillation en calculant la transformée de Fourier donne des valeurs pas faciles à comprendre a priori, une autre manière est choisie pour caractériser l'oscillation\n",
"print(\"Comment caractériser l'oscillation en calculant la transformée de Fourier donne des valeurs pas faciles à comprendre a priori, une autre manière est choisie pour caractériser l'oscillation\")"
"print(\"Comment caractériser l'oscillation périodique en calculant la transformée de Fourier donne des valeurs pas faciles à comprendre a priori, une autre manière est choisie pour caractériser l'oscillation\")"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 22,
"execution_count": 48,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -472,7 +472,7 @@
...
@@ -472,7 +472,7 @@
}
}
],
],
"source": [
"source": [
"# Création du graphique pour montrer l'oscillation de la concentration de CO2 par an au fil du temps (300 dernières lignes du tableau)\n",
"# Oscillation périodique. Création du graphique pour montrer l'oscillation de la concentration de CO2 au fil du temps (300 dernières lignes du tableau)\n",
"plt.figure(figsize=(10, 6))\n",
"plt.figure(figsize=(10, 6))\n",
"plt.plot(data['Date'][-300:], data['Oscilation'][-300:], label='Oscilation CO2 Concentration Over Time')\n",
"plt.plot(data['Date'][-300:], data['Oscilation'][-300:], label='Oscilation CO2 Concentration Over Time')\n",
"plt.title('Oscilation CO2 Concentration Over Time')\n",
"plt.title('Oscilation CO2 Concentration Over Time')\n",
...
@@ -484,7 +484,7 @@
...
@@ -484,7 +484,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 39,
"execution_count": 24,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -492,22 +492,24 @@
...
@@ -492,22 +492,24 @@
"output_type": "stream",
"output_type": "stream",
"text": [
"text": [
"Maximum oscillation amplitude in CO2 anomalies: 4.419807692307586 ppm\n",
"Maximum oscillation amplitude in CO2 anomalies: 4.419807692307586 ppm\n",
"Minimum oscillation amplitude in CO2 anomalies: -4.191923076923047 ppm\n"
"Minimum oscillation amplitude in CO2 anomalies: -4.191923076923047 ppm\n",
"From the graph it is observed that maximum oscillation values around 3 ppm are frequent and the same is true for minimum oscillation values around -3 ppm\n"
]
]
}
}
],
],
"source": [
"source": [
"# Calculez la valeur maximale et minimale de la colonne 'Oscillation'\n",
"# Oscillation périodique. Calculez la valeur maximale et minimale de la colonne 'Oscillation'\n",
"maximum_value = data['Oscilation'].max()\n",
"maximum_value = data['Oscilation'].max()\n",
"minimum_value = data['Oscilation'].min()\n",
"minimum_value = data['Oscilation'].min()\n",
"\n",
"\n",
"print(\"Maximum oscillation amplitude in CO2 anomalies:\", maximum_value, \"ppm\")\n",
"print(\"Maximum oscillation amplitude in CO2 anomalies:\", maximum_value, \"ppm\")\n",
"print(\"Minimum oscillation amplitude in CO2 anomalies:\", minimum_value, \"ppm\")"
"print(\"Minimum oscillation amplitude in CO2 anomalies:\", minimum_value, \"ppm\")\n",
"print(\"From the graph it is observed that maximum oscillation values around 3 ppm are frequent and the same is true for minimum oscillation values around -3 ppm\")"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 40,
"execution_count": 49,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -519,7 +521,7 @@
...
@@ -519,7 +521,7 @@
}
}
],
],
"source": [
"source": [
"# Trouver les indices où la concentration est égale à zéro\n",
"# Oscillation périodique. Trouver les indices où la concentration est égale à zéro\n",
"# Calculer les temps entre deux passages à zéro consécutifs\n",
"# Calculer les temps entre deux passages à zéro consécutifs\n",
...
@@ -537,7 +539,7 @@
...
@@ -537,7 +539,7 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 41,
"execution_count": 50,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -549,7 +551,7 @@
...
@@ -549,7 +551,7 @@
}
}
],
],
"source": [
"source": [
"# Identifier les passages à zéro\n",
"# Oscillation périodique. Identifier les passages à zéro\n",
"crosses_by_zero = (data['Oscilation'] * data['Oscilation'].shift(1) < 0) & (data['Oscilation'] != 0) # Série booléenne qui contient True dans les lignes où un passage à zéro se produit dans la colonne « Oscilation » du DataFrame et False dans les autres lignes. Cette série est ensuite utilisée pour filtrer le DataFrame et obtenir les lignes qui correspondent aux passages par zéro\n",
"crosses_by_zero = (data['Oscilation'] * data['Oscilation'].shift(1) < 0) & (data['Oscilation'] != 0) # Série booléenne qui contient True dans les lignes où un passage à zéro se produit dans la colonne « Oscilation » du DataFrame et False dans les autres lignes. Cette série est ensuite utilisée pour filtrer le DataFrame et obtenir les lignes qui correspondent aux passages par zéro\n",
"\n",
"\n",
"# Filtrer les lignes contenant des passages à zéro\n",
"# Filtrer les lignes contenant des passages à zéro\n",