"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.. Pour résoudre le problème, nous pouvons utiliser la fonction fft de numpy à la place, puisque numpy fournit également des fonctions pour effectuer la transformée de Fourier\n"
]
}
],
"source": [
"source": [
"# Caractériser l’oscillation\n",
"# Caractériser l’oscillation\n",
"import numpy as np\n",
"import numpy as np\n",
"# from scipy.fft import fft # 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",
"# from scipy.fft import fft \n",
"# Pour résoudre le problème, nous pouvons utiliser la fonction fft de numpy à la place, puisque numpy fournit également des fonctions pour effectuer la transformée de Fourier"
"# 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",
"# Pour résoudre le problème, nous pouvons utiliser la fonction fft de numpy à la place, puisque numpy fournit également des fonctions pour effectuer la transformée de Fourier\n",
"print(\"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.. Pour résoudre le problème, nous pouvons utiliser la fonction fft de numpy à la place, puisque numpy fournit également des fonctions pour effectuer la transformée de Fourier\")"
]
]
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 17,
"execution_count": 35,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
...
@@ -396,35 +406,168 @@
...
@@ -396,35 +406,168 @@
},
},
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count": 18,
"execution_count": 36,
"metadata": {},
"metadata": {},
"outputs": [
"outputs": [
{
{
"name": "stdout",
"name": "stdout",
"output_type": "stream",
"output_type": "stream",
"text": [
"text": [
"Frecuencia dominante de oscilación: 0.019356759976176297 ciclos/sem\n",
"print(\"Amplitud máxima de oscilación en anomalías de CO2:\", max_amplitude, \"ppm\")"
"print(\"Maximum oscillation amplitude in CO2 anomalies:\", max_amplitude, \"ppm\")"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"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"
]
}
],
"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",
"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\")"
"# 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",
"plt.figure(figsize=(10, 6))\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.xlabel('Year')\n",
"plt.ylabel('CO2 Concentration (ppm)')\n",
"plt.legend()\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Maximum oscillation amplitude in CO2 anomalies: 4.419807692307586 ppm\n",
"Minimum oscillation amplitude in CO2 anomalies: -4.191923076923047 ppm\n"
]
}
],
"source": [
"# Calculez la valeur maximale et minimale de la colonne 'Oscillation'\n",
"maximum_value = data['Oscilation'].max()\n",
"minimum_value = data['Oscilation'].min()\n",
"\n",
"print(\"Maximum oscillation amplitude in CO2 anomalies:\", maximum_value, \"ppm\")\n",
"print(\"Minimum oscillation amplitude in CO2 anomalies:\", minimum_value, \"ppm\")"
]
]
},
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Cette forme de détermination ne donne pas de résultats car les données de concentration de CO2 de l'oscillation ne valent pas zéro mais ont de faibles valeurs, à la fois positives et négatives, donc la méthode correcte doit détecter ces passages par zéro\n"
]
}
],
"source": [
"# Trouver les indices où la concentration est égale à zéro\n",
"# print(\"Average time between zero steps:\", average_time_between_steps)\n",
"print(\"Cette forme de détermination ne donne pas de résultats car les données de concentration de CO2 de l'oscillation ne valent pas zéro mais ont de faibles valeurs, à la fois positives et négatives, donc la méthode correcte doit détecter ces passages par zéro\")"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Average time between zero crossings: 69 days 15:11:01.224489\n"