From 559297be08f820c372a615c2c803a49e031df5f6 Mon Sep 17 00:00:00 2001 From: d17ec882235694d4a5db9f8242ebebeb Date: Sun, 10 Nov 2024 20:06:13 +0000 Subject: [PATCH] no commit message --- module3/exo3/Untitled.ipynb | 6 - module3/exo3/concentration_co2.ipynb | 1487 ++++++ module3/exo3/exercice.ipynb | 25 - module3/exo3/exercice_R_en.org | 81 - module3/exo3/exercice_R_fr.org | 84 - module3/exo3/exercice_en.Rmd | 33 - module3/exo3/exercice_en.ipynb | 25 - module3/exo3/exercice_fr.Rmd | 33 - module3/exo3/exercice_fr.ipynb | 5768 +++++++++++++++++++++- module3/exo3/exercice_python_en.org | 94 - module3/exo3/exercice_python_fr.org | 93 - module3/exo3/monthly_in_situ_co2_mlo.csv | 868 ++++ 12 files changed, 8034 insertions(+), 563 deletions(-) delete mode 100644 module3/exo3/Untitled.ipynb create mode 100644 module3/exo3/concentration_co2.ipynb delete mode 100644 module3/exo3/exercice.ipynb delete mode 100644 module3/exo3/exercice_R_en.org delete mode 100644 module3/exo3/exercice_R_fr.org delete mode 100644 module3/exo3/exercice_en.Rmd delete mode 100644 module3/exo3/exercice_en.ipynb delete mode 100644 module3/exo3/exercice_fr.Rmd delete mode 100644 module3/exo3/exercice_python_en.org delete mode 100644 module3/exo3/exercice_python_fr.org create mode 100644 module3/exo3/monthly_in_situ_co2_mlo.csv diff --git a/module3/exo3/Untitled.ipynb b/module3/exo3/Untitled.ipynb deleted file mode 100644 index 7fec515..0000000 --- a/module3/exo3/Untitled.ipynb +++ /dev/null @@ -1,6 +0,0 @@ -{ - "cells": [], - "metadata": {}, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/module3/exo3/concentration_co2.ipynb b/module3/exo3/concentration_co2.ipynb new file mode 100644 index 0000000..8d43cb7 --- /dev/null +++ b/module3/exo3/concentration_co2.ipynb @@ -0,0 +1,1487 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "15fb8f9a-8d2d-41f7-b8a9-b2ff72560f99", + "metadata": {}, + "source": [ + "# Sujet 1 : Concentration de CO2 dans l'atmosphère depuis 1958" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "ca0696df-3b70-42b1-898c-90b96acbad7a", + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n" + ] + }, + { + "cell_type": "markdown", + "id": "f5f4e488-f814-4729-98e9-ccd4776a4deb", + "metadata": {}, + "source": [ + "On récupère les données. Elles ont été trouvées dans [ce lien](https://scrippsco2.ucsd.edu/data/atmospheric_co2/primary_mlo_co2_record.html). \n", + "\n", + "C. D. Keeling, S. C. Piper, R. B. Bacastow, M. Wahlen, T. P. Whorf, M. Heimann, and H. A. Meijer, Exchanges of atmospheric CO2 and 13CO2 with the terrestrial biosphere and oceans from 1978 to 2000. I. Global aspects, SIO Reference Series, No. 01-06, Scripps Institution of Oceanography, San Diego, 88 pages, 2001." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "af68b5ce-0267-4bfd-9495-a15597105fef", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDateDateCO2seasonallyfitseasonallyCO2seasonallySta
0adjustedadjusted fitfilledadjusted filledNaN
1Excel[ppm][ppm][ppm][ppm][ppm][ppm]NaN
2195801212001958.0411-99.99-99.99-99.99-99.99-99.99-99.99MLO
3195802212311958.1260-99.99-99.99-99.99-99.99-99.99-99.99MLO
4195803212591958.2027315.71314.43316.21314.91315.71314.43MLO
....................................
801202408455192024.6230-99.99-99.99-99.99-99.99-99.99-99.99MLO
802202409455502024.7077-99.99-99.99-99.99-99.99-99.99-99.99MLO
803202410455802024.7896-99.99-99.99-99.99-99.99-99.99-99.99MLO
804202411456112024.8743-99.99-99.99-99.99-99.99-99.99-99.99MLO
805202412456412024.9563-99.99-99.99-99.99-99.99-99.99-99.99MLO
\n", + "

806 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date Date CO2 seasonally fit \\\n", + "0 adjusted \n", + "1 Excel [ppm] [ppm] [ppm] \n", + "2 1958 01 21200 1958.0411 -99.99 -99.99 -99.99 \n", + "3 1958 02 21231 1958.1260 -99.99 -99.99 -99.99 \n", + "4 1958 03 21259 1958.2027 315.71 314.43 316.21 \n", + ".. ... ... ... ... ... ... ... \n", + "801 2024 08 45519 2024.6230 -99.99 -99.99 -99.99 \n", + "802 2024 09 45550 2024.7077 -99.99 -99.99 -99.99 \n", + "803 2024 10 45580 2024.7896 -99.99 -99.99 -99.99 \n", + "804 2024 11 45611 2024.8743 -99.99 -99.99 -99.99 \n", + "805 2024 12 45641 2024.9563 -99.99 -99.99 -99.99 \n", + "\n", + " seasonally CO2 seasonally Sta \n", + "0 adjusted fit filled adjusted filled NaN \n", + "1 [ppm] [ppm] [ppm] NaN \n", + "2 -99.99 -99.99 -99.99 MLO \n", + "3 -99.99 -99.99 -99.99 MLO \n", + "4 314.91 315.71 314.43 MLO \n", + ".. ... ... ... ... \n", + "801 -99.99 -99.99 -99.99 MLO \n", + "802 -99.99 -99.99 -99.99 MLO \n", + "803 -99.99 -99.99 -99.99 MLO \n", + "804 -99.99 -99.99 -99.99 MLO \n", + "805 -99.99 -99.99 -99.99 MLO \n", + "\n", + "[806 rows x 11 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_file = 'monthly_in_situ_co2_mlo.csv'\n", + "data = pd.read_csv(data_file, skiprows=61)\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "d5f03213-e6de-4b82-aecc-8d6ef432bc03", + "metadata": {}, + "source": [ + "Il y a un problème avec les en têtes. On concatene les deux premieres lignes et enleve celle de l'unité." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "334f0ffd-2287-4032-8f68-edacd1e4760e", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledSta
0195801212001958.0411-99.99-99.99-99.99-99.99-99.99-99.99MLO
1195802212311958.1260-99.99-99.99-99.99-99.99-99.99-99.99MLO
2195803212591958.2027315.71314.43316.21314.91315.71314.43MLO
3195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
4195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
....................................
799202408455192024.6230-99.99-99.99-99.99-99.99-99.99-99.99MLO
800202409455502024.7077-99.99-99.99-99.99-99.99-99.99-99.99MLO
801202410455802024.7896-99.99-99.99-99.99-99.99-99.99-99.99MLO
802202411456112024.8743-99.99-99.99-99.99-99.99-99.99-99.99MLO
803202412456412024.9563-99.99-99.99-99.99-99.99-99.99-99.99MLO
\n", + "

804 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "0 1958 01 21200 1958.0411 -99.99 -99.99 \n", + "1 1958 02 21231 1958.1260 -99.99 -99.99 \n", + "2 1958 03 21259 1958.2027 315.71 314.43 \n", + "3 1958 04 21290 1958.2877 317.45 315.16 \n", + "4 1958 05 21320 1958.3699 317.51 314.69 \n", + ".. ... ... ... ... ... ... \n", + "799 2024 08 45519 2024.6230 -99.99 -99.99 \n", + "800 2024 09 45550 2024.7077 -99.99 -99.99 \n", + "801 2024 10 45580 2024.7896 -99.99 -99.99 \n", + "802 2024 11 45611 2024.8743 -99.99 -99.99 \n", + "803 2024 12 45641 2024.9563 -99.99 -99.99 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "0 -99.99 -99.99 -99.99 \n", + "1 -99.99 -99.99 -99.99 \n", + "2 316.21 314.91 315.71 \n", + "3 317.30 314.99 317.45 \n", + "4 317.89 315.07 317.51 \n", + ".. ... ... ... \n", + "799 -99.99 -99.99 -99.99 \n", + "800 -99.99 -99.99 -99.99 \n", + "801 -99.99 -99.99 -99.99 \n", + "802 -99.99 -99.99 -99.99 \n", + "803 -99.99 -99.99 -99.99 \n", + "\n", + " seasonally_adjusted_filled Sta \n", + "0 -99.99 MLO \n", + "1 -99.99 MLO \n", + "2 314.43 MLO \n", + "3 315.16 MLO \n", + "4 314.69 MLO \n", + ".. ... ... \n", + "799 -99.99 MLO \n", + "800 -99.99 MLO \n", + "801 -99.99 MLO \n", + "802 -99.99 MLO \n", + "803 -99.99 MLO \n", + "\n", + "[804 rows x 11 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "columns_label = ['Yr', 'Mn', 'Date_excel', 'Date', 'CO2', 'seasonally_adjusted',\n", + " 'fit', 'seasonally_adjusted_fit', 'CO2_filled', 'seasonally_adjusted_filled', 'Sta']\n", + "\n", + "data.columns = columns_label\n", + "data = data.drop([0, 1]).reset_index().drop('index',axis=1)\n", + "data\n" + ] + }, + { + "cell_type": "markdown", + "id": "576a2a84-800c-4eaa-84d7-cefa952d0082", + "metadata": {}, + "source": [ + "Les données manquantes dans le fichier de base ont été remplacées par -99.99. Elles ne nous interessent pas. On les enlève de l'analyse." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "db1312d9-d994-4343-9cab-28ce823ede37", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledSta
2195803212591958.2027315.71314.43316.21314.91315.71314.43MLO
3195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
4195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
6195807213811958.5370315.87315.20315.86315.22315.87315.20MLO
7195808214121958.6219314.93316.22313.97315.29314.93316.22MLO
....................................
794202403453662024.2049425.22423.65424.92423.33425.22423.65MLO
795202404453972024.2896426.30423.50426.42423.60426.30423.50MLO
796202405454272024.3716426.70423.29427.27423.86426.70423.29MLO
797202406454582024.4563426.62424.06426.67424.13426.62424.06MLO
798202407454882024.5383425.40424.62425.13424.39425.40424.62MLO
\n", + "

792 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "2 1958 03 21259 1958.2027 315.71 314.43 \n", + "3 1958 04 21290 1958.2877 317.45 315.16 \n", + "4 1958 05 21320 1958.3699 317.51 314.69 \n", + "6 1958 07 21381 1958.5370 315.87 315.20 \n", + "7 1958 08 21412 1958.6219 314.93 316.22 \n", + ".. ... ... ... ... ... ... \n", + "794 2024 03 45366 2024.2049 425.22 423.65 \n", + "795 2024 04 45397 2024.2896 426.30 423.50 \n", + "796 2024 05 45427 2024.3716 426.70 423.29 \n", + "797 2024 06 45458 2024.4563 426.62 424.06 \n", + "798 2024 07 45488 2024.5383 425.40 424.62 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "2 316.21 314.91 315.71 \n", + "3 317.30 314.99 317.45 \n", + "4 317.89 315.07 317.51 \n", + "6 315.86 315.22 315.87 \n", + "7 313.97 315.29 314.93 \n", + ".. ... ... ... \n", + "794 424.92 423.33 425.22 \n", + "795 426.42 423.60 426.30 \n", + "796 427.27 423.86 426.70 \n", + "797 426.67 424.13 426.62 \n", + "798 425.13 424.39 425.40 \n", + "\n", + " seasonally_adjusted_filled Sta \n", + "2 314.43 MLO \n", + "3 315.16 MLO \n", + "4 314.69 MLO \n", + "6 315.20 MLO \n", + "7 316.22 MLO \n", + ".. ... ... \n", + "794 423.65 MLO \n", + "795 423.50 MLO \n", + "796 423.29 MLO \n", + "797 424.06 MLO \n", + "798 424.62 MLO \n", + "\n", + "[792 rows x 11 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = data[data['CO2'].astype(float)>0]\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "3d2be0e1-6aae-4bd5-917a-786fcaded01f", + "metadata": {}, + "source": [ + "On crée une collonne avec les dates compreensibles par pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "0860f711-a149-4a08-aee8-c8ca9757821f", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/tmp/ipykernel_33641/3633217335.py:4: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n", + " data.loc[:, 'period'] = [convert_to_month_start(y, m) for y, m in zip(data['Yr'].astype(int), data['Mn'].astype(int))]\n" + ] + }, + { + "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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledStaperiod
2195803212591958.2027315.71314.43316.21314.91315.71314.43MLO1958-03-01
3195804212901958.2877317.45315.16317.30314.99317.45315.16MLO1958-04-01
4195805213201958.3699317.51314.69317.89315.07317.51314.69MLO1958-05-01
6195807213811958.5370315.87315.20315.86315.22315.87315.20MLO1958-07-01
7195808214121958.6219314.93316.22313.97315.29314.93316.22MLO1958-08-01
.......................................
794202403453662024.2049425.22423.65424.92423.33425.22423.65MLO2024-03-01
795202404453972024.2896426.30423.50426.42423.60426.30423.50MLO2024-04-01
796202405454272024.3716426.70423.29427.27423.86426.70423.29MLO2024-05-01
797202406454582024.4563426.62424.06426.67424.13426.62424.06MLO2024-06-01
798202407454882024.5383425.40424.62425.13424.39425.40424.62MLO2024-07-01
\n", + "

792 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "2 1958 03 21259 1958.2027 315.71 314.43 \n", + "3 1958 04 21290 1958.2877 317.45 315.16 \n", + "4 1958 05 21320 1958.3699 317.51 314.69 \n", + "6 1958 07 21381 1958.5370 315.87 315.20 \n", + "7 1958 08 21412 1958.6219 314.93 316.22 \n", + ".. ... ... ... ... ... ... \n", + "794 2024 03 45366 2024.2049 425.22 423.65 \n", + "795 2024 04 45397 2024.2896 426.30 423.50 \n", + "796 2024 05 45427 2024.3716 426.70 423.29 \n", + "797 2024 06 45458 2024.4563 426.62 424.06 \n", + "798 2024 07 45488 2024.5383 425.40 424.62 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "2 316.21 314.91 315.71 \n", + "3 317.30 314.99 317.45 \n", + "4 317.89 315.07 317.51 \n", + "6 315.86 315.22 315.87 \n", + "7 313.97 315.29 314.93 \n", + ".. ... ... ... \n", + "794 424.92 423.33 425.22 \n", + "795 426.42 423.60 426.30 \n", + "796 427.27 423.86 426.70 \n", + "797 426.67 424.13 426.62 \n", + "798 425.13 424.39 425.40 \n", + "\n", + " seasonally_adjusted_filled Sta period \n", + "2 314.43 MLO 1958-03-01 \n", + "3 315.16 MLO 1958-04-01 \n", + "4 314.69 MLO 1958-05-01 \n", + "6 315.20 MLO 1958-07-01 \n", + "7 316.22 MLO 1958-08-01 \n", + ".. ... ... ... \n", + "794 423.65 MLO 2024-03-01 \n", + "795 423.50 MLO 2024-04-01 \n", + "796 423.29 MLO 2024-05-01 \n", + "797 424.06 MLO 2024-06-01 \n", + "798 424.62 MLO 2024-07-01 \n", + "\n", + "[792 rows x 12 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "def convert_to_month_start(year, month):\n", + " return pd.Timestamp(year=year, month=month, day=1)\n", + "\n", + "data.loc[:, 'period'] = [convert_to_month_start(y, m) for y, m in zip(data['Yr'].astype(int), data['Mn'].astype(int))]\n", + "data" + ] + }, + { + "cell_type": "markdown", + "id": "62d67b57-4f8d-4643-8893-79ffa217c453", + "metadata": {}, + "source": [ + "On fait le plot de la tendance historique" + ] + }, + { + "cell_type": "markdown", + "id": "c0dd12f3-0182-4bc3-a1aa-eca1bcba1c01", + "metadata": {}, + "source": [ + "On utilise les periodes en tant qu'index et on les sorte de manière croissante " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "e13bb738-6cc1-418c-9faa-865f82a7afd3", + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledSta
period
1958-03-01195803212591958.2027315.71314.43316.21314.91315.71314.43MLO
1958-04-01195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
1958-05-01195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
1958-07-01195807213811958.5370315.87315.20315.86315.22315.87315.20MLO
1958-08-01195808214121958.6219314.93316.22313.97315.29314.93316.22MLO
....................................
2024-03-01202403453662024.2049425.22423.65424.92423.33425.22423.65MLO
2024-04-01202404453972024.2896426.30423.50426.42423.60426.30423.50MLO
2024-05-01202405454272024.3716426.70423.29427.27423.86426.70423.29MLO
2024-06-01202406454582024.4563426.62424.06426.67424.13426.62424.06MLO
2024-07-01202407454882024.5383425.40424.62425.13424.39425.40424.62MLO
\n", + "

792 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "period \n", + "1958-03-01 1958 03 21259 1958.2027 315.71 314.43 \n", + "1958-04-01 1958 04 21290 1958.2877 317.45 315.16 \n", + "1958-05-01 1958 05 21320 1958.3699 317.51 314.69 \n", + "1958-07-01 1958 07 21381 1958.5370 315.87 315.20 \n", + "1958-08-01 1958 08 21412 1958.6219 314.93 316.22 \n", + "... ... ... ... ... ... ... \n", + "2024-03-01 2024 03 45366 2024.2049 425.22 423.65 \n", + "2024-04-01 2024 04 45397 2024.2896 426.30 423.50 \n", + "2024-05-01 2024 05 45427 2024.3716 426.70 423.29 \n", + "2024-06-01 2024 06 45458 2024.4563 426.62 424.06 \n", + "2024-07-01 2024 07 45488 2024.5383 425.40 424.62 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "period \n", + "1958-03-01 316.21 314.91 315.71 \n", + "1958-04-01 317.30 314.99 317.45 \n", + "1958-05-01 317.89 315.07 317.51 \n", + "1958-07-01 315.86 315.22 315.87 \n", + "1958-08-01 313.97 315.29 314.93 \n", + "... ... ... ... \n", + "2024-03-01 424.92 423.33 425.22 \n", + "2024-04-01 426.42 423.60 426.30 \n", + "2024-05-01 427.27 423.86 426.70 \n", + "2024-06-01 426.67 424.13 426.62 \n", + "2024-07-01 425.13 424.39 425.40 \n", + "\n", + " seasonally_adjusted_filled Sta \n", + "period \n", + "1958-03-01 314.43 MLO \n", + "1958-04-01 315.16 MLO \n", + "1958-05-01 314.69 MLO \n", + "1958-07-01 315.20 MLO \n", + "1958-08-01 316.22 MLO \n", + "... ... ... \n", + "2024-03-01 423.65 MLO \n", + "2024-04-01 423.50 MLO \n", + "2024-05-01 423.29 MLO \n", + "2024-06-01 424.06 MLO \n", + "2024-07-01 424.62 MLO \n", + "\n", + "[792 rows x 11 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_data = data.set_index('period').sort_index()\n", + "sorted_data" + ] + }, + { + "cell_type": "markdown", + "id": "c2251f58-ac8b-4182-862a-421fdca99b9e", + "metadata": {}, + "source": [ + "On plot les données" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "16bc35d2-002f-445a-8eb4-2b6ece44d87e", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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7QsAyMvLQ8OGDfHKK68gLCwMO3furOQWViyshwzrUXLY+ClH3njjDbzxxhv245YtW8JqtSIzMxMAkJOTAwB46623cO3aNWzYsAHZ2dmV0taK4MUXX0S/fv2QmpoKgPUICwvDsWPH7AZyq1atYLFYdKtHbGystCizRYsWutbjgw8+wFtvvYXly5fbz3Xs2BH169fH0qVLAQBGo/gV/tRTT6FmzZrYsGED8vLyKqW95c369esByAt327dvj4YNG+pSj2+//RYLFy6UDJq2bdvqVo9SU9muJ19k1apV1KBBA7r55pvpyy+/pLS0NCIislqtNHPmTAoNDbXfm5+fT0REH374ITVr1oyuXr1aGU0uVxYsWECBgYHUtGlTMhgMtG3bNiISfdejHj/88AM1bNiQunTpQjVr1qQnn3ySkpKSiIhoxowZutPju+++o+bNm1PPnj3p5ptvpiVLlpDVaiUiounTp+tOj/3791Pz5s2pR48edNttt1HNmjXprrvuotjYWCIieuGFF6hdu3Z06dIlIiLKyckhIqIff/yRbrrpJvuxr/Dnn39SkyZNyGAw0J49e4iIyGazERHR9evX6aWXXtKVHsuWLaP69etTv379qFu3blSvXj16//33iYgoIyNDd3q4Chs/ZUx2djbdcccd9O9//9vp9T/++IPat29Pn376KRER5ebmEhHR5cuXqVq1arRr164Ka2t5s2vXLmrVqhU1atSIli1bRrGxsdSjRw/69ttv7ff88ccf1KFDB13oQUS0aNEiatOmDf3yyy90+fJl+vnnnykgIICOHj1KRPrT49NPP7XrsXv3bnrzzTfJYDDQ119/TYqi0Nq1a6ldu3a60YOI6Pnnn6cxY8YQkfgjHxUVRS1atKCZM2dSeno6/fXXX9SjRw968skniYhIURQiItq2bRvVr1+fjh07VmltL2t27dpFt956Kz399NN02223Ua9evYrcs2XLFurdu7cu9Pj555+pa9eu9M033xARUVJSEn355ZcUEBBAGRkZRES0efNm3ejhDmz8lDF//vkn1atXj2w2G6WlpdHLL79MH374IS1dupSIiNLT02nWrFnUrFkz+3/7RERhYWHUvHlz+x9BX+DFF1+kp556yv4Hi4ioRYsW9Pbbb9uPU1JS6Nlnn/V5PRRFIavVSg888ABNmTJFutauXTs6fPgwERFdvHiRnnnmGZ/Xg4jo2rVrNHLkSHrrrbeISPslPXDgQGratClt3LiRcnNzdfPzoigKpaen0y233EIvvPACEWkejq+//pq6d+9u/6M3f/58ql69Oq1YsYLy8vKIiOi9996jIUOG2HX0ZtQ+nD59mubNm0dnz56lgwcPUvXq1WnRokVERGSxWIhIeDbmz59PAQEBPq/H4sWLafr06dJi/927d1O7du1o3759RKQPPcoCNn7KCHVAfffddzRhwgTasmULtWrVikaPHk3jxo0jk8lETz/9NKWlpVFcXJzdZbl06VKKiYmh++67j0aMGEHXrl2r5J6UHeovbiLtF9XDDz9MI0aMkO6LjIykgQMH+rweRETdunWjqVOn2nddzJo1i9q3b09vv/027d27l4iIYmNjdTE+8vLyqHbt2rRs2TIi0tzzd911FzVu3JimTJlCWVlZdPr0aRowYIBP6nHo0CFKT0+XzvXq1cu+w039xyE/P5/uvPNOGjduHCUlJVF+fj69+OKLVLNmTRo8eDDdc889VK1aNfrqq6+IiLz2D5wzPdQpUIvFQnPmzKF69erZdVGvZWZm0ksvveSTejhO7aanp9v7rHL06FFq2LChfXkFke/qUZaw8eMiv/76K02dOpU+/fRTioyMtJ//5ZdfKCgoiJ588kl688037WsUFi9eTDfffDP93//9HxGJ//BvvfVW6tixIzVp0oQGDBhAcXFxldGVMqE4PRwNICKxpmXo0KGUkZEhXdOLHsuXL6cWLVrQqFGjqE6dOtShQwf697//TUOHDqXQ0FD68MMPiUg/etx///3UoUMHSkxMJCKipUuX0tChQ2nq1KnUpk0bu4ve1/T4/fffqWnTphQcHEzNmzenN998067BZ599RjVq1LAbdup/7n/88Qc1bdrUvu6FiOi3336jt956i2bOnEknT56s+I6UEc70SE5OJiLxh1r9Y3327Flq1qwZzZkzh4iK/n759ddffVKPN954Q9qm7tjvefPm0YABA4hIGysqvjI+ygM2fkpJamoq3X333dSwYUOaOXMm3XLLLdS4cWNavHgxEYkf1JCQEDIYDPTDDz/Y36coCt111130+OOP2wdobm4uJScnU1RUVGV0pUwoTo8ff/zRfo+iKPYf1sWLF1NgYKD034t6zZf1cBwLKSkp9J///IcGDx5MmZmZ9vPTpk2jiRMnSgsV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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "sorted_data['CO2'] = sorted_data['CO2'].astype(float)\n", + "sorted_data['CO2'].plot(color='blue')\n", + "plt.ylabel(r'Concentration en $CO_2$ [ppm]')\n", + "plt.xlabel('Année')\n", + "plt.grid(linestyle=':')\n" + ] + }, + { + "cell_type": "markdown", + "id": "42e5e379-7864-4c6b-bc76-c12d64e9ce32", + "metadata": {}, + "source": [ + "On observe deux phénomène couplés : une oscillation périodique annuelle et une contribution plus lente. On essaye de fitter cette contribution plus lente par une exponentielle croissante, selon $$[CO_2] = a \\cdot \\exp\\left(b \\cdot t \\right) + c$$" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "bcddaf33", + "metadata": { + "vscode": { + "languageId": "r" + } + }, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAj8AAAGwCAYAAABGogSnAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAADII0lEQVR4nOydd3xTVf+AnyTdQMuGssqUvUEEBRQQFFlOVMQBKIqCKCrKq744UX8KOF5RkaGI4kaQiuy9S6EUSilQoJRCGZ3QkeSe3x+3Gae00KYrbc7z+eSTk5ubm3Oee9p+e6ZBCCFQKBQKhUKh8BCMZZ0BhUKhUCgUitJEBT8KhUKhUCg8ChX8KBQKhUKh8ChU8KNQKBQKhcKjUMGPQqFQKBQKj0IFPwqFQqFQKDwKFfwoFAqFQqHwKLzKOgPuiKZpnDlzhipVqmAwGMo6OwqFQqFQKAqAEIK0tDTq1auH0Zh/+44KfvLgzJkzNGzYsKyzoVAoFAqFwgXi4uJo0KBBvu+r4CcPqlSpAujyAgMDyzQvFouF/fv307FjR7y81O1SPmSUDxnlQ0b5kFE+ZCqij9TUVBo2bGj/O54fFaO0xYytqyswMLDMgx+r1UrDhg0JCgrCZDKVaV7cAeVDRvmQUT5klA8Z5UOmIvu43pAVg9rb62pSU1MJCgoiJSWlzIMfhUKhUCgUBaOgf7/VbC83x2KxsG3bNiwWS1lnxS1QPmSUDxnlQ0b5kFE+ZDzZhwp+3Byj0Uj9+vWvOWrdk1A+ZJQPGeVDRvmQUT5kPNmH6vbKg4I2m1mtVsxmcynmTKGoWHh7e1e4sQYKhaLsKOjfbzXg2QWEEJw9e5bk5ORS+a6srCx8fX3VmkMoH7mpCD6qVq1K3bp1iyX/tmb8Xr16VZjZK0VB+ZBRPmQ82YdnlbaYsAU+tWvXJiAgoET/6AghMJvNeHt7l9s/bsWJ8iFTnn0IIbhy5QqJiYkABAcHF/maRqORZs2aeWQzfl4oHzLKh4wn+1DBTyGxWq32wKdGjRql8p3+/v6l8j3lBeVDpjz7sOU9MTGR2rVrF7kLzDaGQaGjfMgoHzKe7MPzwr0iYhvjExAQUCrfJ4QgNTUVNTRLR/mQqQg+bD9LxTF+zmKxsG7dOo+cvZIXyoeM8iHjyT5U8OMipdnFUJ7/sy8JlA+Z8u6jOH+WjEYj7dq188hm/LxQPmSUDxlP9qG6vdwcg8GAt7d3WWfDbVA+ZJQPGaPRSO3atcs6G26D8iGjfMh4sg/PC/fKGZqmkZKSgqZpZZ0Vt0D5kLH5+OOPP/jpp59K/fsXLlzIP//8U+rfmx9ms5l///1XLUGRg/Iho3zIeLIPFfy4OQaDgUqVKpW7mTwlRWn6mD59Op06dSrx7ykKBoOByMhIJk+eTM+ePUv1u//44w8++ugjbrrpplL93mthMpno3r27WjsoB+VDRvmQ8WQfKvhxcwwGA15eXsXyx/7s2bNMnDiRpk2b4uvrS8OGDRk6dChr164thpyWDjYfTZo0Yfbs2cV63aVLl0rHXnrpJbd3k5SUxPjx41m6dCmNGzcute89fvw4r7/+Ov/88w/VqlUrte+9HkajkerVq3vkGIa8UD5klA+ZsvBhtUJmZql9Xb6oGuDmaJpGcnJykbt5Tpw4QdeuXVm3bh0fffQRBw4cYOXKldx22208++yzxZTbksfmoyBYrdYieatcuXKpLWfgKlWrVmXLli2l0kLl3DTetGlTDh06REhISIl/b2Ewm82sWLHCI5vx80L5kFE+ZMrCx0MPQeXK8M47pfaVeSMUV5GSkiIAkZKSctV7GRkZ4tChQyIjI0MIIYSmCZGeXnKPtDRNpKRYRFqadtV7mlbwMt15552ifv36Ij09/ar3kpKS7OmTJ0+KYcOGiUqVKokqVaqI+++/X5w9e9b+/n//+1/RsWNH8f3334uQkBARGBgoRo4cKVJTU+3nWK1W8cEHH4hmzZoJHx8f0bBhQ/Huu+/a3z99+rR44IEHRNWqVUX16tXFsGHDRGxsrP39xx57TAwfPlz83//9n6hbt66oXr26mDBhgsjOzhaapok+ffoIQHoIIcSCBQtEUFCQWL58uWjdurUwmUzi+PHjYteuXWLAgAGiRo0aIjAwUPTp00eEhYXZvy8kJES6VkhIiFRW53K99dZbon79+sLHx0d07NhR/PPPP/b3Y2NjBSB+//13ceuttwp/f3/RoUMHsW3btmveG0B89dVX4q677hL+/v6iVatWYtu2bSImJkb07dtXBAQEiJtuukkcPXpU+tyyZctEly5dhK+vr2jSpImYPn26MJvN0r1q2LCh8PHxEcHBwWLixInSd/7555/S9YKCgsSCBQuksvz888+ib9++wtfXV8yfP18IIcT8+fNFq1athK+vr2jZsqX43//+J13nevc3N7l/poqCpmkiJSVFaIX54ajAKB8yyodMafsICxMC9Ee1aiXzHdf6++2MCn7yoDDBT3q642aW9iOPOCZPLl68KAwGg3j//feveZ6maaJz587illtuEXv27BE7duwQXbp0EX379rWf89///ldUrlxZ3HPPPeLAgQNi06ZNom7dumLatGn2c1555RVRrVo1sXDhQnH06FGxefNmMXfuXCGEEJcvXxYtWrQQY8aMEREREeLQoUPi4YcfFi1bthRZWVlCCD34CQwMFE8//bSIiooSy5cvFwEBAeKbb76xl6dBgwbi7bffFgkJCSIhIUEIoQc/3t7eolevXmLr1q3i8OHDIj09Xaxdu1YsWrRIHDp0SBw6dEiMHTtW1KlTxx6wJSYmCkAsWLBAJCQkiMTERHtZnYOfmTNnisDAQPHTTz+Jw4cPi1deeUV4e3uLI0eOCCEcAUOrVq3E33//LaKjo8V9990nQkJCpKAkN4CoX7+++Pnnn0V0dLQYMWKEaNy4sejXr59YuXKlOHTokLjpppvEHXfcYf/MypUrRWBgoFi4cKE4duyYWLVqlWjcuLGYPn26EEKIX3/9VQQGBorQ0FBx8uRJsXPnTrs/23cWJPhp3Lix+P3338Xx48dFfHy8+Oabb0RwcLD92O+//y6qV68uFi5cWOD7m5viDH4UCoX78t578t8wp/+7iw0V/BSBihb87Ny5UwDijz/+uOZ5q1atEiaTSZw6dcp+7ODBgwIQu3btEkLoAUFAQIDU0vPyyy+LHj16CCGESE1NFb6+vvZgJzfz5s0TLVu2lP7TyMrKEv7+/uLff/8VQujBT0hIiLBYLPZz7r//fjFy5EhhtVpFUlKSCAkJEbNmzZKuvWDBAgGIffv2XbOcFotFVKlSRSxfvtx+LK9gIHfwU69ePfHee+9J53Tv3l1MmDBBCOEIGL799lv7+zZ/UVFR+eYHEK+//rr99fbt2wUg5s2bZz/2008/CT8/P/vr3r17i/fff9/uw2q1ikWLFong4GAhhBCffPKJuOGGG0R2dna+31mQ4Gf27NnSOQ0bNhQ//vijdOydd94RPXv2FEIU7P7mpjiDn+zsbLF06dJ8y+1pKB8yyodMafu47z75b9iOHcX/HQUNftQ6P0UkIADS00vu+kIPUDEYDFcNei7oItMiZ/Xf6w2ajoqKomHDhjRs2NB+rE2bNlStWpWoqCi6d+8OQOPGjalSpYr9nODgYPv+TFFRUWRlZdG/f/88vyMsLIyjR49KnwfIzMzk2LFj9tdt27aVZiAEBwdz4MABDAbDNXfq9fHxoUOHDtKxxMRE3nzzTdatW8e5c+ewWq1cuXKFU6dOXdOHM6mpqZw5c4abb75ZOn7zzTezf/9+6Zjz99v2q0pMTKRVq1b5Xt/5M3Xq1AGgffv20rHMzExSU1MJDAwkLCyM3bt3895779nPsVqtZGZmcuXKFe6//35mz55N06ZNueOOOxg8eDBDhw4t9OaF3bp1s6fPnz9PXFwcY8eO5cknn7Qft1gsBAUFAQW/vyWFl5cXAwcO9LhNGvND+ZBRPmRK20d4uPw6Ohp69CiVr74KVQOKiMEAlSqV3PVtMbLBoD9coUWLFhgMBqKiohgxYsQ1vkvkGSDlPp57UT2DwWAfWHy91YY1TaNr164sXrz4qvdq1apVoO+4Fv7+/leV4fHHH+f8+fPMnj2bkJAQfH196dmzJ9nZ2de9Xm5yXzsvZ855t713vbzn9ZlrXUfTNN566y3uvvvuq4JjPz8/GjZsSHR0NKtXr2bNmjVMmDCB//u//2Pjxo32TVBtQbGNvAY9VnKq3Lbvnjt3Lj1y/cayBaoFvb8lifrDJqN8yCgfMqXlIyUFbP//PPEE7N8PPj6l8tV5omZ7uTmiGPZuql69OoMGDeJ///sfly9fvup92+ypNm3acOrUKeLi4uzvHTp0iJSUFFq3bl2g72rRogX+/v75ThHv0qULMTEx1K5dm+bNm0sPW+vBtbD58PHxwWq1FihPmzdvZtKkSQwePJi2bdvi6+vLhQsXpHO8vb2veb3AwEDq1avHli1bpOPbtm0rsJvipEuXLkRHR9OsWTNq165Ns2bN7B5t01b9/f0ZNmwYn332GRs2bGD79u0cOHAA0AORhIQE+/ViYmK4cuXKNb+zTp061K9fn+PHj19175o0aWLPV1Hub1GxWCyEhoZ65F5FeaF8yCgfMqXpY98+/blRI5j/vwzCZqziwQdL/GvzRQU/bo6tm6eo6/x8+eWXWK1WbrzxRn7//XdiYmKIioris88+sy+ON2DAADp06MCoUaPYu3cvu3bt4tFHH6Vv375S98e18PPzY+rUqbzyyit8//33HDt2jB07djBv3jwARo0aRc2aNRk+fDibN28mNjaWjRs38vzzz3P69OnrXt/mo3HjxmzatIn4+PirApncNG/enEWLFhEVFcXOnTsZNWrUVS1UjRs3Zu3atZw9e5akpKQ8r/Pyyy/z4Ycf8vPPPxMdHc2rr77Kvn37eP755wvkpjh58803+f7773nrrbeIi4vj8OHD/Pzzz7z++uuAvvLyvHnziIyM5Pjx4yxatAh/f3/71PR+/frxxRdfsHfvXvbs2cPTTz9doG0ypk+fzowZM/j00085cuQIBw4cYMGCBcycORMo+v0tKl5eXgwePFj9d5+D8iGjfMiUpg9bl1fnTgLGjIFBg2DWrBL/3vxQwY+H0KRJE/bu3cttt93GlClTaNeuHbfffjtr165lzpw5gGOhv2rVqtGnTx8GDBhA06ZN+fnnnwv1XW+88QZTpkzhzTffpHXr1owcOdI+JiggIIBNmzbRqFEj7rnnHlq3bs2YMWPIyMi45lie3Lz11lucOHGCZs2aXbc7Zf78+SQlJdG5c2dGjx7NpEmTrtrP5pNPPmH16tU0bNiQzp0753mdSZMmMWXKFKZMmUL79u1ZuXIly5Yto0WLFgXOd3ExaNAg/v77b9asWUOPHj3o2bMnM2fOtAc3VatWZe7cudx888106NCBtWvXsnz5cvu6RZ988gkNGzakT58+PPzww7z00kv23dWvxbhx4/j2229ZuHAh7du3p2/fvixcuNDe8lNc97coqP/qZZQPGeVDpiR8nD8P338PziMLbF1eE5LegyVLwMsL8vldWxoYRFH6UyooqampBAUFkZKSctUv7MzMTGJjY2nSpAl+fn4lnhdN0+yDXNWqpMpHbiqCj+L8mTKbzYSGhjJ48GC14SvKR26UD5mS8jFuHMybB48+Ct99px+7+24wLf2N37hfP/DNN+A0caK4uNbfb2dU8JMH7hT8KBQVHfUzpVBULJxHaWRng7c3PNp6N18f7oM/mfD881CM2xM5U9Dgp3z+q+hBCCGwWq1FGvBckVA+ZJQPmeKYIFCRUD5klA+ZkvCRna33aNlISABOneL/jgzDn0xSet8Fn3xSbN/nKir4cXOEEKSlpakf1hyUDxnlQ8ZisbB582Y1riMH5UNG+ZApCR8xMeB8uTPRaWhDhlJHO0sE7bF8/xO4wS7yqtsrD1S3l0JReqifKYWi4rBmDdx+u542YiWuywjq7f2bs9Th9qBdRCQ1cnnNuoKgur0qCEIILBaL+s8+B+VDRvmQ0TSNS5cuFWhBTE9A+ZBRPmRKwse5c470//Ey9fb+jcXbj2Eso273kg18CoMKftwcIQSXL19Wf9xyUD5klA8Zq9XK7t27C7wAZkVH+ZBRPmRKwkfOqiY8xde8iL6Oz/y+37ObG+natdi+psiolZ7cHKPRWCor45YXlA8Z5UPG29ubQYMGlXU23AblQ0b5kCkJH+fOQX/W8D+eBWBJu3f5RejT29u0KdavKhJu2/IzY8YMDAYDkydPBvT1CKZOnUr79u2pVKkS9erV49FHH+XMmTPS57Kyspg4cSI1a9akUqVKDBs2rFRWli0phBCYzWb1n30OyoeM8iGjaRqJiYmqWyMH5UNG+ZApio+MDJgxA9atk48bYo7wK/fjhZXveJTPq0zDtod0zhqsboFbBj+7d+/mm2++kXa6vnLlCnv37uWNN95g7969/PHHHxw5coRhw4ZJn508eTJ//vknS5YsYcuWLaSnpzNkyJBy3cyZkZFR1llwK9zJx/Tp0+nUqVOJf49t9e28cCcfZY2maURGRqo/bjkoHzLKh0xRfHz+OUybBv37Q1RUzsGkJJ4JHUo1kjlauxdP8Q1xpw324KdRo+LLe5ERbkZaWppo0aKFWL16tejbt694/vnn8z13165dAhAnT54UQgiRnJwsvL29xZIlS+znxMfHC6PRKFauXFngPKSkpAhApKSkXPVeRkaGOHTokMjIyCh4odyIrVu3CqPRKAYNGlTWWSkTYmNjBSDCw8ML/VlA/Pnnn9KxtLQ0ceHCheLJXCG/u6iEhISIWbNmFes1XaG8/0wpFJ7IHXcIAfrjzz+FEJmZIrVrXyFAnKCRWDb3rP19EMJgECIrq+Tzda2/3864XcvPs88+y1133cWAAQOue25KSgoGg4GqVasCEBYWhtlsZuDAgfZz6tWrR7t27di2bVu+18nKyiI1NVV6APbWIqvVKqVFTheDEKJQaU3TrpkWQuSZzs7OtkfmtuOufL8Qgnnz5jFx4kS2bNnCyZMnXb5OUcqUVzkKWqa8fBQ27zYKWybn82zHK1WqRLVq1YpUpqKkhRBkZWW5fJ+cr1Oc98mVtMVisf+cWSwW+3fllzabzVLalr9Tp07Zf05tx21p23fa0pqmSWnbeif5pa1Wq5TO73eEczmKWibndGHLZLFYOHXqFJqmVZgyFeU+mc1m4uLi0DStwpSpKPcpOzub06dP2/NS0DJpmmDrVsfvxdNxFhg3jiphG0mlCtO7LGfQo7UwGh3nBAcLfHxKp+4VBLcKfpYsWcLevXuZMWPGdc/NzMzk1Vdf5eGHH7bP5T979iw+Pj72P0Y26tSpw9mzZ/O91owZMwgKCrI/GjZsCEBkZCQAUVFRROW060VHR9vlXrlyhaysLAAuX75Mds4ubunp6fZKnZaWZj8/LS3NfuNSU1PtN8u2wqYQ4qq0razOAVlaWhqg32Rb2mw2k56eDugV+vLly4Ae2F25cgWAixcv8uuvv/LMM89w55138u233wJ6t0lmZiYLFy6kWrVqUpl+++03DAaDVKY333yTOnXqUKVKFR5//HGmTp1Kp06d7GW69dZbefbZZ6VyjBgxgscff9xejiZNmvDmm2/y6KOPUqVKFUJCQvjrr79ISEhgyJAhVK5cmfbt27Np0yapTNu2bePWW2+lUqVKNGzYkGeffda+q3tmZiaNGzfm/fff57HHHiMwMJBGjRrxxRdf2MvUtGlTADp37ozRaOTWW28FYMOGDdx+++3UrFmTatWq0bdvX/bu3WsvU+PGjQG45557MBqNNG7cGCEE06dPp2PHjoD+Q52cnMzbb79Nw4YN8ff3p1OnTqxYscJ+n2JiYjAajfzxxx/2cnTs2JGNGzfa71NmZqa9KyszM5PMzEy7A1v66NGj3H///VSvXp3g4GCGDRvGiRMn7Pfp8ccfZ+jQoXz00UcEBwdTs2ZNJkyYgNlsJjU1lVtvvZWTJ0/y4osvYjQaMRqN9rq3detWbrnlFvz9/WnUqBHPPPMMly9fLlLdy69MGRkZ9nsTFRVFbGwsALt27SIuLg6Abdu2kZCQAMCmTZvs93vdunUkJycDsGrVKtLS0tA0jfDwcK5cuYLFYiE0NBSLxUJmZiahoaH2n8NVq1YBkJyczLqcQQsXLlyw17eEhAT7P0xxcXHs2rULgNjYWMJztqeOiYkhIiLCnnfb74iIiAhiYmIACA8PL3KZAEJDQ8nMzCx0mc6fP8/+/fvRNK3ClKmo9+ngwYNomlahyuTqfdq8eTPR0dFomlaoMsXFZZKW5pizHvz1ZPjhB6wGE/fxG3Vu70By8gWqVXPsbFqtWmqplGnr1q0UCOEmnDp1StSuXVvs27fPfiy/bq/s7GwxfPhw0blzZ6lpa/HixcLHx+eq8wcMGCDGjx+f73dnZmaKlJQU+yMuLk4A4tKlS0IIISwWi7BYLEIIIdLT08XBgwdFRkaG0DRNaFarEOnpQktLE1pa2jXT1tTUa6a1tLSr0rZr5Jm2WoWmaUIIoeflOulvv/1WdOvWTQghxLJly0Tjxo3t72uaJhYsWCCCgoKkz/7xxx8CsJ/zww8/CD8/PzFv3jwRHR0tpk+fLgIDA0XHjh2FNSc/ffv2FZMmTbJ/xmq1iuHDh4vHHntMWK1WIYTe5VK9enXx1VdfiejoaPH000+LKlWqiDvuuEP8/PPPIjo6WowYMUK0bt3afp39+/eLypUri5kzZ4ro6GixdetW0blzZ/H444/b82u77hdffCGOHDkiZsyYIYxGozh06JAQQoidO3cKQKxZs0acOXPG3mW1Zs0a8f3334tDhw6JyMhIMWbMGFGnTh2RnJwsNE0TiYmJAhDz588XZ86cEWfPnhWapok333xTdOzY0f79n3zyiQgMDBQ//vijOHTokHjllVeEt7e3iI6OFkIIcfz4cQGIVq1aieXLl4vDhw+L++67T4SEhIjs7Ox87x8g/vjjD6Fpmrh8+bJo0aKFeOKJJ0RERIQ4ePCgePjhh0XLli1FZmam0DRNPPbYYyIwMFCMHz9eREVFib/++ksEBASIb775RlitVnHhwgXRoEED8dZbb4kzZ86IM2fOCKvVKjk+cuSI2LJli92x7V4WtL4VNH3lyhVx6NAhkZaWZv85M5vN9u/KL52dnS2lbde0pTVNuypt+05b2mq1Smmz2XzNtMVikdK2/OaXNpvNqkyqTOW6TOfOZYvMTLlMv/2m2buzHmOBsL346IZvBAjx3Xd63rt3d5z3wAPWUinTxYsXC9Tt5TbBz59//ikAYTKZ7A9AGAwGYTKZ7AXOzs4WI0aMEB06dLhqrMXatWuloMVGhw4dxJtvvlngvBRqzE96uv3Gl/ojPb1Qjnv16iVmz54thNArS82aNcXq1avt79uCH2ds98VGjx49xLPPPiudc/PNN9sDACHyDlptwY+NkJAQ8cgjj9hfJyQkCEC88cYb9mPbt28XgEhISBBCCDF69Gjx5JNP2v/ACyHE5s2bhdFotN+P3NfVNE3Url1bzJkzRwhR8DE/FotFVKlSRSxfvtx+jDzG3fz3v/+Vyl6vXj3x3nvvSed0795dTJgwQfr+b7/91v7+wYMHBSCioqLyzY/zd8+bN0+0bNnS/os1MzNTZGZmCn9/f/Hvv/8KIYR47LHHREhIiP3nRggh7r//fjFy5Ej767zG/IwePVo89dRT0rHcjoub4hzzY7VaxYkTJ+y/CD0d5UNG+ZC5no8TJ4QICBCiSxfHn5vUVMefoH6sEdl4CQHCMnWaCAzUj4eF6efec4/j3JdfLp0ylbsxP/379+fAgQPs27fP/ujWrRujRo1i3759mEwmzGYzDzzwADExMaxZs4YaNWpI1+jatSve3t6sXr3afiwhIYHIyEh69epV2kVyK6Kjo9m1axcPPvggAF5eXowcOZL58+cX+jo33nijdCz364LiPJuvTp06ALRv3/6qY4k5q2aFhYXx3XffUaNGDapUqULlypUZNGgQmqbZm0JzX9dgMFC3bl37NfIjMTGRp59+mhtuuMHe/Zmens4p2zSFApCamsqZM2e4+eabpeM333yzvQk3rzwGBwdL5bweYWFhHD16lCpVqlClShVq1KhBjRo1yMzM5NixY/bz2rZti8lpD53g4ODrfkdYWBgLFy6kcuXK9kdejt0VTdOIj49Xs3lyUD5klA+Z6/n46y+4cgX27oXFi/Vje/boz204yO/cizcWVlZ7iC2D3iE1FWrVAtsE2AYNHNdyq5leuNEih1WqVKFdu3bSsUqVKlGjRg3atWuHxWLhvvvuY+/evfz9999YrVb7OJ7q1avj4+NDUFAQY8eOZcqUKdSoUYPq1avz0ksv0b59+wINoHaJgADIGe9Q6gQEFPjUefPmYbFYqF+/vv2YEAJvb2+SkpKoVq0aRqPRPsjNhm2cjzOGXOuT5/5MQa/j7e191TXzOmb7wdQ0jfHjxzNp0qSrrtXI6SfL+Rq261zvl93jjz/O+fPnmT17NiEhIfj6+tKzZ0/7OK7CkJef3MeuVc7roWkaXbt2ZbHtt5ETtWrVyvM7bN9zve8oqGN3xcvLy+P/0XFG+ZBRPmSu58OpHQHb/z5hYVCHs4QymKqksJlbeNp3AeN36G0p/fuDMadZJWcuEgA5wy3dBrcJfq7H6dOnWbZsGcBV66qsX7/ePnB11qxZeHl58cADD5CRkUH//v1ZuHCh9B9wsWIwQKVKJXNtsM/m8fX1veoPaEGxWCx8//33fPLJJ9JMOIB7772XxYsX89xzz1GrVi3S0tK4fPkylXLKtG/fPun8li1bsmvXLkaPHm0/tsf2r0AOtWrVsg8+A32QdmRkJLfddptL+bfRpUsXDh48SIMGDVz24ePjY8+TM5s3b+bLL79k8ODBgD4ozza40Ya3t/c114sKDAykXr16bNmyhT59+tiPb9u2zeXWsbzo0qULP//8M7Vr16ZKlSou1w8fH5+rymNz3Lx582LLb2litVrtm6SW2M98OUL5kFE+ZK7nY+9eR9q2Z1fU7nT+ZgghnMLcpAUjYpeSnOjL8eP6+y1aOD6TMxcEgJJqf3AVt+n2yosNGzYwe/ZsAPvsmrwetsAHwM/Pj88//5yLFy9y5coVli9fbp+9VV4p6gKNf//9N0lJSYwdO5Z27dpJj/vuu4958+YB0KNHDwICApg2bRpHjx7lxx9/ZOHChdK1Jk6cyLx58/juu++IiYnh3XffJSIiQvrD269fP1asWMGKFSs4fPgwEyZMsM8iKApTp05l+/btTJo0iX379hETE8OyZcuYOHFiga9Ru3Zt/P39WblyJefOnSMlJQWA5s2bs2jRIqKioti5cyejRo3C399f+mzjxo1Zu3YtZ8+eJSkpKc/rv/zyy3z44Yf8/PPPREdH8+qrr7Jv3z6ef/551wuei1GjRlGzZk2GDx/O5s2bOXbsGBs3buT5558v1GrmjRs3ZtOmTcTHx9sDPZvjZ5991mXHZYkQgqSkpKtaHj0V5UNG+ZC5lo/kZHDeQOHcOcBi4YnVD9GNMLKq1MT4TyjJxhpomqM7LGdiLADDh+uLIR45Ajn/d7oNbh38KPSuikqVKrnc6gN6l9eAAQPy3APq3nvvZd++fezdu5fq1avzww8/EBoaSvv27fnpp5+YPn26dP6oUaN47bXXeOmll+jSpQuxsbE8/vjj+Pn52c8ZM2YMjz32GI8++ih9+/alSZMmRW71AX2czMaNGzlx4gR9+vShc+fOvPHGG/YxMwXBy8uLzz77jK+//pp69eoxfPhwAObPn09SUhKdO3dm9OjRTJo0idq1a0uf/eSTT1i9ejUNGzakc+fOeV5/0qRJTJkyhSlTptC+fXtWrlzJsmXLaOH871ARCQgIYNOmTTRq1Ih7772Xrl27MnbsWDIyMuzLPhSEt99+mxMnTtCsWTN7d5nNcUxMDL1793bJcVni5eVF9+7d8fIqN43aJYryIaN8yNh8vPKKF08+Cc694ocOyecmnhPw/PPckvQ3GfhxdNZyTC2bY/s1aeskcN7CwmSC556TW4PcBYNQIfBVpKamEhQUREpKylV/TDIzM+3NhM5/8EsKIQSZmZn4+fkVKQAqSW6//Xbq1q3LokWLSvy7yoOP0qQi+CjOnymr1UpMTAwtWrRQ3RooH7lRPmSsVivbtx+nd289Otm3z9FVNXs2vPACVK8Oly7BO0Ef83rKy2gYuI/fmHP2HurUgS5dIGepHgBiYqAse82v9ffbGRX+lgPcKT69cuUKX331FYMGDcJkMvHTTz+xZs0aaYZdSeNOPtwB5UNG7XUmo3zIKB8yBw44/mnaudMR/KxcqT+PGgVnP/+F11NeBuBFZhLqew+2uRX168vBT3kZZaK6vdwcg8FAQECA2/xXbzAYCA0NpXfv3nTt2pXly5fz+++/l9xsujy+3518lDXKh4zJZKJz587qv/oclA8Z5UPGZDJx5YqjmWbnTv1ZCMhZhJkn22zlex4F4NiQSXzKZBo1cszoatbMcb3gYPD1LY2cFx3V8uPmuFu3hr+/P2vWrCmz73c3H2WN8iFjtVqJioqidevW6g8cykdulA8ZvdsrBagOYN99/cIFSEqCFsTQ7j/DMJDFn4xgb/uZ8Lc8rueGGxxp5+Pujmr5USgUCoXCQ0lIcKwHZpvddeQIVOci/3oNxnDpEvt9uzOKxewK0wNG5yW/nAczO8/0cndUy4+LlNY4C4PBcNWUa09G+ZCpCD6K82fJZDJdtViqJ6N8yCgfMiaTiaSkKvbXtuDn6IEM/mI4TSxHISSE/9RaTsaeAHtXmHMLj9Ni9TRpUgqZLiZUy08hsa2aa9utuqQRQnDlyhU1qDUH5UOmIviw/SzlXpHaFaxWK+Hh4UVeG6uioHzIeLKPZcvg+efBedF6i8XKiRMOF8nJcCXVQvdPHuQWtnLFJwhCQ/FuUMf+PsjBT506sGYNPPkkPPVUyZejuFAtP4XEZDJRtWpV+x5JJT3YVAhBdnY2BoNBjelA+chNefZhC9wSExOpWrVqsY3BKO8tYcWN8iHjqT5yljSjYUN46SU9nZQEGRn6z53BoP9MWp58hjZHl5GJL/88vYx727QhZ5tFO7m7t/r31x/lCRX8uEDdunWBgm9EqVAo8qdq1ar2n6miYjKZaNWqVbFcqyKgfMh4qg+LxZG2zegC+PtvPfBp0kRfkHD00f8S+Mu3WDHyIEuYcJe+TU/uH8+WLUs6xyWPCn5cwGAwEBwcTO3atfPcsLM4sVgs9tkJalVS5SM35d2Ht7d3sc66sVgshIeH07lz53Lpo7hRPmQ81UdcnCN98qQjvXChAAw8+aQVv/lf8wLvADDRNIe/rCOYnTOTy3ksT5UqXNUSVB7xnLtfAphMphKfLmm1WqlWrRr+/v5qaibKR26UDxmDwUC1atXKXRdgSaF8yHiqj2PHHGlb8JOeDtu36+nHKv1O3aPPAbC0y1vM2fsUlSs7ZnU5r+XTsqXeRVbeUcGPm2MymcrtDtslgfIho3zIKB8yyoeMp/qw7bgOcP48mM36IoZms4EH66yn3sujAcEcnubt+DcAfaVn20KGTZs6Pt+pU6llu0RRs73cHIvFwrZt27A4d9p6MMqHjPIho3zIKB8ynurDueVHCH2H9hMnoCP7mHthOGRnE9P+Hp7jC86e05t1nIMc532NBw0qlSyXOKrlx80xGo3Ur18fo1HFqaB85Eb5kFE+ZJQPGU/14dzyA5CQAKn7Y/mHO6lsTUP07Uv4mMVojzm6zp1XbjYY4Lvv9MUP77mnlDJdwqjgx80xGo2ElKc1w0sY5UNG+ZBRPmSUDxlP9eHc8gNwMSqRhxYMpA5nOVe3A3WWLqXBIT/pnNwblD76aAlnspTxrPC3HGKxWNi0aZPHNdPmh/Iho3zIKB8yyoeMJ/pISdFbbEAfuFyJdLq8eRd10o5yghAWPvA5lsqVpW0qABo0KP28liYq+HFzjEYjzZo187hm2vxQPmSUDxnlQ0b5kKnoPjIz9XV8nBd8nzsXLl/WZ2nd3jeb37mX2if3cMlUk4Gsonmf1hiNRmrWhMqVHZ9TwY+iTPHUPur8UD5klA8Z5UNG+ZCp6D7efhtuugk+/NBxbOVK/XnC0xoTdj/BIFaR5RXAMOMKYriBrl1rYTQaMRigWjXH5yrCWj7XomLWgAqExWJh3bp1HtVMey2UDxnlQ0b5kFE+ZCq6jxkz9OfXXgOrVd/Ha8sWAMGofS/R/sCPmPHi5Sa/s9V8IwaD4MiR9XYfU6eClxeMGOGY5l5RMYjyvCNiCZGamkpQUBApKSkEBgaWaV40TePChQvUrFmzwv63UhiUDxnlQ0b5kFE+ZCqyD7MZ/P31oAfg9Gm9G6x5c3jN6/943/IKAI+wiMU8AkD9+oK9e89LPiwWPQAqrxT073fFuvsVEKPRSO3atSvcD6qrKB8yyoeM8iGjfMhUFB/nzsn7dQEcPuwIfADOnIFTp2A039sDn9OTP7YHPgCNGhmu8lGeA5/CUL5rgAdgNpv5999/S3wPsfKC8iGjfMgoHzLKh0xF8LFunb7R6BtvyMf37pVfnzkD1r//YT5j9ANTpuA1dYp0ToMGWrn34Soq+HFzTCYT3bt3V/s25aB8yCgfMsqHjPIhUxF8vPSS/vzBB/Lx8HD5tWXrTvp8fh9eWNne7BH46CPq1AE/p+V8QkIM5d6Hq6jgx80xGo1Ur1693DfTFhfKh4zyIaN8yCgfMhXNh/Nu7baWn8qV4QaiueOLu/AxX2Elg1j90HzImdHVuLHjM40bGyqUj8LgeSUuZ5jNZlasWOGRzZJ5oXzIKB8yyoeM8iFT3n0IIa/WfOCA/qxpjpafR26LZxUDqZRxkajK3bmP32jWytv+Gefgp149S7n2URQ8ZGhT+cXLy4vevXvj5Smj0K6D8iGjfMgoHzLKh0x595GWBqmpjtcJCfrz0aOQng51fZN4d++d1OAUpwNaMMy0gstUpm1bx2ecg58mTUw0bVp+fRQF1fLj5hgMBgIDAzEYDGWdFbdA+ZBRPmSUDxnlQ6a8+4iPl1/bgp9vvwU/MvjXdxg14g9whmBG+K/iaEotjEZo1crxmZEjITAQQkKgZcvy7aMoqODHzTGbzfz1118e2SyZF8qHjPIho3zIKB8y5cXH5cvw5Zewfbt8/MyZvF//8YuFnxlJh9QtWKsEcQcrCbvYGNCDHOdBzrfeCufP691nXl7lw0dJoBY5zAN3WuRQCEFmZiZ+fn4eGZ3nRvmQUT5klA8Z5UOmvPgYMwYWLIAaNeDsWcfaO99/D4895jhvxAj4+SeNX/0fZRSLEX5+pPyyimrDetvP6dkTtm3L+3vKi4/CoBY5rEB4Yn/stVA+ZJQPGeVDRvmQKQ8+du/Wny9ehB07HMdt3V5BQfpzwhlBxuPPMIrFmPGCn38haEhvvB3jm6lb99rfVR58lAQq+HFzLBYLoaGhFXYvmsKifMgoHzLKh4zyIVNefKSkONJbtzrSthacW24BEIw59BJBP3+DhoHX6i/CMGwoBgPUr+/4zLU2KC0vPkoC1e2VB+7W7WWxWPDy8qowzZJFQfmQUT5klA8Z5UOmvPioVAmuXNHTL74In3yid381aKBvYbFqFWwdOJ3pvAXAGOZxfsgYli/XP9OvH6xfr6enT4f//jfv7ykvPgqD6vaqQHhiVH4tlA8Z5UNG+ZBRPmTc3UdmpiPwAbhwQX9evFgPfHr0gNvCPrYHPj/d9CkLGEOTJo7PNG3qSF+v28vdfZQUKvhxcywWC6tWrfLYCpob5UNG+ZBRPmSUD5ny4OPSJfn1+fP68+bN+vO7Db7C67WXAfgP7/J28iRADnjq1XOkGzTI/7vKg4+SQnV75YE7dXspFAqFwnOIjIT27R2vu3eHXbugY0doH/EDiwyPYhCCb2u9ypPn3wf07qqlS2H4cP0zzrPCMjPB17dUi1CmqG6vCoIQgtTUVFSMqqN8yCgfMsqHjPIhUx58XLwovz5/Xt/Wot2RP1jI4xiEgOee47fOjsAH5Jafhx6C11/XZ4pdK/ApDz5KChX8uDkWi4XNmzd7ZLNkXigfMsqHjPIho3zIlAcfiYn6c+3a+vOFC5D6y0oWZD6IF1YsjzwOn35KcD15gLLzmB9vb3jnHX180LUoDz5KCtXtlQeq20uhUCgUZcELL8Ds2fo2FD//DL3ZxHqfQZiyM1nmdz/D0n8Ck4lp02DGDP0ztWo5giZPR3V7VRA0TePSpUtomlbWWXELlA8Z5UNG+ZBRPmTcyYemwZAhMGCAPovLxrp1+vM990BP0y7+Zgim7Ez+5i6+vuUHMJkAeVCzc6tP4fLgPj5KGxX8uDlWq5Xdu3djdf7p8GCUDxnlQ0b5kFE+ZNzJx8aNsGIFrF0LR47oxzQNoqP1dK/KEazQ7iCQNHZXvo37+ZXOPXzsnw8OdlzLebxPYXAnH6WNZ65rXY7w9vZm0KBBZZ0Nt0H5kFE+ZJQPGeVDxp182BYkBD3gad0azp2DrCxoaThC/SduxyCS2M5N3J6+jEz86dzZ8Rnn4KdFC9fy4E4+ShvV8uPmaJpGYmKiRzZL5oXyIaN8yCgfMsqHjDv5OHXKkba19sTGQggnWGfsjyExkZjKnRhMKJepDMhr9jh3dY0Z41oe3MlHaaOCHzdH0zQiIyM9snLmhfIho3zIKB8yyoeMO/k4c8aRtgU/Z8MTWMMA6llPQ6tWfNhvFclUs5/nvFpzcDD8+ae+jUXjxq7lwZ18lDaFmu21bNmyQn/B7bffjr+/f6E/V5ao2V4KhUKhKEkaN4aTJ/V0z56wbdkFzrXuS50LhzhfpQm1ojbz3Iz6/O9/js9kZICfX5lkt9xQ0L/fhRrzM2LEiEJlwmAwEBMTQ1NXR2Mp0DSNhIQEgoODMRpVQ53yIaN8yCgfMsqHTFn4+OADffXlv/5y7LAuhNzyEx+Vghg0iDoXDnGa+ux8cy331q9PrVqOc4KCij/w8eT6UejSnj17Fk3TCvQICAgoiTx7FJqmcezYMY9slswL5UNG+ZBRPmSUD5nS9nH5Mrz2GuzcCR9/7Dh+8SKYzXo6gMssTr4Lw969JFKLAayh+wP6gJ7mzR2fsQVOxYkn149Ctfw89thjherCeuSRR1S3URHx8vKiT58+ZZ0Nt0H5kFE+ZJQPGeVDprR9rF7tSG/Y4Ejbursa1c7kh5QR3JK1leyAqgy8soqTfq1o2FB/v3Vrx2dKIvjx5PpRqJafBQsWUKVKlQKfP2fOHGrWrFnoTAHMmDEDg8HA5MmT7ceEEEyfPp169erh7+/PrbfeysGDB6XPZWVlMXHiRGrWrEmlSpUYNmwYp0+fdikP7oCmaZw8edIjI/O8UD5klA8Z5UNG+ZApbR/HjjnSx4870jEx4IWZxZYH6J21hnQqMfeef9hPJ+rXB0POzhUtWzo+07Zt8efPk+tHkTr5MjMz2bVrF3///TfLli2THkVh9+7dfPPNN3To0EE6/tFHHzFz5ky++OILdu/eTd26dbn99ttJS0uznzN58mT+/PNPlixZwpYtW0hPT2fIkCHldhEnTdOIj4/3yMqZF8qHjPIho3zIKB8ype0jPt6RvnRJX8MHICbKwmJGccul5WQZ/RjKclZcvAmQp7NXqgS9ekFgILzySvHnz6Prh3CRf/75R9SqVUsYDIarHkaj0dXLirS0NNGiRQuxevVq0bdvX/H8888LIYTQNE3UrVtXfPDBB/ZzMzMzRVBQkPjqq6+EEEIkJycLb29vsWTJEvs58fHxwmg0ipUrVxY4DykpKQIQKSkpLpdDoVAoFJ6BxSLEoUNCaJp8fORIIfThzfrj1Cn95A2NRgsBwmLyFjP6/iNAiHr19HMefli+RlqaEOfOlVpRyj0F/fvtcsvPc889x/33309CQsJVA52L0sry7LPPctdddzFgwADpeGxsLGfPnmXgwIH2Y76+vvTt25dt27YBEBYWhtlsls6pV68e7dq1s5+TF1lZWaSmpkoPwF4Oq9WaZ9pisUhpW/ScX9psNktpkbPKgC0thLgqbbVaiYmJITMzE9AjdXPOSDlN0+y78eaXtlqtUtodygRI6cKUyWq1cuTIEbKzsytMmYpyn2w+bN9VEcpUlPtktVqJjo7GYrFUmDIV5T6ZzWaio6OxWq0VpkxFuU/Z2dkcOXLEfqy4yvT224I2beCLL6xSOeLj5ZVkzp6xcvnhMfQ9tQgLJo6++yPx7e8AHLO/6tUTUpn8/CzUrl0y9ykrK4uYmBisVqtb3aei1r2C4HLwk5iYyIsvvkidYhyFtWTJEvbu3csM21a1Tpw9exbgqu+rU6eO/b2zZ8/i4+NDtWrV8j0nL2bMmEFQUJD90TBntFlkZCQAUVFRREVFARAREUFMTAwA4eHhxMbGArBr1y7i4uIA2LZtGwkJCQBs2rSJCxcuALBu3TqSk5MBWLVqlb27LjQ0lMzMTCwWC6GhoVgsFjIzMwkNDUUIwfnz51m7di0AycnJrMvZ+e7ChQts2rQJgISEBHuAFxcXx65duwA9aAwPDwcgJiaGiIiIMi8TQFpaGqtWrSp0mYQQxMfHV6gyFeU+CSE4fvx4hSpTUe6TEILDhw+TkZFRYcpU1Pt09OhRhBAVqkyu3qfDhw9z6tQphBDFWqa339YH6UyaZJLK5Dyd3YBGjdfGUOmX77Fg4pUGP3CicxVq1ECiSpWUUrtPW7Zs4ezZswgh3Oo+FaVMW7dupUAUtknJxhNPPCG+/fZbVz9+FadOnRK1a9cW+/btsx9z7vbaunWrAMSZM2ekz40bN04MGjRICCHE4sWLhY+Pz1XXHjBggBg/fny+352ZmSlSUlLsj7i4OAGIS5cuCSGEsFgswmKxXJU2m81S2mq1XjOdnZ0tpbWcNlJbWtO0q9JCCClttVqltNlsvmbaYrFI6bzKocqkyqTKpMqkyuR6mZy7tmzlyMzMFj4+mgAh2rWxiG8YJwQIq8EoHmCJGDtWL99nn8ldY7/84h5lKq/36eLFiwXq9nJ5Y9MvvviC+++/n82bN9O+fXu8vb2l9ydNmlSo64WFhZGYmEjXrl3tx6xWK5s2beKLL74gOmf977NnzxLstKNbYmKivTWobt26ZGdnk5SUJLX+JCYm0qtXr3y/29fXF19f36uOm0wm6Tl32svLq1BpZ0cFTVtzur1a5OxcZzQa7YtRFSSdX97LskygL4BpSxemTLl9VIQyFbQceZXJarVy9OhRu4+KUKaCpvPKr9Vq5dixY7Ro0QKTyVQhylSQdH5lEkLY64fJZKoQZSrKfQLsvz9KokwAVqsBLy+4cMGb7GzwMmp8ZnmW2/gWzWBkZqdF/BI+ki8665/N3fLTsKERL6/SuU8Gg4EjR47QokULt7pPxVX3roXLwc+PP/7Iv//+i7+/Pxs2bMBgm5uHLqOwwU///v05cOCAdOyJJ56gVatWTJ06laZNm1K3bl1Wr15N55ytbbOzs9m4cSMffvghAF27dsXb25vVq1fzwAMPAHpzW2RkJB999JGrRS1zMjIyyjoLboXyIaN8yCgfMsqHTHH7uHJFfh0Xp286euIEgGBBpee47cjXaBhY1P87vop9GIB27fTzc48ccZ7tVRp4bP24ZrvQNahTp45477337E1NJYFzt5cQQnzwwQciKChI/PHHH+LAgQPioYceEsHBwSI1NdV+ztNPPy0aNGgg1qxZI/bu3Sv69esnOnbsaG8qKwhqtpdCoVAoCsLBg3K31bp1+vH/faGJz3hOCBCawSBG8524+24hvL31806e1M87dkz+fE4vkMJFSny2V3Z2NiNHjizV/UBeeeUVJk+ezIQJE+jWrRvx8fGsWrVKWnhx1qxZjBgxggceeICbb76ZgIAAli9fflXTZ3nBarUSGRlZbtcpKm6UDxnlQ0b5kFE+ZErCR64OC06cAEu2RqWpzzGRL9AwsOeZ+SziUcLD9W0tTCaoV08/37aaM4C3NxSw16ZY8OT64bLmxx57jJ9//plp06YVZ34kNjivB47enTZ9+nSmT5+e72f8/Pz4/PPP+fzzz0ssXwqFQqFQAORMULJzMlbj8uMTeOyy3tWV/uk8sro8Dl/ausL0ri1bkOM8ZMgWEClKHpeDH6vVykcffcS///5Lhw4drhr0NXPmzCJnTqEP9mpn6xxWKB+5UD5klA8Z5UOmqD6EcGw9YSNn1jb16kHCGY3blownKOZbNAxMC17IB5Mepe5R+TMhIfLrypUhPR1yhqqWGp5cP1zuszpw4ACdO3fGaDQSGRlJeHi4/bFv375izKJnY7VaCQ8P98hmybxQPmSUDxnlQ0b5kCmKjx07ICgInOfOnDwJOUuwMfZxK98yjr4x+qyu0SziYNdHAXCaoAxcHfxs2wbvvgvvvVfobBUJT64fLrf8rF+/vjjzobgG/v7+ZZ0Ft0L5kFE+ZJQPGeVDxlUfd94JaWkwdapjn60dO/TWoJu6W3l61xjqoS9guGTwD/y44kGeb6afV6kSVK0KOWsIXhX8tG+vP8oCT60fxTK0SuQsg23I3R6oKDImk4lWrVqVdTbcBuVDRvmQUT5klA8ZV30I4QhcADIywN8fDh8GExZmXnqcersXY8HEU5V/Isn7fgCaNXN8pn79/IOfssKT60eRpmrNmzePdu3a4efnh5+fH+3atePbb78trrwp0Pcp2b17d4H3K6noKB8yyoeM8iGjfMi46sM58AHHDK+YKAuLGE3PY4sRXl6M5GcWpN9Pzs4MUvDjvH5P48aFznqJ4Mn1w+WWnzfeeINZs2YxceJEevbsCcD27dt54YUXOHHiBO+++26xZdKTMRgMVKtWTbWq5aB8yCgfMsqHjPIh46qP3FtDRkfDjZ3NPPrvIwzkFzQvbwy//MLykSPArL8PcvDj5+dIN23qWv6LG0+uHwZh67MqJDVr1uTzzz/noYceko7/9NNPTJw40b4BXHkkNTWVoKAgUlJSCAwMLOvsKBQKhaIMWb8e+vVzvH7rdTNvRD2E4fffycabxC9/p8EzQ2nUSF/hGfRZYRkZYNs56bPP4Pnn4eabYcuW0i+Dp1DQv98ud3tZrVa6det21fGuXbt6ZBNaSWGxWNi2bZtymoPyIaN8yCgfMsqHjKs+nFt+vMlm8MIHMPz+O1n4cK/hT2qPHQrIs7oaNnQEPgDjx8OaNZCz6blb4Mn1w+Xg55FHHmHOnDlXHf/mm28YNWpUkTKlcGA0Gqlfv36prqTtzigfMsqHjPIho3zIFMRHbCxcuiQfswU/AaYsfuV+up1eiubjywiWcrDxXfj46O87Bz/OXV6gB0L9+2M/1x3w5PpRpNle8+bNY9WqVdx0000A7Nixg7i4OB599FFefPFF+3lqwUPXMRqNhLjL1AA3QPmQUT5klA8Z5UPmej5iY6F1a2jTBsLCHAsaxsWBL5msDrqPXpdWkIkfGyYsZeXsQQxs4fj8tYIfd8ST64fL4V5kZCRdunShVq1aHDt2jGPHjlGrVi26dOkiLXqoFjwsGhaLhU2bNnlks2ReKB8yyoeM8iGjfMhcz8c//0BWFoSHw/79juOH92XyJ3fT69IKruDPcONy1nkPAqBFOQ5+PLl+qEUO3Ryj0UizZs08slkyL5QPGeVDRvmQUT5krufDeZPS0FDo1AnIyODlLSO4jVVYff0ZmvU367R+ZOzQz3MOfmrWdKTLw/I5nlw/iqXEQghcnDSmuA6e3CebF8qHjPIho3zIKB8yRqORevXqM2iQkW7dIDtbfn/3bkc6MhK4coXEnsO4zbyKdCph/usfDtTSp31t3qyf5xz8dO2qPwcHw113lVw5igtPrh9qkUM3x2KxsG7dOo9slswL5UNG+ZBRPmSUDxmLxcLixdtZs0Yf07Nnj+O9zEx5h/bjBy7DkCHU3r+GNCoz795/8BvU96p9upo3d6R79IDt2yEqSt6t3V3x5PqhFjl0c4xGI+3atfPIyDwvlA8Z5UNG+ZBRPmSMRiOpqW3sr/ftg1699PT+/WA26+lKpPPhwSEgNpJurMId2j9MH38zoLfqOAdJzis3A+TM/ykXeHL9cDn4mTNnDnPnzpUWORw2bBgdOnRg4sSJKvgpJoxGI7Vr1y7rbLgNyoeM8iGjfMgoHzJGo5GYmCD76717He+tXq0/33N7Gs+vvos+YjNalUDuvLKSbfSkZUv9fefJUVWrQkBAyee7pPDk+qEWOXRzzGYz//77L2bbvyQejvIho3zIKB8yyoeM2Wxm69bz9texsY73/vgDAknhy+N30IfNJBPEljdXs8XaE39/RwuP8yyuevVKKeMlhCfXD7XIoZtjMpno3r07JpOprLPiFigfMsqHjPIho3zImEwmLl2qbn995oz+fOIExIYnsYqB1Dm2jRRjVQawhpWXbgT0cT22nqGKFPx4cv1Qixy6OUajkerVq1//RA9B+ZBRPmSUDxnlQ0bTjJw65XhtC342/JLIWu6gC+FQowaTG6wmbH9nqucMiHbu6nIe4Jx78HN5w5Prh1rk0M0xm82sWLHCI5sl80L5kFE+ZJQPGeVDJibGjLOK1FS4fDiOwR/0pgvhpPvXgnXrSG7SGXDMBnMOflq3hvr19XR5WMvnWnhy/VCLHLo5Xl5e9O7dGy+vIjXSVRiUDxnlQ0b5kFE+ZA4e1D106yY4fNhAcPoRfPrfTqWkU5yiIZteWsMjHW6wL1aYlKQ/Owc/Pj76GkAbNsCgQaWb/+LGk+tHoVp+IiIi0DStwOcfPHhQDX4uIgaDgcDAQAy2TWY8HOVDRvmQUT5kPNnHZ5/BLbfAuXOOY/v36x46dTLQr/o+NtMb7zOnOOFzA7ewhRo9bwCgVi35Wrm3v6paFUaMAH//kst/aeDJ9aNQwU/nzp25ePFigc/v2bMnp5w7WBWFxmw289dff3lks2ReKB8yyoeM8iHjqT7MZnj+edi6Fd5+23H8wAH9n/cB/ptYfOZW6pDIpZBO3Oa1mTga0aSJfp7t2YbzOJ+KhKfWDyhkt5cQgjfeeIOAAi5skJ177XBFofHy8mLgwIEe2SyZF8qHjPIho3zIeKqPLVsc6Y0bHemTJw3cziru/eZuvCxX2MLN/HPX35z4sipGIzRurJ/XurV8PectLCoSnlo/oJDBT58+fYiOji7w+T179sS/vLcLugGeWDGvhfIho3zIKB8ynuhj505H+uhR0DR9qnr7I7/xLaPwyjJzuMkdDIz9neab9X/mmzUDPz/9M87BT6VKUKVKKWa+lPHE+gGFDH42bNhQQtlQ5IfFYiE0NJTBgwfjXR42iylhlA8Z5UNG+ZDxVB/Ok4yzsiAxEQJ/m8+CK09iQiN7xL2svuVHMl7yse/k3sax6wU1aoDJBFYrdOlSqlkvVTy1fkAx7equKDm8vLwYPHiwx0bnuVE+ZJQPGeVDpqL7WLlS75LatEk+nnuFlawPZhEwcSwmNBb7jcH71yXUbeQjneMc/IA+zf2VV+DTT4s/3+5CRa8f18LzSlwOsVgsHlk580P5kFE+ZJQPmYrs4/nn9W6tvn1BCP2YxQLHjunpRg0FY+KmE/KpPur5/3iJv7rM4GGT6aoNSZ1Xbgbo1El/VHQqcv24Fqrlx82xWCysWrVKLRmQg/Iho3zIKB8yFd2H89/sxET9OT5eD4B8vDS+8nue/6IHPv/c8h6v8BFBVU9hsVho1Ei+Vu4ZXp5ARa8f18IghC1eVthITU0lKCiIlJQUAgMDyzo7CoVCociDli3hyBE9HR6ut9Rs3Aj9b7XwS+Wx3JP+PQB/9PuCr0zPsno1fPMNPPmkPp7Hx0cfDA1w/LhnBkAVjYL+/VYtP26OEILU1FRUjKqjfMgoHzLKh0xF9iEEnD7teJ2QoD+fOpLJr9zPPenfoxlNPMIifqvzLDEx+vuNGl1GCIHJ5Ah8ABo2LL28uwsVuX5cj2IJfjIyMoiPj7/q+MGDB4vj8h6NxWJh8+bNHtksmRfKh4zyIaN8yFRkH8nJcOWK43VCApCeTsf/DOFulmI2+bL5+d9ZzCOcPu0IlM6e3WH34eurHzOZ5C40T6Ei14/rUeRur99++40XXniB6tWrI4Rg7ty59OjRA4AuXbqwd+/eYsloaaK6vRQKhcI9iImBN9+EsWNhwADH8R07oGdPx+uPp13ihTV3Ydy1g3Qqce6bZZxq3o9+/fS1ei5f1gOczEw92AFYuBBmzoTFi6F9+1ItlqKEKLVur3fffZe9e/eyf/9+5s+fz5gxY/jxxx8BPLIprbjRNI1Lly4Vak+1iozyIaN8yCgfMhXBR9++sGQJPPecY0YXwPbtjnQdzvLg17di3LWDi1RneOV1NB3Xj+Bg/f3Ll/Xnhg0FKSkOH48/DhERnhv4VIT64SpFDn7MZjO1cnaB69atG5s2beLrr7/m7bff9sjN0oobq9XK7t27sVqtZZ0Vt0D5kFE+ZJQPmfLuIyvLMZYnOhr279fTp0/Diy/q6c7VTrCFW6h/8QAZ1YLpy0bS29yIwQD168vXa9RIlGsfxU15rx9FocjBT+3atYmIiLC/rlGjBqtXryYqKko6rnANb29vBg0a5HGrb+aH8iGjfMgoHzLl3ceZM/Jr22rMS5fqz62IYr3lFppzjHjfJiwcs5mDtOMGfXN2qlSRd2hv3NhYrn0UN+W9fhSFIgc/ixYtonbt2tIxHx8ffvrpJzY67yincAlN00hMTPTIZsm8UD5klA8Z5UOmPPk4dMjRymMjd/Bz/Lj+vGED3MhOwgJ6E5QWz0HacF+dLey6qK9UaAt+QF68sFEjUW58lAblqX4UNy4HP0eOHOHXX38lLCyMrKysPM+5+eabXc6YQkfTNCIjIz2ycuaF8iGjfMgoHzLlxcfBg9C2Ldxxh3w89yTi2Fj9OXDT36znNgKuXCSzQ3f6sIn95+th23e7ZUvHZ5yDn4YNy4eP0qK81I+SoNCT+ywWC0888QQ//vijfUCzwWCgT58+fPrpp3To0KHYM+nJeHl50a9fv7LOhtugfMgoHzLKh0x58TF3rv4cEaG3/tgGKudu+Tl2DMxzvuWb80/jhZWsfnei/fQLl+pUhgx9Py6QW35atXKkmzY1lQsfpUV5qR8lQaFbft577z1CQ0OZO3cux44dIzIykoULF5KRkcFNN93E33//XRL59Fg0TSM+Pt4jI/O8UD5klA8Z5UOmvPgIC3Okd+xwpA8f1p/1Ke2Cew6+jfeEJ/HCyiKvx/H55y8CalfGNqPZbNafmzd3XGPsWEf6hhvKh4/SorzUj5Kg0MHPokWLmDVrFmPGjKFJkya0adOG0aNHs2PHDt555x0eeOABYmxLaSqKjKZpHDt2zCMrZ14oHzLKh4zyIVNefDiv1Gyb0SUE/Puvnr5vhIWveJoXkv4LwLv8h49bz8fgow/Udd6nq359qFzZ8To4WO9W27gRgoPLh4/SorzUj5Kg0Isc+vr6cvjwYZrkswnKuHHjyM7O5vvvvy+WDJYFapFDhUKhKB00Dfz8HK02Y8bAvHl6l1f9+lDZeIVz/R4iYM0yNAysv/d/DPj9Ge6+G/74Q//Mo4/CokV6+rbbYN26simLouwpsUUOq1evTlJSUr7vP/nkk6xTNa/Y0DSNkydPemRknhfKh4zyIaN8yJQHH+fPOwIfcLQCRUZCdS6yyXcAAWuWkYEf9/I7832fAeSBzF26ONLOg51zUx58lCae7KPQwc+tt97KDz/8kO/7derU4cKFC0XKlMKBJ/fJ5oXyIaN8yCgfMuXBR+4ZXbbg59SmE2zlZjpnbIdq1bi78hqWcje7dunvOwc/ffs60tfaoLQ8+ChNPNlHobu99u3bR48ePZg3bx6PPPLIVe//9ttvvPTSS5w4caK48ljqqG4vhUKhKH4OHoTUVHlPrl9/hQce0BckTEvTn1M37SO5151UzThLSmBDgravpPmwNhw75vjcqlVw++2O15Mn67PGdu+GNm1KrUgKN6PEur06derEV199xeOPP87w4cNZtWoV586dIyUlhWXLlvHCCy8wcuTIImVe4cBqtXL06FGPXH48L5QPGeVDRvmQcScfu3bp3VO9esH8+Y7j//yjPz/wgP7cPW0tok8fqmacJYL27P5sO7RpQ40a8vWcZ3QBzJ4NKSnXDnzcyYc74Mk+XFrk8IknnmDNmjWcPHmSO+64g3r16lG9enVGjBhB+/bteeutt4o7nx6LEIKkpCS1SWwOyoeM8iGjfMi4k4/FiyE7W0/bRk5YrWBbHWXUKBgb8BP/cCeGtDTWcyu92Uz7O/QNumrWdFzLyyvv7i2v66xc504+3AFP9lHobq/c7Nu3j/DwcMxmM507d6Z79+7FlbcyQ3V7KRQKRfFy//3w2296OiQETpyALVugd2+oVg3Ov/YJpldeAiCy7QN0Pfg9tRv4Ehenf+b55+Gzz/R08+agVlRR5EWJdXvFxMTw2muvkZycDOjdYE888QRPPfVUhQh83A2r1crhw4c9slkyL5QPGeVDRvmQcScfzqs1x8XprUDbt4MBje9rvmgPfGYxmcm1fyIbX2lQc9eujrTz8cLgTj7cAU/2Uejg54MPPiA6OpqqVate9V5mZiaHDh1yOTNz5syhQ4cOBAYGEhgYSM+ePfnH1iEMpKen89xzz9GgQQP8/f1p3bo1c+bMka6RlZXFxIkTqVmzJpUqVWLYsGGcdl5BqxySkZFR1llwK5QPGeVDRvmQKW0fu3bBnDl6l5YzzsGPpsHJkxB3NIsfeZghMbMA+LXHx7zILDZv1f80NW7s+Ixz8JN7vE9hUPVDxmN9iELSrFkzsX79+nzf7927t3jvvfcKe1khhBDLli0TK1asENHR0SI6OlpMmzZNeHt7i8jISCGEEOPGjbN/f2xsrPj666+FyWQSS5cutV/j6aefFvXr1xerV68We/fuFbfddpvo2LGjsFgsBc5HSkqKAERKSopL5VAoFApP5NAhIfS1mYX46y/HcU0TwtdXPx4QoD+vW5os9lW/TQgQFpO3EIsXi7fecnwehPjvf+VrTJ4sxKBBQhw4UOpFU5QTCvr3u9DBj5+fnzh16lS+7//www+iR48ehb1svlSrVk18++23Qggh2rZtK95++23p/S5duojXX39dCCFEcnKy8Pb2FkuWLLG/Hx8fL4xGo1i5cmW+35GZmSlSUlLsj7i4OAGIS5cuCSGEsFgs9uDJOW02m6W01Wq9Zjo7O1tKa5ompTVNuyptsVhERESEyMjIEEIIYbVaRXZ2tj1tNpuvmbZYLFI6r3KUdpmEEFK6MGWy+cjKyqowZSrKfbJYLGL//v3276oIZSrKfbL5MJvNFaZMRblP2dnZYv/+/cJisZRKmb7+2moPXF5/3ZH3c+ccx2++WRPBxIuLDdsLASKFKmLXjH+Fpmli3jxNCn6+/daR3+K4T1lZWXYf7nSfyqruZWZmioiICGGxWCpMmS5evFig4MelFZ4TEhLyff/GG2/k6NGjLrdE2bBarSxZsoTLly/TM2dRiFtuuYVly5YRHx+PEIL169dz5MgRBg0aBEBYWBhms5mBAwfar1OvXj3atWvHtm3b8v2uGTNmEBQUZH80zJlGEBkZCUBUVBRRUVEARERE2PcuCw8PJzY2FoBdu3YRlzMyb9u2bXZHmzZtsi/6uG7dOvtYqVWrVpGWlgZAaGgomZmZWCwWQkNDsVgsZGZmEhoaCoDZbGbt2rUAJCcn21fQvnDhAps2bQIgISHBXsa4uDh25awEFhsbS3h4OKCP14qIiHCLMqWlpbFq1SqXypSSksK+ffsqVJmKcp/Onj1r79qtKGUqyn2KjY2tcGUqyn2y1Y3SKNOxY3p+AXbvzraX6c8/rwBQv3463SsfYDs9qR53gATq0odNhFU1YLFYqF07G2eSknYV6306fPgwly5dcsv7VBZ1b8uWLfZur4pSpq1bt1Igrhka5cGDDz4onnnmmXzfP3r0qKhcuXJhL2snIiJCVKpUSZhMJhEUFCRWrFhhfy8rK0s8+uijAhBeXl7Cx8dHfP/99/b3Fy9eLHx8fK665u233y6eeuqpfL/TnVt+hHC/yFqVSZVJlUmVKa9yPPuso+WmSRNH3h96SD8+55GNIt23mhAg4gNbihBihdGoifR0vUwHD8otPxcvln2ZKuJ9qshlKmjLT6GDnz179ggvLy/x9ddf5/n+okWLRIcOHQp7WTtZWVkiJiZG7N69W7z66quiZs2a4uDBg0IIIf7v//5P3HDDDWLZsmVi//794vPPPxeVK1cWq1evFkLkH/wMGDBAjB8/vsB5cKcxPxaLRezdu9d+wz0d5UNG+ZBRPmRK28d99zkCFy8vIXL+HonOnYW4h9+ExVsf+LONm8SNTc8LEKJhQ8fnU1Mdn69Vq/jzp+qHTEX0UdC/34Xu9uratStz5sxhwoQJ3H777SxdupRTp05x6dIl/vrrL6ZOncqoUaMKe1k7Pj4+NG/enG7dujFjxgw6duzIp59+SkZGBtOmTWPmzJkMHTqUDh068NxzzzFy5Eg+/vhjAOrWrUt2dvZVG68mJiZSp04dl/NU1vj7+5d1FtwK5UNG+ZBRPmRK08fZs460xaJvWio0wcCDM/mV+zGZszjVeTj9Wcuu4/qqhc4zuqpUcaRvuqlk8qjqh4yn+nBphedx48axYcMGUlJSuOeee2jSpAm1atXi7rvvpn379rzwwgvFlkEhBFlZWZjNZsxmM0ajnGWTyWTflK1r1654e3uzevVq+/sJCQlERkbSq1evYstTaWIymWjVqhUmk6mss+IWKB8yyoeM8iFTUj7CwuDee/VnZ5yDH4AzJ81cfvRpPsieghGBdfwEot79nQwC7Oc0aSJ/ZsYMGDoUvvuuWLMMqPqRG4/2UdQmpqioKLF48WIxd+5csX379iJd67XXXhObNm0SsbGxIiIiQkybNk0YjUaxatUqIYQQffv2FW3bthXr168Xx48fFwsWLBB+fn7iyy+/tF/j6aefFg0aNBBr1qwRe/fuFf369SvXU93NZrPYtWuXvV/U01E+ZJQPGeVDpqR8DB3q6J7KzNSPZWcL4e2tH6tRQ4ggkkRipwFCgLBiEDNqzxRC00R4uDyd/c03izVr10TVD5mK6KOgf7+vsxPK9WnVqhWtWrUqehQGnDt3jtGjR5OQkEBQUBAdOnRg5cqV3J6zde+SJUt47bXXGDVqFJcuXSIkJIT33nuPp59+2n6NWbNm4eXlxQMPPEBGRgb9+/dn4cKF5TayNRgMVKtWDYPBUNZZcQuUDxnlQ0b5kCkJHxaLYzNSgGPH9M1Eo6PBbNa7ru7ucIwX1w+h1r7DZHlX4j7zT1S/YygYIPcIhNwtPyWJqh8ynuyjyHt7VUTU3l4KhUKRN4cOQdu2jtehoXDnnfDTT/Dww/BMu818dPRuKmdeJCWwAa+2/Zuvtnfkyy/hmWf04MnHR2/3AVi/Hm69tUyKoqiAlNjeXorSxWKxsG3bNiwWS1lnxS1QPmSUDxnlQ6YkfOQss2LnxAn9edUqGM33fHaoP5UzL7Kbbrw1eBf/nu0IQLt2+nleXlC9uuPzpdnyo+qHjCf7UMGPm2M0Gqlfv/5VA709FeVDRvmQUT5kSsJH7uDn5EmwmjXa/fQfvucxvDQzsd3uoy8bibwYjG1rxZAQx2ecJ+TWr19sWbsuqn7IeLKPIo/5UZQsRqOREOffGh6O8iGjfMgoHzIl4cPW0mPj7PErZAx/jClZvwGgvTqNmL7vkHGnkbAwfRyQyQT16jk+4+8Ply/rz16l+FdI1Q8ZT/ZRpHBv7dq1TJs2jXHjxjFmzBjpoSgeLBYLmzZt8shmybxQPmSUDxnlQ6YkfNh2L7rpJqhLAq+uvJXK//xGNt5Mq/8dxhnvUb+h/qclZycJ6teXg5z58+HGG6+eKl/SqPoh48k+XA5+3nrrLQYOHMjatWu5cOECSUlJ0kNRPBiNRpo1a+aRzZJ5oXzIKB8yyodMUXxYLHqQ4rxVY3o62JZRG9ttPzvpQau03WRUqkF/1hLd41Hg6q6s3I0LDzwAO3dC69aFzlaRUPVDxpN9uNzg+NVXX7Fw4UJGjx5dnPlR5MLWJ6vQUT5klA8Z5UOmKD5++AHGjtW7rE6e1AOajRvhyhUYW2c5T8x7CBOXiTG2ZNGwv9nyU3Om5ax6EhQEAQH6uQCNGhVTgYqIqh8ynuzD5XAvOzu73K6aXJ6wWCysW7fOI5sl80L5kFE+ZJQPmaL4WLlSf7ZaIWejbnbtFExmFt+cG44p4zJr6M+N2nbWxzUHoGVL/TyDQW79cZdhJap+yHiyD5eDn3HjxvHjjz8WZ14UeWA0GmnXrp1HNkvmhfIho3zIKB8yRfGxYYMjfewYYDbTY8HTzOJFjAjEk08x1PQPyVRjyxb9PFvwA/IAZ3dq+VH1w4En+3C52yszM5NvvvmGNWvW0KFDB7y9vaX3Z86cWeTMKfTKWbt27bLOhtugfMgoHzLKh4yrPpKS4Nw5x+uEqGTE4PsZfHoNGgbiJ39Mw5kvUCPUQHy84zzn4McdW35U/ZDxZB8uh3sRERF06tQJo9FIZGQk4eHh9se+ffuKMYuejdls5t9//8VsNpd1VtwC5UNG+ZBRPmSu5yM7G4YMgalT5eMxMY50U47x2vKeGNasIZ1K3Of1F3U+fBEMBqlFp3ZtqFrV8dp5G4sbbih6WYoDVT9kPNmHyy0/69evL858KPLBZDLRvXv3crs3WXGjfMgoHzLKh8z1fGzYACtW6I+pUx0rLx85oj/399nMkuy7qZlxkSvVG3DLpeX4dumEj4/+fpMmsH27nnZu9QEYPhy+/x4mTYKmTYu/bK6g6oeMJ/vwvI6+cobRaKR69eoe2SebF8qHjPIho3zIXM/H8eOO9Jo1jvSePfpWFf+Y+1OTi4QZu/HtU7vYTydperrz1hS5g5++feH8eXjzzWIoSDGh6oeMJ/soUok3b97MI488Qs+ePYnP6fhdtGgRW2yj3xRFxmw2s2LFCo9slswL5UNG+ZBRPmSu5yMqypHeuzfnMxkWWn79It/zGN7CzG/cS29tI/vOBQPQoIHjM9cKfkCf9eVOqPoh48k+XA5+fv/9dwYNGoS/vz/h4eFkZWUBkJaWxvvvv19sGfR0vLy86N27N16luQa8G6N8yCgfMsqHzPV8OA/PjI8HLl4k7ZY7eSZzFgDatNd52PQLGQSwf79+nnPwc/PN+jpA3t5w220lU4biRNUPGU/24XLw8+677/LVV18xd+5caaZXr1692Gv7F0JRZAwGA4GBgRjc7V+oMkL5kFE+ZJQPmWv5SE93jNcB8D58ALp3p/pefWDz/277DeN771Cjlv5nIq/gp1UrSEiAM2ega9eSLEnxoOqHjCf7cDn4iY6Opk+fPlcdDwwMJDk5uSh5UjhhNpv566+/PLJZMi+UDxnlQ0b5kLH52LvXzMaN8nsbN+qbjgLcw+98HtYTYmNJ8GtCT7YTMPpeAGrU0M+xWvVn5+AHoFYtqFmzBAtRjKj6IePJPlwOfoKDgznqvOlLDlu2bKGpuwztrwB4eXkxcOBAj2yWzAvlQ0b5kFE+ZLy8vKhc+Q5uusmLW2+Fzz93vLdqFRjQWNTkDX7nPiqJy4j+/bm96m4iaU+bNvp5uQOb3MFPeULVDxlP9uFy8DN+/Hief/55du7cicFg4MyZMyxevJiXXnqJCRMmFGcePR5PrJjXQvmQUT5kPNGHEHoXlm0XdWd+/tkLs1nv1vjlF8fx3WtTWcoIHol9F4CZvEDslys5eFZv6rHN6qpVy/EZX19HS1B5xRPrx7XwVB8uBz+vvPIKI0aM4LbbbiM9PZ0+ffowbtw4xo8fz3PPPVecefRoLBYLoaGhHrn3Sl4oHzLKh4yn+ti0CXr1gmbNkFZctlgsbNmSbH998mTO8UNHmH+wB8NYjubjy7OVv2MKM1m/Wf9DWK8eBAbq53bp4rhe/fruN4OrMHhq/cgPT/ZhEEKIolzgypUrHDp0CE3TaNOmDZUrVy6uvJUZqampBAUFkZKSQqDtN0AZIYTAYrHg5eXlkYPScqN8yCgfMp7qY/ZseOEFPf3++/Daa3pa0wTVq0NKiu7CaITsv/6Bhx/ClJZCPPUJ3vEnXcZ3Z/9+eOIJWLBAD6S2btWvsX27/hqgZ0/Ytq10y1aceGr9yI+K6KOgf7+LvLJRQEAA3bp148Ybb6wQgY874olR+bVQPmSUDxlP9HHihCP999+OdHy8HvgYjQIQvKx9gHHYXZjSUthKLx5ruwdjj+72cTy2gMd5L65u3RzpPIZ5ljs8sX5cC0/14XnLOpYzLBYLq1at8tgKmhvlQ0b5kPFUH87BT1gY2IofEaFP0erY/DLLKz/EB7yGQQh2d3qSfqyjXpe6gGMQs21bi8aNHdfz9oZXX9XT06aVXBlKA0+tH/nhyT48c6RTOcLb25vhw4eXdTbcBuVDRvmQ8VQfzsFPVpa+MWnr1nD4sBchnOCPcyNonL4fM17sH/s5k6OeJhu49Vb9M847sMPVu7C//z6MHAlt25ZgIUoBT60f+eHJPlTLj5sjhCA1NZUiDs2qMCgfMsqHTEX3sWMH9O6t771lIzMToqP1tG1j0gMH9BlgZ35cz2660zhlPym+tejPWja0eprdu/Xz+vbVn3NPX88d/BgM0KmT3gpUnqno9aOweLIPFfy4ORaLhc2bN3tks2ReKB8yyodMRffxxBOwZQvcdJPj2I4degBUty4MHaofOxojOP3q53y493ZqcYGMNp2ZPWoPm+nDzp364oa+vo69ua4X/FQUKnr9KCye7KNIs73Wrl3L2rVrSUxMRNM06b358+cXOXNlhTvN9lIoFArQAxYfH8frkyehUSN91/R33oGHH9aDmNkfZbGx7QRuOqj/Dl5b92H6H5vLR18EMHWqHiSdPat3ix06pF/r0CG5Sys9HSpVKsXCKRTFRInP9nrrrbcYOHAga9eu5cKFCyQlJUkPRfGgaRqXLl26Krj0VJQPGeVDpiL7OHw479fr1unP/fpBE98zbKQvNx2cj2YwMoWP+W34t2h+fgTrm7Jz9qz+3KyZ41rOLT/+/hU38KnI9cMVPNmHy8HPV199xcKFC9m5cydLly7lzz//lB6K4sFqtbJ7926sto11PBzlQ0b5kKnIPmzjepxfZ2XBzp366zuqbOHRz7txEztJ86rKfzr/w0ym4Od/DKvVSr168uedgx/nf5ADAkom/+5ARa4fruDJPlwOfrKzs+llW/lKUWJ4e3szaNAgvMv7SMNiQvmQUT5kKrIP2zR0G9HR+jGLRfCa3yzqPXwrAckJHKQNo1rsZsmlgQDce287vL29adRI/rxz8ANw991QuTJ8910JFqKMqcj1wxU82YfLwc+4ceP48ccfizMvijzQNC3PMVWeivIho3zIVGQftpYf22DkEyfgSFgav/AA72e+iMFq5dLAB+nBTnZcaM6pU/p5QUEX0DSNkBB5a4rcwc9vv8GFC3DXXSVelDKjItcPV/BkHy4HP5mZmcycOZO+ffsyceJEXnzxRemhKB40TSMyMtIjK2deKB8yyodMRfAhBISGOsbm2LC1/PTrpz/7Hj1In5e6cz+/YTF6w2efcXnuj1ymMufPg6aBn58gMTECTdPw8ZHX88kd/BiN+gywikxFqB/FiSf7cHm212233Zb/RQ0G1tlG4ZVD1GwvhUJRVsyaBS++CMOHw9Kl+jEh9N3Uk5Jg0SJYMfonvmUclbjCaeqz8dlfGfVFTzIz9QHLNtq0gYMHHa+7ddNXgAZ9enxFD3YUnkdB/367vMLz+vXrXf2oohBomkZCQgLBwcEYjWpZJuVDRvmQqQg+bA3nf/3lOHbxoh74eJPN8LVTeIQvANhVpT93pf3EnFtrAeDnB1WqQFqa/rkmTQTx8WfsPu65B/buhbfe8szApyLUj+LEk314VmnLIZqmcezYMY9slswL5UNG+ZAp7z5yZzs1VX+OjIQGxLHDpy9VFuqBz7v8h55p/3KBWtKihLVrO9JNmgjJx7RpcOUKvPFGSZbCfSnv9aO48WQfRVrkMDk5mXnz5hEVFYXBYKB169aMHTuWoKCg4sxjqaO6vRQKRUlz9Kg+u6puXcexc+fk19u366s5L35iDQMXPkQtLkDVqoz1WcT8xCH28xIToZbe+EPPnvqqzwCffgqTJpVCYRQKN6HEFzncs2cPzZo1Y9asWVy6dIkLFy4wa9YsmjVrxt69e129rCIXmqZx8uRJj4zM80L5kFE+ZMqLj9OnoUMHPbDJypKPO3MoUoP33uOhhQOpxQUSG3SGsDCiWzgCn4AAqFnT8Rnnlp/GjcuHj9KivNSP0sKTfbgc/LzwwgsMGzaMEydO8Mcff/Dnn38SGxvLkCFDmDx5cjFm0bPRNI34+HiPrJx5oXzIKB8y5cXH339DRoa+RcXvvzuOOwc/VUniphnD4PXXMSL4lrHE/bQVmjaVZm21bClPYffzc6SbNi0fPkqL8lI/SgtP9uHygOc9e/Ywd+5cvLwcl/Dy8uKVV16hW7duxZI5he5ULSbpQPmQUT5kyouPNWsc6S1b9H25wBH8dGYvv3EfTY/HInx9GZf1P74zjSU951er82rNrVvL17aNEwJo29YLg8H9fZQW5aV+lBae7MPllp/AwEBO2VbRciIuLo4qVaoUKVMKB1arlaNHj3rk8uN5oXzIKB8y5cGHxQJr1zpex8Q40mFhMIZ5bDf0oimxnPJqwpaPtjOfsbRq5WjVcW75adVKvv706fpeXb/+Cprm/j5Kk/JQP0oTT/bhcvAzcuRIxo4dy88//0xcXBynT59myZIljBs3joceeqg48+jRCCFISkqiCOPSKxTKh4zyIeNuPiIjYetW+VhYGCQnO14fPao/a5cz6P/jWOYxDl+RxTKGcpNXGHtFZ0Bu4XEe19Ojh3z9Hj0gLg7uu8/9fJQ1yoeMR/sQLpKVlSUmTZokfHx8hNFoFAaDQfj6+orJkyeLzMxMVy/rFqSkpAhApKSklHVWFApFOSUhQYhKlYQwmYQ4fNhxfM4cIUCIzp31Z4NBiMxDx8SVVp2EAGHBKDLefF8YsAoQ4umn9fNeeMFxjWPHhPD2FmLQICE0rfTLplC4KwX9++1yy4+Pjw+ffvopSUlJ7Nu3j3379nHp0iVmzZqFryeunlVCWK1WDh8+7JHNknmhfMgoHzLu5OPbb+HyZbBa9VWZbURG6s/9++sLDd4lluN1U1f8D+8jkVq81mUVfm+9RkAl/dezbUXmBg0c12jaVJ8Wv3y5PNg5N+7kwx1QPmQ82UehBjy/+OKLvPPOO1SqVOm6+3fNnDmzSBlTOMjIyCjrLLgVyoeM8iHjLj6OHXOkN292pG3bTXRslcX/fF5lbNZsSIUjNXvS78IvPDlMj3Lq1IHjx2HPHv185+AHoFq1guXDXXy4C8qHjKf6KFTwEx4ejtlstqfzw3Ctf0UUhcJkMtG5c+eyzobboHzIKB8y7uQjPt6Rdg6EIiOhGUe5+5MHqZSmN+scHTqZwfs+JB4fbr5ZP69uXT34sQ3HyB38FAR38uEOKB8ynuyjUMGP835eam+v0sFqtRIVFUXr1q0xmUxlnZ0yR/mQUT5k3MmH85o98fH6uj5paTDgwk98zXgqRaWR6l2dh83f0aXTEI4tB5PJMYC5Th35eq4EP+7kwx1QPmQ82YfLY35OnTqV7wjxvKbAKxQKRUVE0yA7++rjzi0/ALGRl7E8NpafeJhA0qB3b967fz8rGMKmTfo5TZvqG5OCHPwYDBAcXDL5Vyg8EZeDnyZNmnD+/Pmrjl+8eJEmTZoUKVMKByaTiXbt2nlcVJ4fyoeM8iFTFj6ee04PWA4ccBxLS3MsNtisGbTjAI3u7U69lfPRMLCk5Zuwbh2+zfTmnF279HOdNyh13uOrbl3w9i583lT9kFE+ZDzZh8vBjxAiz7E96enp+Dmvr64oElarlfDwcI8cjZ8XyoeM8iFT2j5OnoQ5c/SWny+/dBy3BUJ1agsm+nzNLm6kclwUyQHB9Gctkfe9BV5e9gDHNubUOfhxbvlxpcsLVP3IjfIh48k+Cr29hW2Wl8Fg4I033iAgIMD+ntVqZefOnXTq1MmlzMyZM4c5c+Zw4sQJANq2bcubb77JnXfeaT8nKiqKqVOnsnHjRjRNo23btvzyyy80atQIgKysLF566SV++uknMjIy6N+/P19++SUNXP3t4Qb4+/uXdRbcCuVDRvmQKU0fzkMfbVPSAXbuhEBS+M3rSW6J+hWA2FZ3MLHKd2zYXZun2urnObfuQPEHP6DqR26UDxlP9VHo4Mc2y0sIwYEDB/Dx8bG/5+PjQ8eOHXnppZdcykyDBg344IMPaN68OQDfffcdw4cPJzw8nLZt23Ls2DFuueUWxo4dy1tvvUVQUBBRUVFSS9PkyZNZvnw5S5YsoUaNGkyZMoUhQ4YQFhZWLpv2TCYTrXKvX+/BKB8yyodMafuIinKkIyL08T9GI5xfsYtwHqTpmVisRi+majPwGf4iW77SG9vbtdM/k3tQc37Bj/PxwqDqh4zyIePRPlxdRfHxxx8vlRWQq1WrJr799lshhBAjR44UjzzySL7nJicnC29vb7FkyRL7sfj4eGE0GsXKlSvz/VxmZqZISUmxP+Li4gQgLl26JIQQwmKxCIvFclXabDZLaavVes10dna2lNZylma1pTVNuyptNpvFzp07xZUrV4QQQlitVpGdnW1Pm83ma6YtFouUzqscpV0mIYSULkyZbD5sq4hXhDIV5T6ZzWaxY8cOkZWVVWHKVJT7ZPNhe11cZdq61Sx69BBi2za5TEOHakKfjK4/Tp+yCuuHH4psvIQAcaVOYzF33DYBQtxxh75is8kkRHq6Xo6jR4X0+W3bHOWLisq2H1++3OzSfcrKyhI7duywe3OX+1RWdS8zM1Ps3LnTXoaKUKai3KeMjAy7j4pSposXL5bsCs8LFiwgMDCQQ4cOsXLlSpYtWyY9iorVamXJkiVcvnyZnj17omkaK1as4IYbbmDQoEHUrl2bHj16sHTpUvtnwsLCMJvNDBw40H6sXr16tGvXjm3btuX7XTNmzCAoKMj+aNiwIQCROUuxRkVFEZXzL15ERAQxOTsRhoeHExsbC8CuXbuIi4sDYNu2bSQkJACwadMmLly4AMC6detIztnUZ9WqVaSlpQEQGhpKZmYmFouF0NBQLBYLmZmZhIaGYjAYCAgIYN26dQAkJyfb0xcuXGBTzjSRhIQEexnj4uLYlTOCMjY21t5aFxMTQ0RERJmXCSAtLY1Vq1YVukwGgwFN09i/f3+FKVNR7pPBYCAtLY34nKlFFaFMRblPBoOBs2fPkpWVVaxlGjHCys6dcPvthlxlysJGTc7jf/8QjFOn4o2FX7ifsG8XEN+gGQDr1+uzY2+4AcLC9DLlbvk5d26DvUyHD6+mUSONJk0gM9O1+3Tx4kWSkpIwGAxudZ+gbOpedHQ02dnZGAyGClOmotynrVu34uPjg8FgqFBlKhDXDI2uwfHjx0WHDh2EwWCw7+1lSxuNRlcvKyIiIkSlSpWEyWQSQUFBYsWKFUIIIRISEgQgAgICxMyZM0V4eLiYMWOGMBgMYsOGDUIIIRYvXix8fHyuuubtt98unnrqqXy/051bfoRwv8halUmVqTyXyWrNu0wREVZRvbompk69ukzOrTOXL+vHr1yxCJNJb/l5PGStiCdY35vLx088xVeiXVu9Jernny3S5++7Ty6H83u5y5SWponUVM+8T6pMqkyulKmgLT8uBz9DhgwRw4cPF4mJiaJy5cri0KFDYvPmzeLGG28UmzZtcvWyIisrS8TExIjdu3eLV199VdSsWVMcPHhQxMfHC0A89NBD0vlDhw4VDz74oBAi/+BnwIABYvz48QXOgzttbGo2m8XWrVvtFcTTUT5klA+Z6/lIThYiJESIO++8+r2RIx1ByKlTjuNnzsgBim2T0oMHhTBhFjN83hRWDEKASKzZSswaEyFAiHHj9PM2bpQ//5//yN/bSd/PVDz7bNHLnxtVP2SUD5mK6KPENzbdvn07b7/9NrVq1cJoNGI0GrnllluYMWMGkyZNcvWy+Pj40Lx5c7p168aMGTPo2LEjn376KTVr1sTLy4s2bdpI57du3dq+qGLdunXJzs4mKSlJOicxMZE6uduXywlGo5H69etjNLp8qyoUyoeM8iFzPR9//KFPT//nH8c6PDY2bnSkbYsOgmMvLhs5reuc3HqatfTn1ey3MSKYxxjeHb6Hv0+2BxwrNede9iynV93OTz/p+frss4KUsHCo+iGjfMh4sg+XS2y1WqlcuTIANWvW5MyZMwCEhIQQHR1dPLlDn1WWlZWFj48P3bt3v+raR44cISRnKkTXrl3x9vZm9erV9vcTEhKIjIykV69exZan0sRoNBISEuKRlTMvlA8Z5UPmej5sm4SCY3d1gKQkOHvW8frcOUf60CH5GgkJwN9/03tiJ/qyiUzvyqx5YjHjmMepi5U4elQ/z/Z/Wv36+u7tNnJPW2/VCu6+W58lVtyo+iGjfMh4sg+XS9yuXTv74KQePXrw0UcfsXXrVt5++22aNm3q0jWnTZvG5s2bOXHiBAcOHOA///kPGzZsYNSoUQC8/PLL/Pzzz8ydO5ejR4/yxRdfsHz5ciZMmABAUFAQY8eOZcqUKaxdu5bw8HAeeeQR2rdvz4ABA1wtaplisVjYtGkTFoulrLPiFigfMsqHzPV87NvnSDuvyJz7/zXn4Md5OrsfGbT+33MwdCiVsy4SRhfCv91L2tCHAX0/L9ueXo0b689Go77Ks4369QtXpqKg6oeM8iHj0T5c7VdbuXKl+P3334UQQhw7dky0bt1aGAwGUbNmTbF27VqXrjlmzBgREhIifHx8RK1atUT//v3FqlWrpHPmzZsnmjdvLvz8/ETHjh3F0qVLpfczMjLEc889J6pXry78/f3FkCFDxCnnDvwC4E5jfqxWqzh9+rR9MJeno3zIKB8y1/MRHOwYezNliuP4ggXyuJzHHnO816ePfuzW6vtFJG3sJ83ieeFLpsjKEmLbNvnzvr5COGdh8GDHe+fPl0jR80TVDxnlQ6Yi+ijo32+DEPnsTuoCly5dolq1anlue1GeSE1NJSgoiJSUFAIDA8s6OwqFohjIyACnBekZNQp++EFPv/oqfPih/v6VK3DHHfq4IIA6tTQeuvAZ/2ecireWTbJfHc59sJBWk++gQQOIi4PYWH1TUhs33CC3Ji1fDsOGQdWqcOmSvlGpQqEofgr699ulbi+z2cxtt93GkSNHpOPVq1cv94GPu2GxWFi3bp1nNkvmgfIho3zI2Hz88YeV//1Pfi9n1xw7zmN8Dh/Wn/v21Z9t3V4XIxP47sJgZvMC3lo2yxnCmK4R7A++A3CsvJx7mwpbl5eNoUNh5Ur499/SDXxU/ZBRPmQ82YdLwY+3tzeRkZEq0CkFjEYj7dq188gBaXmhfMgoHzJGo5GWLdtx770mnntO32PLRs7aaHacgx9bK40U/CxbRqVeHbiDf8k0+BH9/JcMYxlRF2vbAylbkOPvD7VqOa6Xe4YXwKBBcOONRSicC6j6IaN8yHiyD5dL/OijjzJv3rzizIsiD4xGI7Vr1/bIypkXyoeM8iFjNBq5eLG2/bXzAGdb8JOzdaB9ynpGBvYZWn36QCXSmZ4wHoYPxy/tAvvoyLxnwtDGPwMYSEhwXMu5hcd5/63cLT9lhaofMsqHjCf7cLnE2dnZzJkzh65duzJ+/HhefPFF6aEoHsxmM//++y9ms7mss+IWKB8yyoeM2Wzmu+8c07hyVtEHHAGLbdWLS5cgKwu2bgWLRZ+F1S1rK/vpyJPiGwC+CniBHuykxxNtCA7WP5eS4pgm7zyLq1EjR9pdgh9VP2SUDxlP9lHoXd1tREZG0qVLF4Crxv6o7rDiw2Qy0b1793K5I31JoHzIeLIPsxlOnZIDEJPJxIULLeyvndfoOX5cf+7aVV9Y0GyGxERYuxa8yearav/Fu/9HNEPjFA1J/3whz0zsB+gDmKtUAT8/yMzUAyaQBzk7Bz95dXuVBZ5cP/JC+ZDxZB8uBz/r168vznwo8sFoNFK9evWyzobboHzIeKoPqxXuvFMPXNasgf799eNGo5EdO/zs59kCHoBjx/Tnpk2hTh19PZ6zZ+HC+gPsYjSdIvXNcpcGPsrjqZ8y7UpVQB/MbJs0EhystyDZ5sg6B149e8Ls2XDrrdCtW/GX2RU8tX7kh/Ih48k+XO72OnXqFPnNkrdtN6EoOmazmRUrVnhks2ReKB8ynupjwwY98AH48kvH8VOnzDg3RCcmQnq63r1lawVq314PYoxYCfjf//HFzm50Yj+WqjXgt9+Y3fk7Uqhq3+KiZUvH9erVc6R9feXX99+vB1hr1oC7/CPtqfUjP5QPGU/24XLw06RJE86fP3/V8YsXL9LEXdp8KwBeXl707t0bLy+XG+kqFMqHjKf6iIlxpFevdrTEbNume+jcWWD7hzY2Vt+fy2KBatX07qmOgbGs5zbafvcKvmSzwjAEbX8k3Hsvtm0AbcHPDTc4vss27gf0ri3ncaIGg96q5C6BD3hu/cgP5UPGk324HPwIIfIc25Oeno6fn18en1C4gsFgIDAwUI2jykH5kPFUH3FxjnRammPm1pYtuoe+fQ32cTcnTsCWLXq6cyeBYf48Pt/UgT5s5oqxMuOYyyutluHTSF+sx7ZmT1qa/uzc8uMc/Dh3ebkrnlo/8kP5kPFkH4UO92wzuQwGA2+88QYBTkumWq1Wdu7cSadOnYotg56O2WwmNDSUwYMH4+3tXdbZKXOUD5mK7uPgQZg6Fd5+G3LmVwCO/bNsHD6sd0GFhWmAkS5dLBw/7kVYmB4Yffcd1OYcc88/CeOW4wds5hYe074jlqYMc4yRlrqyoHwHPxW9fhQW5UPGk30UOvgJDw8H9JafAwcO4OPjY3/Px8eHjh078tJLLxVfDj0cLy8vBg4c6JHNknmhfMhUdB9PPQXbtsGqVfq4Hds/qM4tP6AHP337woED+gldu5rsM7JiY6Hh3qX8w1PUjjwP3t5sv+tdbl06BQ29j8o5kHEOcEDfdT2v98pD8FPR60dhUT5kPNlHoUtsm+X1xBNP8Nlnn1GlSpViz5RCxhMr5rVQPmQqqg+LRQ98QJ+Wfvy4I+CwzeLq0gX27tWnvB8/DpcvG/DzE7RoobfgBJJC3wXPM4PvABDt22P44QfOHuuAttTxXfkFP7Vq5b8j+9ChxVfWkqSi1g9XUT5kPNWHy2N+FixYwK5du5g2bRrjxo1jzJgx0kNRPFgsFkJDQz1y75W8UD5kKrIP52nq4FiF+ehROHkSvL316e6gT1m3zeaqVy8FsNA1bQMRdOCOc9+hYeDbmlMx7N4NHTpctReXbdVnkIOfXr3kvbj69YNXXoG//3aftXyuRUWuH66gfMh4sg+XQ763336bt956i27duhEcHOyRA6ZKAy8vLwYPHuyx0XlulA+ZiuzDeUYXOIIh24alt9wCLXLG6iQkODYnvbmrD16vvMJds2frn6MJj/I9VXvcwjhf/ZzcXVv5te6MGiWfZzLpu7+XFypy/XAF5UPGk324XOI5c+awcOFCRo8eXZz5UeSBxWLxyMqZH8qHTEX1YWvpsXH8uL644Vdf6a9fftkx1fzsWT346cxePl7/CIYLUQB8w5NM4RPSqcJzTi01tunsNpz35apWDT7+WO9qu+++Yi5UGVBR64erKB8ynuqjSHt79bJtkqMoMSwWC6tWrfLIZsm8UD5kKoIPIWDxYr0ryxlby0+lSvrz8eP6LK/MTL3La+BARwvO+QQLPda8x056UPtCFKJOHZIXLWc835COPi7Reb8tf3/5u3JPdJkyBV59Ve7yKo9UhPpRnCgfMp7sw+XgZ9y4cfz444/FmRdFHnh7ezN8+HCPm4aYH8qHTEXw8eOP8Mgj0L2745gQ+uKFAIMH68+nTzu2qGjSRO+CqlsX2hPBsvM38fTp1/HGQsqAezAcOEDgw0Nw/oc29xidgQP152eeKZlyuQMVoX4UJ8qHjCf7cLmtKzMzk2+++YY1a9bQoUOHq+TNnDmzyJlT6EsKpKWlUaVKFTWuCuUjNxXBx19/6c/nz+uztho10ndNP3JEb6F55hn49VeIj3cEP82aAdnZ1PxyBnt4Dx/MJFGVyYZP+b8fhiNqBmI06MGRbU2g3Dut//qr3l3WogUVlopQP4oT5UPGk3243PITERFBp06dMBqNREZGEh4ebn/s27evGLPo2VgsFjZv3uyRzZJ5oXzIVAQfzt1dtrV5Dh7Un7t0cayzk5CAfd+uW6uEQbduGN+ajg9mljKcNhxia9PR7N6zJU8fuVt+AgP1rSsq8u/8ilA/ihPlQ8aTfRhEfruTejCpqakEBQWRkpJCoG07Z4VCUewIAVWqwOXL+uuPPtIHMr/zDrz5JjzxBMydC35++ro/N3fN5K6wt5hq/D+MmhVq1uTVyl/w4YkHAANDhsDy5Y7r33EH/Puvnta0ih3oKBSKgv/9drnlR1E6aJrGpUuX0DStrLPiFigfMuXJx4IFEBoqH7t40RH4gKOLytbCc8MN+tie4GC4ie3MDevMa3ygBz4jR8KhQxxoMxLQo5qWLYXk44034MEHITraMwOf8lQ/SgPlQ8aTfRQp+Nm8eTOPPPIIPXv2JD4+HoBFixaxxbaLoKLIWK1Wdu/ejdVqLeusuAXKh0x58REWBmPGwF13QXq64/iJE/J5Ob9GpOCHK1f4yPIiW7mZ1hwmgbpc+OYPWLIEatWS1uy54QbZx803w08/yTuzexLlpX6UFsqHjCf7cDn4+f333xk0aBD+/v6Eh4eTlZUFQFpaGu+//36xZdDT8fb2ZtCgQR45Gj8vlA+Z8uJj5UpH2jaLC64OfmwtP7Zp7p2SN0CHDjyYMAsjgoU8xo0BB6kx7m77Z2rVcny+fXuvcuGjtCgv9aO0UD5kPNmHy8HPu+++y1dffcXcuXMlcb169WLv3r3FkjmF3iyZmJjokc2SeaF8yJQXH7Y9ugCcG4ZjY/Vn2/YScXFw6RKYk9L4HxNoOvY2OHaMpMoNuJNQnmAhdVpXl7qwbMuN3XUXdO9ePnyUFuWlfpQWyoeMJ/twOfiJjo6mT58+Vx0PDAwkOTm5KHlSOKFpGpGRkR5ZOfNC+ZBxNx/vvQejR0N2tnzceUbXqVOO9IED+rNtLZ+EBIhfsIpI2jGBOfrB8eNZNPUgK9E38mrZUr720KF6d5k+0Nm9fJQ17lY/yhrlQ8aTfbgc/AQHB3M09/rzwJYtW2jatGmRMqVw4OXlRb9+/Txy+fG8UD5k3MnHuXPw+uvwww/wzz/ye3FxjrRz8GNbFWPAAAj2T2auGEv7lwYRwinO+DWBNWvgq6+o1cwxa8M29d2ZevX0Ac3u5MMdUD5klA8ZT/bhcvAzfvx4nn/+eXbu3InBYODMmTMsXryYl156iQkTJhRnHj0aTdOIj4/3yMg8L5QPGXfysWyZI71mjSOdmqo/bNiCH+ed2HteWE64uS1jmY+GgU+ZxPsjI6B/f0AesDx0aP55cCcf7oDyIaN8yHiyD5eDn1deeYURI0Zw2223kZ6eTp8+fRg3bhzjx4/nueeeK848ejSapnHs2DGPrJx5oXzIuJOPzZsd6bAwR9q51Qf0oCcrCxYuhKrWC/xbcxQ1xwyjjuUM0dxAHzYxmU9p2Lqy/TNduujbYISHQ6dO+efBnXy4A8qHjPIh48k+irzI4ZUrVzh06BCaptGmTRsqV658/Q+5OWqRQ4UifzZv1qePf/ihvkChjZYtHVPUGzRwBD1//AH33qsHLVFReuATGws/3/8bj+95ljokgtHI6k4vMWzvdDLRdx397Tf9cwqFQlFQSm2Rw4CAALp168aNN95YIQIfd0PTNE6ePOmRkXleKB8ype0jMxP69IE5c+Djjx3HU1MdgQ/oA5dtK+Zv2qQ/9+yp77VVn9MEPn4PU/fcTx0Sudy4LWzfzoFRH9oDH3Btzy1VP2SUDxnlQ8aTfbgc/MyYMYP58+dfdXz+/Pl8+OGHRcqUwoEn98nmhfIhU9o+NmxwpJ1Xa7at11O1Knh5gdWqd28BbNyoP9/a28okPiOK1lTf+CdmvHibN8jYEgY33njVxqPNmhU+f6p+yCgfMsqHjCf7cLnbq3Hjxvz444/0si2ykcPOnTt58MEHibUt4FEOUd1eCkXefP01PP20nvb2howMffuJZctg+HDo2tWxO/u2bfrMrBo1oJPYy84OT+EdoQ8GOlq7J3cnfk1i7facO6dfLzxcH9sD+uwt22rPCoVCUVBKvNvr7NmzBDuvK59DrVq1SEhIcPWyilxYrVaOHj3qkcuP54XyIVPaPmwrMAOYzY7XtnV8GjeGhg0d525fnc7H4kV20x3viDCu+AQxnq8YErSFSNpLXVvOK2TkLBhfaFT9kFE+ZJQPGU/24XLw07BhQ7Zu3XrV8a1bt1KvXr0iZUrhQAhBUlISRRyXXmFQPmRKykdqKnzxBaSkyMedgx+A48f1Z1tDb0iIPtgZwOefv+g5rg0vMgsTGjz4IHMmHeYbxhMdo//qsa3sDBAU5Bjnc/vtruVb1Q8Z5UNG+ZDxZB8ur2w0btw4Jk+ejNlspl+/fgCsXbuWV155hSlTphRbBj0dLy8vunfvXtbZcBuUD5mS8vHf/8Ls2fqMK+dxPnkFP7fdBhER+uvWraFaehwjmcTwBUv1c2jCiZe/pN9Hd1B9gfx55+AHYOtW+OwzGDfOtXyr+iGjfMgoHzKe7KNI6/yMHTuWCRMm0LRpU5o0acLEiROZNGkSr776anHm0aOxWq0cPnzYI5sl80L5kCkpH//7n/68cSNcuOA4bmvhsW0xceIECKGP1zFiZdDhT3nluzbczVIsBi8+Mr5KOyJpOuEOADp0kL8nd/BTqxa8847eguQKqn7IKB8yyoeMJ/twOfgxGAx8+OGHnD9/nh07dhAREcGlS5d48803MTjvOqgoMhkZGWWdBbdC+ZApbh8ZGXpAY+PwYf05MRGOHdPTd+ixDGfP6oObG18KYyc9aPjJZHyy0tlGTwZU28tUbQaabwCNGunnt22rD5C2kTv4KZ78q/rhjPIho3zIeKqPIm3osXbtWtauXZvnrrB5TYNXFB6TyUTnzp3LOhtug/IhUxI+Tp50rNEDemvPLbc4dmNv107v3gJIjU/j8lNvsovP9HE9QUGceOZDbvngScQl/X+rpk3BmPNvlp+fPijaFkS5Mp39Wqj6IaN8yCgfMp7sw+WWn7feeouBAweydu1aLly4QFJSkvRQFA9Wq5XIyEiPbJbMC+VDpig+0tL0sTW5NyHNPcXc1tVl276id2+oUweG8RefrW1Dm1WzMaGxv81DcPgwvpPGI5x+teQOcJzX86lWrdDZviaqfsgoHzLKh4wn+3C55eerr75i4cKFjB49ujjzo1AoSonp02HePP3h3M2VO/ixzeiyrdQ8qE0cvWdNYgRLIRtOezdhrHkOkz4aRMe6UEfTFzq0tR7l7tp6+WVYu1YPohQKhaIscDn4yc7OvmqBQ0XxYzKZaNeuXVlnw21QPmSK4sO5xSchAWzLdtmCHx8fyM7WW35SU+FAuIXn+YKhr76B8XI6ZryYaXyZDwyvk0wAc3K6woxGqF/fsfZP7uBn0CDYvdv1Qc3XQtUPGeVDRvmQ8WQfLnd7jRs3jh9//LE486LIA6vVSnh4uEc2S+aF8iFTEB9ms9yyA3D5srwX17ZtjrRtOrutZSY2Fg5+H8Z20YPZvIDxcjrWm3rRmXBe1d4nOTsAX185mLEtdAh5j+vp1k2f2VXcqPoho3zIKB8ynuzD5ZafzMxMvvnmG9asWUOHDh3w9vaW3p85c2aRM6fQ8ff3v/5JHoTyIXMtH5cu6VtGBAfrAY5tIuaePfr+Wzaiox3pyEj9+bbbYO/aS0yL+w89Jn6NEcFl7yAqffERpnHjOBFohMv6uc2by7O4QkIcA6RLYkbXtVD1Q0b5kFE+ZDzVh8vBT0REBJ06dQIg0vbbMgc11b34MJlMtGrVqqyz4TYoHzLX8/Hll3r308mTcOCAY52dnTvl82Ji9OdLl/SFBo1YGW+Yx3imUZOLAPzIQ1x8eSYTn6oL6IOebeOBmjSRrzd+PCxeDIGBJdO9lR+qfsgoHzLKh4wn+3A5+Fm/fn1x5kORDxaLhfDwcDp37oyXV5FWJqgQKB8y1/OxerUjHRrqCH4OHdKf27aFgwcdwU9YGHS17mSu73PU/M8eACJpy3N8wUZu5Xun35POwU/uAKd3b73lx9dX3wC1tFD1Q0b5kFE+ZDzZh2eVthxiMBioVq2aak3LQfmQuZYPIfTWHhvOY3yiovTnoUP14OfYMeD8eYJff5WdzIcsIDCQL2q/zQtHJ2BBj2Cct+2rU8eRzqt15+abXS+Xq6j6IaN8yCgfMp7so0jBT3JyMvPmzSMqKgqDwUDr1q0ZO3YsQUFBxZU/j8dkMtG8tAdNuDHKh4zNx8cf61tMfPMNVKqkv3fmDDgvuWWbxaVpjuCnf3/4vw8s3HfuK8QNb9AuORmA8A6P0XnVh2yaWAfLUcc1ChP8lAWqfsgoHzLKh4wn+3B5tteePXto1qwZs2bN4tKlS1y4cIFZs2bRrFkz9u7dW5x59GgsFgvbtm3D4rzkrgejfMhYLBbWrNnByy/Djz+C87Z6zq0+oAdDoAc+aWkQEAB9DJsJoyufi4kYkpM5HNCZXmwl5j8LoU4dataUr1G/viNtC7Kg9Ac154eqHzLKh4zyIePJPlwOfl544QWGDRvGiRMn+OOPP/jzzz+JjY1lyJAhTJ482aVrzpkzhw4dOhAYGEhgYCA9e/bkn9zLz+Ywfvx4DAYDs2fPlo5nZWUxceJEatasSaVKlRg2bBinc29FXY4wGo3Ur18fo9HlW1WhUD5kjEYjJ082tb/eutXxnm2n9bZt9Wdby8+2bVCXBJZWGY3PgD50JIJLVOP4S1/SMWs32+nFjTfq5zoHP0FBUKWK47WtW+uWW8BdVshX9UNG+ZBRPmQ82UeRWn6mTp0qDZLy8vLilVdeYc+ePS5ds0GDBnzwwQfs2bOHPXv20K9fP4YPH87Bgwel85YuXcrOnTup59wGn8PkyZP5888/WbJkCVu2bCE9PZ0hQ4aU23UMjEYjISEhHlk580L5kDEajezbV9v+2jnOt7X82DYhTUqCjFQzQfNmEk1Lbj/3AxgM/FbjKW7gCPN9nyHbaqJuXUc3Vo0ajuu1aeOYKg8wYoQ+ZX7dOvl4WaLqh4zyIaN8yHiyD5dLHBgYyKlTp646HhcXRxXnfw8LwdChQxk8eDA33HADN9xwA++99x6VK1dmx44d9nPi4+N57rnnWLx48VVrC6WkpDBv3jw++eQTBgwYQOfOnfnhhx84cOAAa9ascSlPZY3FYmHTpk0e2SyZF8qHjMViYenSK/bX589DZqaetgU/vXuDvz/cxjpMXTrywM4pBJLGxWY3ws6dzOv+NRepyapV+vlduzqCGeeWH1sLkg2jUT+3NGdzXQ9VP2SUDxnlQ8aTfbgc/IwcOZKxY8fy888/ExcXx+nTp1myZAnjxo3joYceKnLGrFYrS5Ys4fLly/Ts2RMATdMYPXo0L7/8Mm1z/yYGwsLCMJvNDBw40H6sXr16tGvXjm3OS9jmIisri9TUVOlhy4PtOa+0xWKR0rad7fNLm81mKS1ylt21pYUQV6WNRiNNmza1f4+maZjNZnvaVmnzS1utVintDmUCpHRhymQ0GmnSpIn9OytCmYpyn1JTjZw+HYAzp09rmM0QFaXnu3PNOH41jWQd/fE5FsUFQ03GMI+EP7Zj7tSJunX183bv1j9/ww2OctSo4Vgaun179697RqORxo0bYzAY3Oo+FaVMzunClgmgcePGGI3GClOmotwnIQRNmjTBaDRWmDIV5T5pmkbTpk0xGo0VpkwFDeRcDn4+/vhj7rnnHh599FEaN25MSEgIjz/+OPfddx8ffvihq5flwIEDVK5cGV9fX55++mn+/PNP2rRpA8CHH36Il5cXkyZNyvOzZ8+excfHh2q5toquU6cOZ8+ezfc7Z8yYQVBQkP3RMGdtftvijVFRUUTlTI+JiIggJmdRlPDwcGJztrzetWsXcXFxAGzbto2EhAQANm3axIULFwBYt24dyTmzaVatWkVaWhoAoaGhZGZmYrFYCA0NxWKxkJmZSWhoKEajkcDAQHvLVXJyMuvWrQPgwoULbMrZbTIhIcEe4MXFxbFr1y4AYmNjCQ8PByAmJoaInIEgZVkmgLS0NFblNDUUpkxGo5GsrCz2799fYcpU0Pv09tun6dgxm23bHGU6c0b/Ea5a1WofdLx//0V93Z7sbN7wnkHDga24K/0XrBjZe/NztBBHWOT1BDe0MhIaGkrNmvIvi8aNzfYytW6dRoMG6QweDHff7f51z2g0Eh4eTnZ2dpndJ3eqe5cuXeLo0aMYjcYKU6ai3Kfo6GhSUlIwGo0VpkxFuU9btmzBx8cHo9FYYcq01Xng47UQReTy5csiIiJC7N+/X1y+fLmolxNZWVkiJiZG7N69W7z66quiZs2a4uDBg2LPnj2iTp06Ij4+3n5uSEiImDVrlv314sWLhY+Pz1XXHDBggBg/fny+35mZmSlSUlLsj7i4OAGIS5cuCSGEsFgswmKxXJU2m81S2mq1XjOdnZ0tpTVNk9Kapl2VNpvNYs2aNeLKlStCCCGsVqvIzs62p81m8zXTFotFSudVjtIukxBCShemTDYfmZmZFaZMBblPmiZEYKAmQAgvL0eZVqywCBCiXTuruPVWIUCIRYusYsOr/4hoWugHQETVvEV0YJ8YMkQ/1KKFo0yffqrZThMgxJo1pVOmkrhPtvphe13a98nd6l5WVpZYs2aN/TsqQpmKcp8yMzPtPipKmYpynzIyMuw+KkqZLl68KACRkpIirkWhg5+1a9eK1q1b53nh5ORk0aZNG7Fp06bCXjZf+vfvL5566ikxa9YsYTAYhMlksj8AYTQaRUhIiD1vzkGLjQ4dOog333yzwN+ZkpJSIHmlgdVqFefOnbPfWE/HU32EhQkpQElN1Y/PnWsVIMQdd2jikUeEaM4REdN6qP3EZP+6QixaJKa8qAc4Varob915p+Pav/wiX/vUqbIpY3HgqfUjP5QPGeVDpiL6KOjf70J3e82ePZsnn3ySwMDAq94LCgpi/PjxxbqpqRCCrKwsRo8eTUREBPv27bM/6tWrx8svv8y///4LQNeuXfH29ma105r+CQkJREZG0qtXr2LLU2liNBqpXbu2R47GzwtP9WHbJNSGba6BrdurRe1UnjzyEgdpS/Oo5VgMXnzCi/w0PRoeeYT6DfQRzDkt2dJO68HBjrSfn7yWT3nDU+tHfigfMsqHjCf7KHSJ9+/fzx22ubN5MHDgQMLCwlzKzLRp09i8eTMnTpzgwIED/Oc//2HDhg2MGjWKGjVq0K5dO+nh7e1N3bp1admyJaAHX2PHjmXKlCmsXbuW8PBwHnnkEdq3b8+AAQNcylNZYzab+ffff6UBjJ5MRfeRmAjvvgs5Q5rs5HSR2zl5Um+nWbnCzDjmMuP3FvTZ9Qk+mAmrM5hBwQd4iU9odaP+T0ruVSGcFyV0Dn6aNdNncZVXKnr9KCzKh4zyIePJPgq9vcW5c+eummIuXdDLi/Pnz7uUmXPnzjF69GgSEhIICgqiQ4cOrFy5kttvv73A15g1a9b/t3fe4VFVeQN+ZyYNAgkgoYQWeguhKsKqICACIqiwKCoWXEVX0EXFBoi7fi7oghWVXUVQRLBQFUR6D4RAkNBCCB0SY0hIKGkzc74/LlNOCEgJyST39z5Pnnvm3jN37nnnQH45FT8/PwYNGkR2djbdu3dn+vTp2Gy2q3qmksZms3HjjTeW2ucvasqyD6Vg4EBYtw4mTYL9+z3r7LiWzgoIgLw8I/g59OVKPo15gTb8BmfhdK2m3H/8PQ5W7sPevUb+Vq2MY8HWnIsFP76yUvPVUpbrx9UgPnTEh46pfVxpf1qDBg3U3LlzL3p9zpw5qn79+ld6W5/Cl8b8COYhKUkfe7NihXE+P98Y5AxK3XOPUo1JULsa9XNnzLKFKvX++yp2U572/vBwz70PHNDvvXev/tnTpyvVtKlS8+cXW3EFQRCKnOs25qdPnz688cYb5LhWUvMiOzubcePG0bdv3yIIywQwmiUXLVpkymbJwijLPgruxbX//Iaihw6B3Q41gzIYnTaSXbSkxf6FOK02PmY4D3dcR/6zz1I7Qm+RdbX6gN66AxARob9+9FHYuxf69y+SopQYZbl+XA3iQ0d86JjZxxUHP2PGjCE9PZ0mTZrw7rvvsmDBAhYuXMg777xD06ZNSU9PZ/To0dfjWU2Jn58ft956q7aNiJkpCz4yMqBvX5g2TT9fMPhJSjKOibvzGc7H7M5vRIf1H+CPnY2V+vDPAfE8x8c0u6UJfn5+hIXpqy17Bz9BQfq9AwOLrjy+RFmoH0WJ+NARHzpm9nHFJa5evTobN27kmWee4bXXXnOvAmmxWLjzzjv59NNPqV69epE/qFmxWCyFzqwzK2XBx8cfw6JFxs9f/woVKhjnXVvY1aplbEK6P1HBwp9o99jL9CYBHHCuQUvuOfAeeyr0pGm6kb9ly0AsFmNLilq1jJYi0IMfMLa5WLcORo0qlmKWCGWhfhQl4kNHfOiY2cdVzeuoV68eixcvJi0tjc2bN7Np0ybS0tJYvHgxEQXb04VrIj8/nwULFpiyWbIwyoIPr63q+OUXT9rVzXXHHXAjMYxe3hX696d6RgKphBE/fApZa7azjJ6cOAHnF0DlxIl1bh/ef3cUDH6+/RaWL4drWIDd5ykL9aMoER864kPHzD4sytV0I7jJysoiNDSUzMzMEo+KlVLk5OQQFBSExVe2zi5ByoKPatWMDUgB/vUvGDvWGIZcuTLckJnE8htfp/6W7wFQQUGMzxnJO7xC8tlQgoKMLivv7WsOHsymXj3Dx+DBMHu2cT47+8LurrJOWagfRYn40BEfOmXRx+X+/i7FK3qYBzP2x16K0uwjK8sT+ICntScjMY1/Zj7PHppTf8v3OLEw3fIYm2ckMpp/U6luKOXLG2vwVKvmeX9wsCI83ONj+HC46y5YscJ8gY+L0lw/rgfiQ0d86JjVhwQ/Po73ZnJC6fJx4AAcO6afcw1idnEkIRsmTCC4dUOe5yMCyMd5Zy/aWbbzuJrGyn21ATi/jiegd201bAi//OLx8Ze/wM8/Q7du16NEvk9pqh/FgfjQER86ZvYhwY+P4+fnR58+fUwbnRektPjYvRtatoQbbwTvVSFcLT3lAhw8ynS+2dIEXnuNwJwsttGWOU8vw7rkF1JrRAFGCw5cPPhp1IhS4aO4KC31o7gQHzriQ8fMPiT4KQWYMSq/FKXBxzvvGEFPSgosXuw5vz9R0ZNf2RnQjuk8Ti3nMVTdujxVbgYdiKXJ341tWFzbUaxcaRyjojz3KNjyUxp8FCfiQ0d86IgPHbP6kODHx7Hb7SxdutS0FbQgvubj11/ho4/A6dTPe29vt3Tp+URcHP0+6cmv9KLBmR1kUImX+A/bvk3g8+yHsflZ3S08Bffiat3ak/YOfho0cPiUj5LG1+pHSSM+dMSHjpl9mK+tq5Th7+9P/9K+7G4R4ks+8vLAtcdvcDA88YSRzs3FvbcWQOaOwzBkDHzzDS2BXAI40Hs4/TaPZn96FcLO79jetKmxdxfoe3FZLEYXmovatT3pJk386NbNN3z4Ar5UP3wB8aEjPnTM7ENafnwcpRRZWVnIigQGvuRj/XpP+uuvPendu8HhgEpk8A4vMy26KXzzDQBzgx6kGXs5/eYkAmtWAWDjRuN93uN6vFt+6tY1gisXDz0Ejz8OQ4fCrbf6jg9fwJfqhy8gPnTEh46ZfUjw4+PY7XbWrVtnymbJwigJHx98YLS2uBYVdLFunSd9+LAnvXVjLiN5j0O2hrzMfwgiF8dttxM/PZYBOTNJCapP8+ae7ivXoof163vu4d3yU3Cn9SpV4MsvYepUAKkf3si/Fx3xoSM+dMzsQ4IfH8ff35+77roLf3//P89sAq6XD6Xg5MkLz585AyNHGttNFFwZ2btr6/hxcOQ7YdYs+r/ajPd4kVBHBrutLenDIvZ9toIZu9oDMHAgVKzoCX5SU42jd/Dj3fJzqUXTpX7oiA8d8aEjPnTM7EOCHx/H6XSSnp6Os+CIWpNyvXzMmQNVq8KECfr5NWs86QMH9GsJCa6U4g77Ypxt28ODDxJ25hDHCWf7iKkMbPQbv9CH31Mt7vydOhnHunX1+3kHP+3be9Le430KIvVDR3zoiA8d8aFjZh8S/Pg4DoeDLVu24HA4SvpRfILr5cMV9Lz2mrEKs4udOz3p2FhjLA8YLUX79sFfWM9abmMxd+G/azsqJIQx/B+NSSR8zFCq1bQBxpT3xETjvY0bG8eCQU3Dhp50WBhERxsrNj/66MWfW+qHjvjQER864kPHzD5kb69C8KW9vYTioWVLY6AywKpV0LWrkX7kEZgxw5Nv3z4jeNn3w2/sGzSaviwCIJsgjtw9nJTHXqXrgBuIiICDB+H+++H772HiRHj9dWOG2MGDRlfWtm2eFh5/fzh71jgKgiAIV4fs7VVGcDqdpKammrJZsjCuh4/sbO8uLH0sT3y8nvfA0v3w4IM0GdSGvizCYbGxvOFTNCaRRV3/Q+zBGwBPUFOjhnHcssUIfAICoE4d41yzZp775udfXeAj9UNHfOiIDx3xoWNmHxL8+DhOp5OdO3easnIWxvXwER/v6c4CT/Bz9qwn+Lm/81GmMIwezzWHWbMAmMUDTBu1h6X3/Zfj1OboUdi1y8jfqpVxdA1qds0Ma9gQbEZPGOXLe9bscXWFXSlSP3TEh4740BEfOmb2IYsc+jh+fn50M+sulYVwPXxs26a/drUCxcZCNccJ/h38bx7e/Dl+5IET6N2bvr+9zaITbVnZC3LOBzxHjsDRo0baNZ6nZk3jeOKEcSwY5KxdCy++CKNGXd2zS/3QER864kNHfOiY2Ye0/Pg4TqeT48ePmzIyL4zr4SMuzjjeeKNxPHIESEkh5M2RHKABj539BD9HHiu5nZdvXkvGzMUsOtEWgLZtPd1YR454xg1FRhpH1zUXBYOf+vVh7lzPDLArReqHjvjQER864kPHzD4k+PFxnE4nSUlJpqychXEtPvbuNbqZXnlFP+8Kfvr3h6r8wVOJo1ANGtB29QcEkcvBWrewefxKurOSpdm3uvPXrw+VKnkCnNhYo6ssIMCzMGG9evpnNWlyxY99SaR+6IgPHfGhIz50zOxDZnsVgsz2KptERXnG8Didxp5Z+fnGgoPBuSfZ88Qkyk/9iAqcBWBvaEdGZL7FoP/2oOPNFlq3NtYCevVVeOkluO8+Y32gtDRjarr35/z2m5HOyYFy5TzXVq6E228vpgILgiCYDJntVUZwOp0cPnzYlJF5YVyLD9d4HDDW3QHYF3OK13Pf4CD1qTZ1PBU4yxY6cGDyYvreEM1y7qBxE4t7u4m0NM92FG2Nni9uuAGCgjz39l6/JyjI2I7CxdUObL4YUj90xIeO+NARHzpm9iHBj49j5j7ZwrgcH598Al99pZ9zOPTFC+M3ZMFbb9G4ZwRv8BYhnIbWrRnZYAE3EcOqoN4kHbAARjBTpQoEBhrv/eUX4+gKfiwWfbVm13gfF+XLe9Le21YUBVI/dMSHjvjQER86ZvYh3V6FIN1epZdDhzzbRMTGetbbSUkxZl4Fc4YRfMzYchMpn50OwE5aEtPnnwz96V7uHWBl/nzo3NnYbb1tW89ssAYNjAUKXRw/7glmevSAFSuM9Pz5xvghF/PmGV1kt92mb5chCIIgFC3S7VVGcDgc7N+/35TLjxeGw+EgMXE/MTEO0tIuvO69HcW0aZ50ctI5XmQiB6nPeF43Ap9mzXiz2Wyi2IFt0ACwWt0tOBs3GsfevT338N5pvVo1zzR20HdeL9jyc++9EBMD3313ZWW9HKR+6IgPHfGhIz50zOxDgh8fRylFRkYG0kBnoJTihx8sdOxoo1kzvSUGPFPNAfbswVi++YMPaN63ARMZRRhpJNKIF6vPwLljJ++fuB+F1d2FVXCzUe99tby7rNq2Nbq7XLzyihEcNWtW+C7sN97oWe25KJH6oSM+dMSHjvjQMbMPWeTQx/Hz8+NG1wI0An5+fhw7ZuwAevIk/Oc/8OmnnuuuWVYB5NJx6xfQ6N9w4gRBwAHq81XdN3j7yMOQ5sdTB4xxQIGB0Ly58T7vdXkaNNCnpnu3/LiCJRf16xsbl/r5eVZwLg6kfuiIDx3xoSM+dMzsQ1p+fByHw8HevXtN2Sw5cSJUqGDsi+XC4XCwdetZ9+vVqz3X8vNhxeJcnuYzEmnMvzOHw4kTOGvV4Sn+R1MSaP7OY9gC/HA4YPFi432RkZ59tVzjheDCFpxLBT9gTGkv7o1JzVw/CkN86IgPHfGhY2YfEvyUArKzs0v6EUqEUaOMRQOfflo/v39/gDudlHR+X67sbPY/9xFbTzXgM/5OXY5ynHBOjP6EJR8n8jlPUr+xPw884Gndcc3a8h6j066dJ4C58079c++918jbtKkxwNlXMGv9uBjiQ0d86IgPHbP6kG4vH8dms9G2sGaGMs7hw550UhIoZYyxSUuzkZ7u6VfyyztL1rgpVP7iPzT//XcAMirU5tMKr/BWyt/4qUsQa5Ybebt0MY4REcY9ly0zXrdo4fksmw327YNvv4Vnn9WfqUGDC3d5L2nMWj8uhvjQER864kPHzD6k5cfHcTgc7Ny503TNkps3e9KZmcYUdoCYGMNDu8ZZ/KfqBA4RQeW3X4Lff+ewpR7DmELSkv2sjhxOLkEkJxubh4Ix1Rwu3HLCNd7HRUQEvP46BAcXebGKHLPWj4shPnTEh4740DGzDwl+BJ/EtX+WC9fU810bMhnDW6w5HMFLaa8RRhqZYQ2JfWYqjVQia5oOo33nQPc09KQkY70fgFtvNY4Fgx/vlh9BEASh7CPdXj6OzWYjsuDCMWWII0dg7FhjXI/3zubbtxvHgADIy4PEjX/ArvcZMekTgsmCPEip1JRRp0bT4MnBOCx+2DFadywWzxo8K1aA3W6sy+MKeryDn6CgwqemlxbKev24UsSHjvjQER86ZvYhLT8+jsPhIC4ursw2S779Nnz9tbGicnq65/yuXcbxwa4nmMQLvPbfCBg/nmB7FvFEsnvMN0x/aRffMISDR/3YscPI36qVcXQFPxs2GMfmzT3r8ngHP82aFe/U9KKmrNePK0V86IgPHfGhY2YfEvyUAsp5bwteCjlyxJhC/vrr+nmHA2bN8ryOiTGO2dlgPXqIT/g7n6+ozwu8T6DjHPmtO9Cf+bRhO7VeeoC69W3u+7sGIkdFGUfv1ZfBCHJceAc/ZeGPntJeP4oa8aEjPnTEh45ZfUjw4+PYbDaaNWuGrRQ3T4webQxYHj/emLXl4sABOH3a8zohAdizh5zBj5NIY/7OZ/g58ljHLfy9wRKW/l8MC+lP0+Y2QkNt7iBm507PgOiCLT8uvIOf2rU96aeeKqJClhBloX4UJeJDR3zoiA8dM/uQ4MfHsdvtbNmyBbvdXtKP8qccPAjHjl143rXqMhgBjwvvfbhuYjNdPrgXWrSg8oLp+GNnU8gd7Pt8DbexjvnZd7J1m9FvFRGRht1udwc/J08ax1q1jN3X4cLgx3tGl78/rFwJCxd6BkGXVkpT/SgOxIeO+NARHzpm9iHBj49jsVioXLkyFu+NpHyQY8eMVpeoKDi/3A5gtPTs3+957b1ac/wORU9+ZSW3s5mbaXNoPlgsrKp8HzexmV9fWEr5Xsb89D/+8Oyu3q6dwmKxULOmsZ2EC1erD1y65Qfg9tvh7ruvvry+QmmpH8WF+NARHzriQ8fMPiT48XFsNhuNGjXy+WbJjz4yVmPOyIAPP/ScT042xvC4OHAAY7DPd9/x8Hvt+JVe3M5q8vBnTsjjZG/dTfdTc9jCTfztb8YsLTBmbLmmu3ftGobNZsNm07uw2rTxpCtU0J/Pe8+uskRpqR/FhfjQER864kPHzD4k+PFx7HY7Gzdu9PlmSe8WHe/urMRETzqQHOot+a+xP8QDD9AgaztnCGZPr5E0JInH1ZfscjRDKaha1dhFPSDAEwD98YdxzMqKdfvwHrxccH++wEDjWKUKWMtoTS8t9aO4EB864kNHfOiY2UcZ/ZVQdrBardSqVQurj//23rfPk05K8qT37oUQMnmZdzhEBA+texqSksgPvYE3+Cctgw9Tc9Z7HKMOp09DdLTxvlatPFPTmzb13C8oSNG2bZjbh/dGpB066M80fjzcdBOsX1+EBfUxSkv9KC7Eh4740BEfOmb2IYsc+jhWq5V6BZck9jHOnIETJzyvk5LA6QTLieNUGv8RR5hCKFkAJPvVoebEF/nnob/x9gfB3N8XKlWCihWNmV+rVhn38F51uWlTWLfOSDdubKF+fY+PF1+EtDRjynrduvpzjRxp/JRlSkP9KE7Eh4740BEfOmb2Yb5wr5Rht9tZu3ZtkTdL7ttnDPp17Xvlzdy5xqKDroUGXZw5A+PGwRtvQH6+53xCgnGsVMlYMLBR7k6y738MZ0R97j/8LqFkkVWnBY/wFc0DklDPPc+shcbGWQMHGu8NDzeOrpYf7xYd75afyEin5iMyEn76yWjlMSPXq36UVsSHjvjQER86ZvYhLT8+jtVqpWHDhkXeLPnoo7Bpk7HTuffaOwCDBxtbSnTrps/cmjYN/vUvI+3vb2xLAa5NSBVPNlxF713/4XbHEvjRuLaWW9l2+0s8/XNfZgRb4ZzRunPgAJQrB717G/lq1TKCqJQU47V3K473dPQWLbguPkor16t+lFbEh4740BEfOmb2Yb4SlzKuV5+s99o7ubmedEqKEfgApKYaM7hcuFZRBpgy5XzQZLfDrFnE0oF3t3bn9pwlOLByrNNAnmy1iS6sJfzpfgSVt1K9uvHeOXOM4623enZOd7X8uLjYQOY2bczbR10YZu6zLwzxoSM+dMSHjpl9mK/EpQy73c7KlSuvulny8GE9gAEjuPHutvKenfXrr3reI0c86b17PemsE6c58fIH0KgRf1//IO3ZhiOwHL80eJYm7GPe4B+Yd6Ij4Om2crXmLFtmHL3X3rlU8GO1Gt1hkyfDnXdem4+yxrXWj7KG+NARHzriQ8fMPnwq+Pnss8+IiooiJCSEkJAQOnXqxC+//AJAfn4+r7zyCq1atSI4OJjw8HAeeeQRTniPtAVyc3MZMWIEVatWJTg4mH79+nGssGWHSwlWq5XIyMirisxjYqBRI7jrLr1r6/Bho8HGhbee87rduIIfpWDPHqjDET4KHMUxalNr4kg4fJhUwhjLv/g95ghL+k7mAA2Jj/esvNyokXF0BTSu6e9Nmng+xzv4CQnxTG93cfPN8OyzYLNdvY+yyLXUj7KI+NARHzriQ8fMPnyqxLVr12bChAnExsYSGxtLt27d6N+/P7t27eLcuXNs27aNsWPHsm3bNubOncu+ffvo16+fdo9//OMfzJs3j9mzZ7N+/XrOnDlD3759S+2utVarlWrVql20cjqd8MAD8MgjF47deecdI8hZswZWr/acP3hQz+cKfux2WLrUSLu2iTh82Djunh7DR2mDOUADRuROJJQsTlZrxtHRU6jHYSZXGkvNVlXdQYxr1ladOp6urYKzsS4W/ERFeaa5X6kPsyE+dMSHjvjQER86pvahfJzKlSurL774otBrMTExClCHDx9WSil16tQp5e/vr2bPnu3Oc/z4cWW1WtWSJUsu+zMzMzMVoDIzM6/t4YuAvLw8tWTJEpWcnKf27Lnw+t69Shlhj1IJCZ7zDodSlSp5ro0d67k2ZYrnPCj16qvG+Y0bjdeVKyv11FNKWbGrmQPmKPWXv2hvSKjTXfVmkXr5JYf66ivj9G23GfeYMUO/d/funs/98EP92qFDnmsbNnjOP/vsn/vIy8u7cpllEPGhIz50xIeO+NApiz4u9/e3z4Z7DoeD2bNnc/bsWTp16lRonszMTCwWC5UqVQJg69at5Ofn07NnT3ee8PBwIiMj2ejaG6EQcnNzycrK0n5cz+A6Fpa22+1a2ul0XjKdn5+vpdX5phpXWil1Qdpms9GhQwcGDrTRogWsX+8k//yAHafTyY4dnhat1asd7vN79tg5dcpTxu3bPc9esOXn6FEnDofD3eXVt0smA5M/Zh9NeHDOANiwgXyLP9N5lPlvbueHYb/yC31ITbPy22/GZ0ZFGeUID9ebn5o08ZSpbl3PtaAgRY0annJERuZz003Gtf79PeVw9UW70jabjfbt27vdXey7Ke7vCdDSTqf+PRUsR8G0w+HQ0pdbJpvNRrt27dx785SFMl3L92Sz2Wjbti1Wq7XMlOlavieLxUK7du2w2WxlpkzX8j0BtG/fHpvNVmbKdC3fk1KKDh06YLPZykyZLnf8ks8FP/Hx8VSoUIHAwECefvpp5s2bRwvvFe/Ok5OTw6uvvsqDDz5ISEgIACkpKQQEBFC5cmUtb/Xq1UlxzaEuhPHjxxMaGur+qXN+I6id50cC79mzhz179gCwY8cOEs8PWomLi+Pg+UgiJiaGo0ePArBx40aSk5MBWLt2LWlpaQCsXLmSU+cjkqVLl3L69GkAFi9eTE5ODna7ncWLF2O328nJyWHx4sVYrVbsdn82bLCiFLz8soOVK1cCkJaWxuLFh93lWLgwFYCjR48ye7Ye4WzfDomJiezYscO9fk9U1DkAEhLOGtcWHGQiL/L5L3W446fnaMgBMm1VUK+Ppnm5/TzOdCL6tyYjw1jO+Y8/YPXqjPP3MspUqZI+urphQ6e7TNWr52rnly83+thOnTpFdPRKNm2CY8dSsdnWAJCcnOwOWo8ePUpMTAxWq5VTp07x2/npaq4ylfT3BHD69GmWLvWUyft7Wnt+QaXCygRw8OBB4uLirrhMVquVxMREjh8/XmbKdC3fk9VqJTo6mry8vDJTpmv5ntLT04mPj8dqtZaZMl3L95SQkEBKSgpWq7XMlOlavqf169fjcDiwWq1lpkwbNmzgsri6hqXrR25urkpMTFRbtmxRr776qqpataratWuXlicvL0/1799ftW3bVmvamjlzpgoICLjgnj169FDDhg276Gfm5OSozMxM98/Ro0cVoNLT05VSStntdmW32y9I5+fna2mHw3HJdF5enpZ2Op1a2ul0XpDOy8tTkyatdXcJ1a3rdDdROhwOde+9Dve1zp2d7vOjRhnn77vPqUApi0Wp3Fy7ys+3q6pVjfzvvONQ4FSDa61W9nvuVXas7r6nc3WbqGF8pprWOePuWgsIcKrcXKXmzrUrUKptW6UqVzbuv2mTUY6sLKfWtTV3rqdMaWmea/376+XwTufn5180nZeXp3766SeVnZ19ye+muL8npZSWvpIyuZ7XO325ZXL5yMnJKTNlupbvyeUjNze3zJTpWr6nnJwc9dNPP7nvWxbKdC3fU3Z2tttHWSnTtXxP586dc/soK2U6efLkZXV7+VzwU5Du3burp556yv06Ly9P3XPPPSoqKkqlpaVpeVesWKEFLS6ioqLUG2+8cdmf6UtjfpxOp/roo3PuoMFqVSo313O9Th1PoHHDDZ7z/fsb595/3wh8QKmUFKWWLTPSIYE56sSEr9RW2moDcZZaeyrHz4vVsSNG8GSzecbq3H67cW/X2CDXT7VqSp2vv0oppUJCPNdiY73LotTNNytVq5ZScXFX7yMzM9P9D9PsiA8d8aEjPnTEh05Z9FHqx/y4UEqRe34Vvvz8fAYNGkRiYiLLly/nhhtu0PK2b98ef39/lrkWksFobtu5cyedO3cu1ue+GpQy9qnyxmKxcPx4Ofdrp9MzAyslBc63+gHG1HLXzueuNXkiI40d0sFYtHDahN8Zy784aqtHzVcfpR1xZBNEQpenaMlOXo76FetdvalZy4q/Pzgc8O23xvu7dzeOtWvrz9inD/h5rRXuPU3de4aXxWJsMnr4MLRpc/leCvoICQlxj3ExO+JDR3zoiA8d8aFjZh8+Ffy8/vrrrFu3jkOHDhEfH8/o0aNZvXo1Dz30EHa7nYEDBxIbG8vMmTNxOBykpKSQkpJC3vkliUNDQ3niiSd48cUXWbFiBXFxcTz88MO0atWKHj16lHDp/pxXX4WwMBgzxnMuPz+fdeuOa/kOHDCOW7YYxxYtjO0hAA4dMqauJyQYwUZUFFQLU3RiI2HPP8i0FXX4F+MIOfc7hIfzdvC/qc0x/q/Of9lNS/eChFYr1KhhpI3tK4y1dsAIfs6PMQegcWO9HN7T1l2Blwubzfi5WvLz81mwYIF7UJ3ZER864kNHfOiIDx1T+yiehqjLY+jQoapevXoqICBAhYWFqe7du6ulS5cqpZQ6ePCgAgr9WbVqlfse2dnZavjw4apKlSqqXLlyqm/fvurIkSNX9Bwl0e2Vn69UYKCnu+j8kBbldDpV69YOrZvpf/8zro0da7x+9FGlOnZ0jbFRavJkI93t5rNKffGF2lehjdZPFU1HlTPtW6Xy8lS7dsbpGjWMo3fv4E036d1bf/zhuda1q+f8zJl6WX780TgfFlb0npxOpzp37lyZaqa9FsSHjvjQER864kOnLPq43N/fPrWx6dSpUy96LSIiwj317lIEBQXx8ccf8/HHHxfloxUZ779v7Jr+5puebiQwWnG899g6dsxYGdnphIMHjSbJm24yVm12dW1t2mQcb7zR2HF982bjfQeW7mcin/H336bB3zJoDGQTxNpag3n9+LOca9aePY8Z761dG7Zt82wo6r2DuncLTni43orToYNn4cSICL2MAwbAggUXtggVFX5+PlVtSxzxoSM+dMSHjvjQMasPn+r2KuucPQsvvGCMexk/Xr92frafG9dYnk2bHGRlWahQQeEatpSaauzPtX698fq226BOuIM+LOKOD/rw/s+NeZH3KJedAfXrs/CWd6nNMXqf+JJttKdVK8/nFBy/4x381KzpSbu6vFwMGuRJe+/D5aJfP2jevHAP14L3dEtBfBREfOiIDx3xoWNmH+YM+UoI7z20YmONVh3XquLeu6yDJ/iZN88YIHP33cZWEWAEP5s3Q3Y2NL4hnZZLvmTczE+pxEE4Px7oF3pxy+zhVBzYixOf20hfj9FJCLRs6fmcgsGP95YT3sHPrbfq+Tp0gOeeMzq+Cm5Kej3x8/OjT58+pv1rpSDiQ0d86IgPHfGhY2Yf5itxCeI9Mysz09gotGVLoxtr9mzjfPnycO6ckVcpmDPHOD9ggBHsgBH87P5mG1OZzMOnZmF9OYdKQAaV+JKhfMYz+DVtxN77jfwF14i8WPBTvz5UrOh57d2ic/fd+j0sFvjwwys1UDTY7XZT/mO9GOJDR3zoiA8d8aFjVh/S7VWMeAc/AK4dN378EbKyjBaUZ54xzh05YgRHhw5ZCAiw06OHneqVcnmIb5i0sRPD/teeoUwjwJEDbdqQ+PLn1OI4LzGJJBrhPbPfO9gp+No7+CnYTTVggDE2adMmaNjwmopeZNjtdpYuXWrKZtrCEB864kNHfOiIDx0z+zBfuFeCeHd7AURHw5NPeqaSP/GEZ12co0dh3TojfU/7ZELfnULXzz7nDv6AbMjDnx/4K51mPEuDhzrhf9hC9ruee3sHPwWWQ6JRI0+6dWtPul07PV9wMIwbd+XlvJ74+/vTv3//kn4Mn0F86IgPHfGhIz50zOxDWn6KEVfLT4cOxjE62ji6gp+bbvIKfo4o0n9YwRzuY9amCPj3v/HP+INj1GIMb1GHozzmN5M693cGi+WCcTcF13T07s7y9/ekq1SBtWvh4Yfh6aeLpJjXFaUUWVlZlzXzzwyIDx3xoSM+dMSHjpl9SPBTjPTsCcOHw0svGa/37jUWLHStxtyxI9SrmM7zfMCPe1rw2ooe3Mc8rMqJs2tXnD/MoYn/Id5mDKlUp3FjTyATEKB/VrNm+uuxY41jwbE7YAxmnjHDs1CiL2O321m3bp0pm2kLQ3zoiA8d8aEjPnTM7MOizBjy/QlZWVmEhoaSmZnp3jG+qGnSBBITjanv772n+GvNDXzf43+o77/Hcn7Bn9NUYAaP8OjmvxN8kzFQp0EDOL+pLQMGGOOFXNSsaazXc9dd8PPP+uc5nbB4MfzlL1Bg03tBEARBKBNc7u9vafkpIVq2hEpkEDz1I+JpxffJRvOLJTeXnbbWPMOn1OI4U1pNJrdRTZxOJ+CZ7g4XzuKaOdMIpmbNuvDzrFbo27f0Bz5Op5P09HS3D7MjPnTEh4740BEfOmb2IcFPcaMUREfz6t7HOEE4/8p8nkh2kedfHoYOhc2bGdUjjik8w2lCaNBAsWXLFhwOB6AHPwVnZ3XrBpMm6eN7yhoOh0PzYXbEh4740BEfOuJDx8w+pNurEK5bt9fUqcbiOPHx7lM7aMV/GcbtXzzMwCdCAWN8zv/9n3H9xRdh4kTPLd5/32jdAdi+XZ+tJQiCIAhmRrq9fJFNm4zAp1w5DnR5jE5spDW/8SnPUi8q1J3NezXlWrWcpKamupslhw0zuswaNrxwULMZcDp1H2ZHfOiIDx3xoSM+dMzsQ4Kf4mTECPjoIzh+nOS3p7GJToAFi0Vfe6dbN0+6QQPFzp073ZWzfHljI9KEBAgMLN7H9wWcTqfmw+yIDx3xoSM+dMSHjpl9SLdXIRTHbK+cHLjzTmObi2eeMVp0vNm0yVgBeuRIYysJQRAEQRAujXR7+ThBQbBmjTFup2DgA8Yu6i+8AEo5OX78uCkj88JwOsWHN+JDR3zoiA8d8aFjZh8S/Pg4TqeTpKQkU1bOwhAfOuJDR3zoiA8d8aFjZh/S7VUIxdHtJQiCIAhC0SLdXmUEp9PJ4cOHTRmZF4b40BEfOuJDR3zoiA8dM/uQ4MfHMXOfbGGIDx3xoSM+dMSHjvjQMbMP6fYqBOn2EgRBEITSh3R7lREcDgf79+835fLjhSE+dMSHjvjQER864kPHzD4k+PFxlFJkZGQgDXQG4kNHfOiIDx3xoSM+dMzsQ7q9CkG6vQRBEASh9CHdXmUEh8PB3r17TdksWRjiQ0d86IgPHfGhIz50zOxDgp9SQHZ2dkk/gk8hPnTEh4740BEfOuJDx6w+pNurEKTbSxAEQRBKH9LtVUZwOBzs3LnTlM2ShSE+dMSHjvjQER864kPHzD4k+BEEQRAEwVRIt1chSLeXIAiCIJQ+Lvf3t18xPlOpwRUPZmVllfCTeJolIyMjsdlsJf04JY740BEfOuJDR3zoiA+dsujD9Xv7z9p1JPgphNOnTwNQp06dEn4SQRAEQRCulNOnTxMaGnrR69LtVQhOp5MTJ05QsWJFLBZLiT5LVlYWderU4ejRo9IFh/goiPjQER864kNHfOiURR9KKU6fPk14eDhW68WHNUvLTyFYrVZq165d0o+hERISUmYqZ1EgPnTEh4740BEfOuJDp6z5uFSLjwuZ7SUIgiAIgqmQ4EcQBEEQBFMhwY+PExgYyLhx4wgMDCzpR/EJxIeO+NARHzriQ0d86JjZhwx4FgRBEATBVEjLjyAIgiAIpkKCH0EQBEEQTIUEP4IgCIIgmAoJfgRBEARBMBUS/BQDa9eu5e677yY8PByLxcL8+fO167///juPPfYY4eHhlC9fnl69epGYmHjBfaKjo+nWrRvBwcFUqlSJrl27kp2d7b6ekZHBkCFDCA0NJTQ0lCFDhnDq1KnrXLor51p9HDp0CIvFUujPDz/84M5nFh8AKSkpDBkyhBo1ahAcHEy7du348ccftTxm8pGUlMS9995LWFgYISEhDBo0iN9//13LUxp8jB8/nhtvvJGKFStSrVo17rnnHhISErQ8SinefPNNwsPDKVeuHF27dmXXrl1antzcXEaMGEHVqlUJDg6mX79+HDt2TMtjJh//+9//6Nq1KyEhIVgslkLLaRYf6enpjBgxgqZNm1K+fHnq1q3Lc889R2Zmpnaf0uDjSpDgpxg4e/YsrVu3ZvLkyRdcU0pxzz33cODAARYsWEBcXBz16tWjR48enD171p0vOjqaXr160bNnT2JiYtiyZQvDhw/Xlu9+8MEH2b59O0uWLGHJkiVs376dIUOGFEsZr4Rr9VGnTh2Sk5O1n3/+858EBwfTu3dv973M4gNgyJAhJCQksHDhQuLj47nvvvu4//77iYuLc+cxi4+zZ8/Ss2dPLBYLK1euZMOGDeTl5XH33XfjdDrd9yoNPtasWcOzzz7Lpk2bWLZsGXa7nZ49e2rf/bvvvst7773H5MmT2bJlCzVq1OCOO+5w71EI8I9//IN58+Yxe/Zs1q9fz5kzZ+jbty8Oh8Odx0w+zp07R69evXj99dcv+llm8XHixAlOnDjBxIkTiY+PZ/r06SxZsoQnnnhC+6zS4OOKUEKxAqh58+a5XyckJChA7dy5033ObrerKlWqqM8//9x9rmPHjmrMmDEXve/u3bsVoDZt2uQ+Fx0drQC1d+/eoi1EEXK1PgrSpk0bNXToUPdrs/kIDg5WX3/9tXavKlWqqC+++EIpZS4fv/76q7JarSozM9OdJz09XQFq2bJlSqnS6yM1NVUBas2aNUoppZxOp6pRo4aaMGGCO09OTo4KDQ1VU6ZMUUopderUKeXv769mz57tznP8+HFltVrVkiVLlFLm8uHNqlWrFKAyMjK082b14eL7779XAQEBKj8/XylVen1cCmn5KWFyc3MBCAoKcp+z2WwEBASwfv16AFJTU9m8eTPVqlWjc+fOVK9enS5durivg9EyFBoaSseOHd3nbr75ZkJDQ9m4cWMxlebauRwfBdm6dSvbt2/X/lIxm49bbrmF7777jvT0dJxOJ7NnzyY3N5euXbsC5vKRm5uLxWLRFm4LCgrCarW685RWH66uiCpVqgBw8OBBUlJS6NmzpztPYGAgXbp0cZdj69at5Ofna3nCw8OJjIx05zGTj8vB7D4yMzMJCQnBz8/Y/rO0+rgUEvyUMM2aNaNevXq89tprZGRkkJeXx4QJE0hJSSE5ORmAAwcOAPDmm2/y5JNPsmTJEtq1a0f37t3dYx1SUlKoVq3aBfevVq0aKSkpxVega+RyfBRk6tSpNG/enM6dO7vPmc3Hd999h91u54YbbiAwMJBhw4Yxb948GjZsCJjLx80330xwcDCvvPIK586d4+zZs4waNQqn0+nOUxp9KKV44YUXuOWWW4iMjARwP2v16tW1vNWrV3dfS0lJISAggMqVK18yj1l8XA5m9nHy5Eneeusthg0b5j5XGn38GRL8lDD+/v7MmTOHffv2UaVKFcqXL8/q1avp3bs3NpsNwD1OYdiwYTz++OO0bduW999/n6ZNm/Lll1+672WxWC64v1Kq0PO+yuX48CY7O5tvv/32gv5pMJePMWPGkJGRwfLly4mNjeWFF17gr3/9K/Hx8e48ZvERFhbGDz/8wE8//USFChUIDQ0lMzOTdu3aac5Km4/hw4ezY8cOZs2adcG1gs98OeUomMfsPv7sHld7n+KiKHxkZWVx11130aJFC8aNG3fJe1zqPqUBv5J+AAHat2/P9u3byczMJC8vj7CwMDp27EiHDh0AqFmzJgAtWrTQ3te8eXOOHDkCQI0aNS6YzQLwxx9/XBD1+zp/5sObH3/8kXPnzvHII49o583kIykpicmTJ7Nz505atmwJQOvWrVm3bh2ffPIJU6ZMMZUPgJ49e5KUlERaWhp+fn5UqlSJGjVqUL9+faD01Y8RI0awcOFC1q5dS+3atd3na9SoARh/mbv+nwCjq9xVjho1apCXl0dGRobW+pOamupuLTWTj8vBjD5Onz5Nr169qFChAvPmzcPf31+7T2nycTlIy48PERoaSlhYGImJicTGxtK/f38AIiIiCA8Pv2AK4759+6hXrx4AnTp1IjMzk5iYGPf1zZs3k5mZqXUHlSYu5sObqVOn0q9fP8LCwrTzZvJx7tw5AG3mHxhjYVythmby4U3VqlWpVKkSK1euJDU1lX79+gGlx4dSiuHDhzN37lxWrlzpDt5c1K9fnxo1arBs2TL3uby8PNasWeMuR/v27fH399fyJCcns3PnTnceM/m4HMzmIysri549exIQEMDChQu1MXVQenxcEcU+xNqEnD59WsXFxam4uDgFqPfee0/FxcWpw4cPK6WMkfWrVq1SSUlJav78+apevXrqvvvu0+7x/vvvq5CQEPXDDz+oxMRENWbMGBUUFKT279/vztOrVy8VFRWloqOjVXR0tGrVqpXq27dvsZb1cigKH0oplZiYqCwWi/rll18K/Ryz+MjLy1ONGjVSt956q9q8ebPav3+/mjhxorJYLGrRokXufGbxoZRSX375pYqOjlb79+9XM2bMUFWqVFEvvPCClqc0+HjmmWdUaGioWr16tUpOTnb/nDt3zp1nwoQJKjQ0VM2dO1fFx8erwYMHq5o1a6qsrCx3nqefflrVrl1bLV++XG3btk1169ZNtW7dWtntdnceM/lITk5WcXFx6vPPP1eAWrt2rYqLi1MnT5505zGLj6ysLNWxY0fVqlUrtX//fu0+pa1+XAkS/BQDrumUBX8effRRpZRSH374oapdu7by9/dXdevWVWPGjFG5ubkX3Gf8+PGqdu3aqnz58qpTp05q3bp12vWTJ0+qhx56SFWsWFFVrFhRPfTQQxdM4fQFisrHa6+9pmrXrq0cDkehn2MmH/v27VP33XefqlatmipfvryKioq6YOq7mXy88sorqnr16srf3181btxYTZo0STmdTi1PafBRmAdATZs2zZ3H6XSqcePGqRo1aqjAwEB12223qfj4eO0+2dnZavjw4apKlSqqXLlyqm/fvurIkSNaHjP5GDdu3J/exyw+LvbvDVAHDx505ysNPq4Ei1JKFWVLkiAIgiAIgi8jY34EQRAEQTAVEvwIgiAIgmAqJPgRBEEQBMFUSPAjCIIgCIKpkOBHEARBEARTIcGPIAiCIAimQoIfQRAEQRBMhQQ/giAIhfDhhx8SHR1d0o8hCMJ1QIIfQRCEArz33nvMnTuXdu3alfSjCIJwHZDgRxCEUsHGjRux2Wz06tXrun7Opk2bmDFjBgsWLCAwMPC6fpYgCCWDbG8hCEKp4G9/+xsVKlTgiy++YPfu3dStW7ekH0kQhFKKtPwIguDznD17lu+//55nnnmGvn37Mn36dPe11atXY7FYWLFiBR06dKB8+fJ07tyZhIQEd54333yTNm3aMGPGDCIiIggNDeWBBx7g9OnT7jxKKd59910aNGhAuXLlaN26NT/++KP2HLt376ZPnz5UqFCB6tWrM2TIENLS0q57+QVBKFok+BEEwef57rvvaNq0KU2bNuXhhx9m2rRpFGy0Hj16NJMmTSI2NhY/Pz+GDh2qXU9KSmL+/Pn8/PPP/Pzzz6xZs4YJEya4r48ZM4Zp06bx2WefsWvXLkaOHMnDDz/MmjVrAEhOTqZLly60adOG2NhYlixZwu+//86gQYOuvwBBEIqWktxSXhAE4XLo3Lmz+uCDD5RSSuXn56uqVauqZcuWKaWUWrVqlQLU8uXL3fkXLVqkAJWdna2UUmrcuHGqfPnyKisry51n1KhRqmPHjkoppc6cOaOCgoLUxo0btc994okn1ODBg5VSSo0dO1b17NlTu3706FEFqISEhCIusSAI1xO/Eo69BEEQLklCQgIxMTHMnTsXAD8/P+6//36+/PJLevTo4c4XFRXlTtesWROA1NRU99igiIgIKlasqOVJTU0FjO6snJwc7rjjDu2z8/LyaNu2LQBbt25l1apVVKhQ4YJnTEpKokmTJkVRXEEQigEJfgRB8GmmTp2K3W6nVq1a7nNKKfz9/cnIyHCf8/f3d6ctFgsATqez0OuuPK7rruOiRYu0zwHcM76cTid3330377zzzgXP6Aq2BEEoHUjwIwiCz2K32/n666+ZNGkSPXv21K4NGDCAmTNnEhkZec2f06JFCwIDAzly5AhdunQpNE+7du2YM2cOERER+PnJf52CUJqRAc+CIPgsP//8MxkZGTzxxBNERkZqPwMHDmTq1KlF8jkVK1bkpZdeYuTIkXz11VckJSURFxfHJ598wldffQXAs88+S3p6OoMHDyYmJoYDBw6wdOlShg4disPhKJLnEASheJDgRxAEn2Xq1Kn06NGD0NDQC64NGDCA7du3s23btiL5rLfeeos33niD8ePH07x5c+68805++ukn6tevD0B4eDgbNmzA4XBw5513EhkZyfPPP09oaChWq/xXKgilCVnkUBAEQRAEUyF/rgiCIAiCYCok+BEEQRAEwVRI8CMIgiAIgqmQ4EcQBEEQBFMhwY8gCIIgCKZCgh9BEARBEEyFBD+CIAiCIJgKCX4EQRAEQTAVEvwIgiAIgmAqJPgRBEEQBMFUSPAjCIIgCIKp+H/AgCLgjLxv9wAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parametres fittés: a = 54.73, b = 0.0166, c = 258.87\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from scipy.optimize import curve_fit\n", + "\n", + "def exponential_func(t, a, b, c):\n", + " return a * np.exp(b * t) + c\n", + "\n", + "start_year = sorted_data.index.min().year\n", + "sorted_data[\"period_fractional\"] = (sorted_data.index.year - start_year) + (sorted_data.index.month - 1) / 12\n", + "initial_guess = [1, 0.03, 300]\n", + "popt, pcov = curve_fit(exponential_func, sorted_data[\"period_fractional\"], sorted_data[\"CO2\"], p0=initial_guess)\n", + "fitted_values = exponential_func(sorted_data[\"period_fractional\"], *popt)\n", + "plt.plot(sorted_data.index, sorted_data['CO2'], color='blue', label='Concentration mésurée')\n", + "plt.plot(sorted_data.index, fitted_values, color='red', label='Augumentation lente')\n", + "plt.legend()\n", + "plt.ylabel(r\"Concentration en $CO_2$ [ppm]\")\n", + "plt.xlabel(\"Année\")\n", + "plt.grid(linestyle=\":\")\n", + "plt.show()\n", + "print(f\"Parametres fittés: a = {popt[0]:.2f}, b = {popt[1]:.4f}, c = {popt[2]:.2f}\")\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/module3/exo3/exercice.ipynb b/module3/exo3/exercice.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module3/exo3/exercice.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "cells": [], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} - diff --git a/module3/exo3/exercice_R_en.org b/module3/exo3/exercice_R_en.org deleted file mode 100644 index 2b73d64..0000000 --- a/module3/exo3/exercice_R_en.org +++ /dev/null @@ -1,81 +0,0 @@ -#+TITLE: Your title -#+AUTHOR: Your name -#+DATE: Today's date -#+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, R code is included as follows (and is -exxecuted by typing ~C-c C-c~): - -#+begin_src R :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: [1] "Hello world!" - -And now the same but in an R session. This is the most frequent -situation, because R is really an interactive language. With a -session, R's state, i.e. the values of all the variables, remains -persistent from one code block to the next. The code is still executed -using ~C-c C-c~. - -#+begin_src R :results output :session *R* :exports both -summary(cars) -#+end_src - -#+RESULTS: -: speed dist -: Min. : 4.0 Min. : 2.00 -: 1st Qu.:12.0 1st Qu.: 26.00 -: Median :15.0 Median : 36.00 -: Mean :15.4 Mean : 42.98 -: 3rd Qu.:19.0 3rd Qu.: 56.00 -: Max. :25.0 Max. :120.00 - -Finally, an example for graphical output: -#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R* -plot(cars) -#+end_src - -#+RESULTS: -[[file:./cars.png]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cars.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in R by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Quelques explications - -Ceci est un document org-mode avec quelques exemples de code -R. Une fois ouvert dans emacs, ce document peut aisément être -exporté au format HTML, PDF, et Office. Pour plus de détails sur -org-mode vous pouvez consulter https://orgmode.org/guide/. - -Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera -compilé en html. Tout le code contenu sera ré-exécuté, les résultats -récupérés et inclus dans un document final. Si vous ne souhaitez pas -ré-exécuter tout le code à chaque fois, il vous suffit de supprimer -le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce -document. - -Comme nous vous l'avons montré dans la vidéo, on inclut du code -R de la façon suivante (et on l'exécute en faisant ~C-c C-c~): - -#+begin_src R :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: [1] "Hello world!" - -Voici la même chose, mais avec une session R (c'est le cas le -plus courant, R étant vraiment un langage interactif), donc une -persistance d'un bloc à l'autre (et on l'exécute toujours en faisant -~C-c C-c~). - -#+begin_src R :results output :session *R* :exports both -summary(cars) -#+end_src - -#+RESULTS: -: speed dist -: Min. : 4.0 Min. : 2.00 -: 1st Qu.:12.0 1st Qu.: 26.00 -: Median :15.0 Median : 36.00 -: Mean :15.4 Mean : 42.98 -: 3rd Qu.:19.0 3rd Qu.: 56.00 -: Max. :25.0 Max. :120.00 - -Et enfin, voici un exemple de sortie graphique: -#+begin_src R :results output graphics :file "./cars.png" :exports results :width 600 :height 400 :session *R* -plot(cars) -#+end_src - -#+RESULTS: -[[file:./cars.png]] - -Vous remarquerez le paramètre ~:exports results~ qui indique que le code -ne doit pas apparaître dans la version finale du document. Nous vous -recommandons dans le cadre de ce MOOC de ne pas changer ce paramètre -(indiquer ~both~) car l'objectif est que vos analyses de données soient -parfaitement transparentes pour être reproductibles. - -Attention, la figure ainsi générée n'est pas stockée dans le document -org. C'est un fichier ordinaire, ici nommé ~cars.png~. N'oubliez pas -de le committer si vous voulez que votre analyse soit lisible et -compréhensible sur GitLab. - -Enfin, pour les prochains exercices, nous ne vous fournirons pas -forcément de fichier de départ, ça sera à vous de le créer, par -exemple en repartant de ce document et de le commiter vers -gitlab. N'oubliez pas que nous vous fournissons dans les ressources de -ce MOOC une configuration avec un certain nombre de raccourcis -claviers permettant de créer rapidement les blocs de code R (en -faisant ~. - -When you click on the button **Knit**, the document will be compiled in order to re-execute the R code and to include the results into the final document. As we have shown in the video, R code is inserted as follows: - -```{r cars} -summary(cars) -``` - -It is also straightforward to include figures. For example: - -```{r pressure, echo=FALSE} -plot(pressure) -``` - -Note the parameter `echo = FALSE` that indicates that the code will not appear in the final version of the document. We recommend not to use this parameter in the context of this MOOC, because we want your data analyses to be perfectly transparent and reproducible. - -Since the results are not stored in Rmd files, you should generate an HTML or PDF version of your exercises and commit them. Otherwise reading and checking your analysis will be difficult for anyone else but you. - -Now it's your turn! You can delete all this information and replace it by your computational document. diff --git a/module3/exo3/exercice_en.ipynb b/module3/exo3/exercice_en.ipynb deleted file mode 100644 index 0bbbe37..0000000 --- a/module3/exo3/exercice_en.ipynb +++ /dev/null @@ -1,25 +0,0 @@ -{ - "cells": [], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.3" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} - diff --git a/module3/exo3/exercice_fr.Rmd b/module3/exo3/exercice_fr.Rmd deleted file mode 100644 index 7eece5e..0000000 --- a/module3/exo3/exercice_fr.Rmd +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Votre titre" -author: "Votre nom" -date: "La date du jour" -output: html_document ---- - - -```{r setup, include=FALSE} -knitr::opts_chunk$set(echo = TRUE) -``` - -## Quelques explications - -Ceci est un document R markdown que vous pouvez aisément exporter au format HTML, PDF, et MS Word. Pour plus de détails sur R Markdown consultez . - -Lorsque vous cliquerez sur le bouton **Knit** ce document sera compilé afin de ré-exécuter le code R et d'inclure les résultats dans un document final. Comme nous vous l'avons montré dans la vidéo, on inclue du code R de la façon suivante: - -```{r cars} -summary(cars) -``` - -Et on peut aussi aisément inclure des figures. Par exemple: - -```{r pressure, echo=FALSE} -plot(pressure) -``` - -Vous remarquerez le paramètre `echo = FALSE` qui indique que le code ne doit pas apparaître dans la version finale du document. Nous vous recommandons dans le cadre de ce MOOC de ne pas utiliser ce paramètre car l'objectif est que vos analyses de données soient parfaitement transparentes pour être reproductibles. - -Comme les résultats ne sont pas stockés dans les fichiers Rmd, pour faciliter la relecture de vos analyses par d'autres personnes, vous aurez donc intérêt à générer un HTML ou un PDF et à le commiter. - -Maintenant, à vous de jouer! Vous pouvez effacer toutes ces informations et les remplacer par votre document computationnel. diff --git a/module3/exo3/exercice_fr.ipynb b/module3/exo3/exercice_fr.ipynb index 5e68a05..e022db8 100644 --- a/module3/exo3/exercice_fr.ipynb +++ b/module3/exo3/exercice_fr.ipynb @@ -1,116 +1,5706 @@ { "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sujet 1 : Concentration de CO2 dans l'atmosphère depuis 1958" + ] + }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "%matplotlib inline\n", + "import matplotlib.pyplot as plt\n", + "import pandas as pd\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On récupère les données. Elles ont été trouvées dans [ce lien](https://scrippsco2.ucsd.edu/data/atmospheric_co2/primary_mlo_co2_record.html). \n", + "\n", + "C. D. Keeling, S. C. Piper, R. B. Bacastow, M. Wahlen, T. P. Whorf, M. Heimann, and H. A. Meijer, Exchanges of atmospheric CO2 and 13CO2 with the terrestrial biosphere and oceans from 1978 to 2000. I. Global aspects, SIO Reference Series, No. 01-06, Scripps Institution of Oceanography, San Diego, 88 pages, 2001." + ] + }, + { + "cell_type": "code", + "execution_count": 18, "metadata": {}, "outputs": [ { - "name": "stdout", + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDateDateCO2seasonallyfitseasonallyCO2seasonallySta
0adjustedadjusted fitfilledadjusted filledNaN
1Excel[ppm][ppm][ppm][ppm][ppm][ppm]NaN
2195801212001958.0411-99.99-99.99-99.99-99.99-99.99-99.99MLO
3195802212311958.1260-99.99-99.99-99.99-99.99-99.99-99.99MLO
4195803212591958.2027315.71314.43316.20314.91315.71314.43MLO
5195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
6195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
7195806213511958.4548-99.99-99.99317.27315.15317.27315.15MLO
8195807213811958.5370315.87315.20315.86315.22315.87315.20MLO
9195808214121958.6219314.93316.22313.96315.29314.93316.22MLO
10195809214431958.7068313.21316.12312.43315.35313.21316.12MLO
11195810214731958.7890-99.99-99.99312.42315.41312.42315.41MLO
12195811215041958.8740313.33315.21313.60315.46313.33315.21MLO
13195812215341958.9562314.67315.43314.77315.52314.67315.43MLO
14195901215651959.0411315.58315.52315.64315.57315.58315.52MLO
15195902215961959.1260316.49315.84316.30315.64316.49315.84MLO
16195903216241959.2027316.65315.37316.99315.70316.65315.37MLO
17195904216551959.2877317.72315.41318.09315.77317.72315.41MLO
18195905216851959.3699318.29315.46318.68315.85318.29315.46MLO
19195906217161959.4548318.15316.00318.07315.94318.15316.00MLO
20195907217461959.5370316.54315.87316.67316.03316.54315.87MLO
21195908217771959.6219314.80316.09314.80316.13314.80316.09MLO
22195909218081959.7068313.84316.75313.29316.22313.84316.75MLO
23195910218381959.7890313.33316.35313.31316.31313.33316.35MLO
24195911218691959.8740314.81316.69314.53316.40314.81316.69MLO
25195912218991959.9562315.58316.35315.72316.48315.58316.35MLO
26196001219301960.0410316.43316.37316.62316.56316.43316.37MLO
27196002219611960.1257316.98316.33317.30316.64316.98316.33MLO
28196003219901960.2049317.58316.27318.04316.71317.58316.27MLO
29196004220211960.2896319.03316.70319.14316.79319.03316.70MLO
....................................
776202207447572022.5370418.71417.91418.94418.18418.71417.91MLO
777202208447882022.6219416.75418.30416.77418.36416.75418.30MLO
778202209448192022.7068415.42418.91415.04418.55415.42418.91MLO
779202210448492022.7890415.31418.92415.15418.74415.31418.92MLO
780202211448802022.8740417.03419.29416.71418.95417.03419.29MLO
781202212449102022.9562418.46419.38418.25419.15418.46419.38MKO
782202301449412023.0411419.13419.06419.45419.37419.13419.06MKO
783202302449722023.1260420.33419.55420.40419.61420.33419.55MKO
784202303450002023.2027420.51418.97421.39419.83420.51418.97MLO
785202304450312023.2877422.73419.96422.89420.10422.73419.96MLO
786202305450612023.3699423.78420.38423.77420.37423.78420.38MLO
787202306450922023.4548423.39420.81423.23420.66423.39420.81MLO
788202307451222023.5370421.62420.82421.73420.96421.62420.82MLO
789202308451532023.6219419.56421.12419.67421.27419.56421.12MLO
790202309451842023.7068418.06421.56418.06421.58418.06421.56MLO
791202310452142023.7890418.41422.02418.28421.88418.41422.02MLO
792202311452452023.8740420.11422.38419.95422.19420.11422.38MLO
793202312452752023.9562421.65422.57421.58422.48421.65422.57MLO
794202401453062024.0410422.62422.55422.85422.77422.62422.55MLO
795202402453372024.1257424.34423.56423.85423.06424.34423.56MLO
796202403453662024.2049425.22423.65424.91423.31425.22423.65MLO
797202404453972024.2896426.30423.50426.41423.58426.30423.50MLO
798202405454272024.3716426.70423.29427.25423.84426.70423.29MLO
799202406454582024.4563426.63424.06426.65424.11426.63424.06MLO
800202407454882024.5383425.40424.62425.10424.36425.40424.62MLO
801202408455192024.6230422.71424.30423.00424.63422.71424.30MLO
802202409455502024.7077421.60425.12-99.99-99.99421.60425.12MLO
803202410455802024.7896-99.99-99.99-99.99-99.99-99.99-99.99MLO
804202411456112024.8743-99.99-99.99-99.99-99.99-99.99-99.99MLO
805202412456412024.9563-99.99-99.99-99.99-99.99-99.99-99.99MLO
\n", + "

806 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date Date CO2 seasonally fit \\\n", + "0 adjusted \n", + "1 Excel [ppm] [ppm] [ppm] \n", + "2 1958 01 21200 1958.0411 -99.99 -99.99 -99.99 \n", + "3 1958 02 21231 1958.1260 -99.99 -99.99 -99.99 \n", + "4 1958 03 21259 1958.2027 315.71 314.43 316.20 \n", + "5 1958 04 21290 1958.2877 317.45 315.16 317.30 \n", + "6 1958 05 21320 1958.3699 317.51 314.69 317.89 \n", + "7 1958 06 21351 1958.4548 -99.99 -99.99 317.27 \n", + "8 1958 07 21381 1958.5370 315.87 315.20 315.86 \n", + "9 1958 08 21412 1958.6219 314.93 316.22 313.96 \n", + "10 1958 09 21443 1958.7068 313.21 316.12 312.43 \n", + "11 1958 10 21473 1958.7890 -99.99 -99.99 312.42 \n", + "12 1958 11 21504 1958.8740 313.33 315.21 313.60 \n", + "13 1958 12 21534 1958.9562 314.67 315.43 314.77 \n", + "14 1959 01 21565 1959.0411 315.58 315.52 315.64 \n", + "15 1959 02 21596 1959.1260 316.49 315.84 316.30 \n", + "16 1959 03 21624 1959.2027 316.65 315.37 316.99 \n", + "17 1959 04 21655 1959.2877 317.72 315.41 318.09 \n", + "18 1959 05 21685 1959.3699 318.29 315.46 318.68 \n", + "19 1959 06 21716 1959.4548 318.15 316.00 318.07 \n", + "20 1959 07 21746 1959.5370 316.54 315.87 316.67 \n", + "21 1959 08 21777 1959.6219 314.80 316.09 314.80 \n", + "22 1959 09 21808 1959.7068 313.84 316.75 313.29 \n", + "23 1959 10 21838 1959.7890 313.33 316.35 313.31 \n", + "24 1959 11 21869 1959.8740 314.81 316.69 314.53 \n", + "25 1959 12 21899 1959.9562 315.58 316.35 315.72 \n", + "26 1960 01 21930 1960.0410 316.43 316.37 316.62 \n", + "27 1960 02 21961 1960.1257 316.98 316.33 317.30 \n", + "28 1960 03 21990 1960.2049 317.58 316.27 318.04 \n", + "29 1960 04 22021 1960.2896 319.03 316.70 319.14 \n", + ".. ... ... ... ... ... ... ... \n", + "776 2022 07 44757 2022.5370 418.71 417.91 418.94 \n", + "777 2022 08 44788 2022.6219 416.75 418.30 416.77 \n", + "778 2022 09 44819 2022.7068 415.42 418.91 415.04 \n", + "779 2022 10 44849 2022.7890 415.31 418.92 415.15 \n", + "780 2022 11 44880 2022.8740 417.03 419.29 416.71 \n", + "781 2022 12 44910 2022.9562 418.46 419.38 418.25 \n", + "782 2023 01 44941 2023.0411 419.13 419.06 419.45 \n", + "783 2023 02 44972 2023.1260 420.33 419.55 420.40 \n", + "784 2023 03 45000 2023.2027 420.51 418.97 421.39 \n", + "785 2023 04 45031 2023.2877 422.73 419.96 422.89 \n", + "786 2023 05 45061 2023.3699 423.78 420.38 423.77 \n", + "787 2023 06 45092 2023.4548 423.39 420.81 423.23 \n", + "788 2023 07 45122 2023.5370 421.62 420.82 421.73 \n", + "789 2023 08 45153 2023.6219 419.56 421.12 419.67 \n", + "790 2023 09 45184 2023.7068 418.06 421.56 418.06 \n", + "791 2023 10 45214 2023.7890 418.41 422.02 418.28 \n", + "792 2023 11 45245 2023.8740 420.11 422.38 419.95 \n", + "793 2023 12 45275 2023.9562 421.65 422.57 421.58 \n", + "794 2024 01 45306 2024.0410 422.62 422.55 422.85 \n", + "795 2024 02 45337 2024.1257 424.34 423.56 423.85 \n", + "796 2024 03 45366 2024.2049 425.22 423.65 424.91 \n", + "797 2024 04 45397 2024.2896 426.30 423.50 426.41 \n", + "798 2024 05 45427 2024.3716 426.70 423.29 427.25 \n", + "799 2024 06 45458 2024.4563 426.63 424.06 426.65 \n", + "800 2024 07 45488 2024.5383 425.40 424.62 425.10 \n", + "801 2024 08 45519 2024.6230 422.71 424.30 423.00 \n", + "802 2024 09 45550 2024.7077 421.60 425.12 -99.99 \n", + "803 2024 10 45580 2024.7896 -99.99 -99.99 -99.99 \n", + "804 2024 11 45611 2024.8743 -99.99 -99.99 -99.99 \n", + "805 2024 12 45641 2024.9563 -99.99 -99.99 -99.99 \n", + "\n", + " seasonally CO2 seasonally Sta \n", + "0 adjusted fit filled adjusted filled NaN \n", + "1 [ppm] [ppm] [ppm] NaN \n", + "2 -99.99 -99.99 -99.99 MLO \n", + "3 -99.99 -99.99 -99.99 MLO \n", + "4 314.91 315.71 314.43 MLO \n", + "5 314.99 317.45 315.16 MLO \n", + "6 315.07 317.51 314.69 MLO \n", + "7 315.15 317.27 315.15 MLO \n", + "8 315.22 315.87 315.20 MLO \n", + "9 315.29 314.93 316.22 MLO \n", + "10 315.35 313.21 316.12 MLO \n", + "11 315.41 312.42 315.41 MLO \n", + "12 315.46 313.33 315.21 MLO \n", + "13 315.52 314.67 315.43 MLO \n", + "14 315.57 315.58 315.52 MLO \n", + "15 315.64 316.49 315.84 MLO \n", + "16 315.70 316.65 315.37 MLO \n", + "17 315.77 317.72 315.41 MLO \n", + "18 315.85 318.29 315.46 MLO \n", + "19 315.94 318.15 316.00 MLO \n", + "20 316.03 316.54 315.87 MLO \n", + "21 316.13 314.80 316.09 MLO \n", + "22 316.22 313.84 316.75 MLO \n", + "23 316.31 313.33 316.35 MLO \n", + "24 316.40 314.81 316.69 MLO \n", + "25 316.48 315.58 316.35 MLO \n", + "26 316.56 316.43 316.37 MLO \n", + "27 316.64 316.98 316.33 MLO \n", + "28 316.71 317.58 316.27 MLO \n", + "29 316.79 319.03 316.70 MLO \n", + ".. ... ... ... ... \n", + "776 418.18 418.71 417.91 MLO \n", + "777 418.36 416.75 418.30 MLO \n", + "778 418.55 415.42 418.91 MLO \n", + "779 418.74 415.31 418.92 MLO \n", + "780 418.95 417.03 419.29 MLO \n", + "781 419.15 418.46 419.38 MKO \n", + "782 419.37 419.13 419.06 MKO \n", + "783 419.61 420.33 419.55 MKO \n", + "784 419.83 420.51 418.97 MLO \n", + "785 420.10 422.73 419.96 MLO \n", + "786 420.37 423.78 420.38 MLO \n", + "787 420.66 423.39 420.81 MLO \n", + "788 420.96 421.62 420.82 MLO \n", + "789 421.27 419.56 421.12 MLO \n", + "790 421.58 418.06 421.56 MLO \n", + "791 421.88 418.41 422.02 MLO \n", + "792 422.19 420.11 422.38 MLO \n", + "793 422.48 421.65 422.57 MLO \n", + "794 422.77 422.62 422.55 MLO \n", + "795 423.06 424.34 423.56 MLO \n", + "796 423.31 425.22 423.65 MLO \n", + "797 423.58 426.30 423.50 MLO \n", + "798 423.84 426.70 423.29 MLO \n", + "799 424.11 426.63 424.06 MLO \n", + "800 424.36 425.40 424.62 MLO \n", + "801 424.63 422.71 424.30 MLO \n", + "802 -99.99 421.60 425.12 MLO \n", + "803 -99.99 -99.99 -99.99 MLO \n", + "804 -99.99 -99.99 -99.99 MLO \n", + "805 -99.99 -99.99 -99.99 MLO \n", + "\n", + "[806 rows x 11 columns]" + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data_file = 'monthly_in_situ_co2_mlo.csv'\n", + "data = pd.read_csv(data_file, skiprows=61)\n", + "data\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Il y a un problème avec les en têtes. On concatene les deux premieres lignes et enleve celle de l'unité." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledSta
0195801212001958.0411-99.99-99.99-99.99-99.99-99.99-99.99MLO
1195802212311958.1260-99.99-99.99-99.99-99.99-99.99-99.99MLO
2195803212591958.2027315.71314.43316.20314.91315.71314.43MLO
3195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
4195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
5195806213511958.4548-99.99-99.99317.27315.15317.27315.15MLO
6195807213811958.5370315.87315.20315.86315.22315.87315.20MLO
7195808214121958.6219314.93316.22313.96315.29314.93316.22MLO
8195809214431958.7068313.21316.12312.43315.35313.21316.12MLO
9195810214731958.7890-99.99-99.99312.42315.41312.42315.41MLO
10195811215041958.8740313.33315.21313.60315.46313.33315.21MLO
11195812215341958.9562314.67315.43314.77315.52314.67315.43MLO
12195901215651959.0411315.58315.52315.64315.57315.58315.52MLO
13195902215961959.1260316.49315.84316.30315.64316.49315.84MLO
14195903216241959.2027316.65315.37316.99315.70316.65315.37MLO
15195904216551959.2877317.72315.41318.09315.77317.72315.41MLO
16195905216851959.3699318.29315.46318.68315.85318.29315.46MLO
17195906217161959.4548318.15316.00318.07315.94318.15316.00MLO
18195907217461959.5370316.54315.87316.67316.03316.54315.87MLO
19195908217771959.6219314.80316.09314.80316.13314.80316.09MLO
20195909218081959.7068313.84316.75313.29316.22313.84316.75MLO
21195910218381959.7890313.33316.35313.31316.31313.33316.35MLO
22195911218691959.8740314.81316.69314.53316.40314.81316.69MLO
23195912218991959.9562315.58316.35315.72316.48315.58316.35MLO
24196001219301960.0410316.43316.37316.62316.56316.43316.37MLO
25196002219611960.1257316.98316.33317.30316.64316.98316.33MLO
26196003219901960.2049317.58316.27318.04316.71317.58316.27MLO
27196004220211960.2896319.03316.70319.14316.79319.03316.70MLO
28196005220511960.3716320.03317.20319.70316.86320.03317.20MLO
29196006220821960.4563319.59317.45319.04316.93319.59317.45MLO
....................................
774202207447572022.5370418.71417.91418.94418.18418.71417.91MLO
775202208447882022.6219416.75418.30416.77418.36416.75418.30MLO
776202209448192022.7068415.42418.91415.04418.55415.42418.91MLO
777202210448492022.7890415.31418.92415.15418.74415.31418.92MLO
778202211448802022.8740417.03419.29416.71418.95417.03419.29MLO
779202212449102022.9562418.46419.38418.25419.15418.46419.38MKO
780202301449412023.0411419.13419.06419.45419.37419.13419.06MKO
781202302449722023.1260420.33419.55420.40419.61420.33419.55MKO
782202303450002023.2027420.51418.97421.39419.83420.51418.97MLO
783202304450312023.2877422.73419.96422.89420.10422.73419.96MLO
784202305450612023.3699423.78420.38423.77420.37423.78420.38MLO
785202306450922023.4548423.39420.81423.23420.66423.39420.81MLO
786202307451222023.5370421.62420.82421.73420.96421.62420.82MLO
787202308451532023.6219419.56421.12419.67421.27419.56421.12MLO
788202309451842023.7068418.06421.56418.06421.58418.06421.56MLO
789202310452142023.7890418.41422.02418.28421.88418.41422.02MLO
790202311452452023.8740420.11422.38419.95422.19420.11422.38MLO
791202312452752023.9562421.65422.57421.58422.48421.65422.57MLO
792202401453062024.0410422.62422.55422.85422.77422.62422.55MLO
793202402453372024.1257424.34423.56423.85423.06424.34423.56MLO
794202403453662024.2049425.22423.65424.91423.31425.22423.65MLO
795202404453972024.2896426.30423.50426.41423.58426.30423.50MLO
796202405454272024.3716426.70423.29427.25423.84426.70423.29MLO
797202406454582024.4563426.63424.06426.65424.11426.63424.06MLO
798202407454882024.5383425.40424.62425.10424.36425.40424.62MLO
799202408455192024.6230422.71424.30423.00424.63422.71424.30MLO
800202409455502024.7077421.60425.12-99.99-99.99421.60425.12MLO
801202410455802024.7896-99.99-99.99-99.99-99.99-99.99-99.99MLO
802202411456112024.8743-99.99-99.99-99.99-99.99-99.99-99.99MLO
803202412456412024.9563-99.99-99.99-99.99-99.99-99.99-99.99MLO
\n", + "

804 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "0 1958 01 21200 1958.0411 -99.99 -99.99 \n", + "1 1958 02 21231 1958.1260 -99.99 -99.99 \n", + "2 1958 03 21259 1958.2027 315.71 314.43 \n", + "3 1958 04 21290 1958.2877 317.45 315.16 \n", + "4 1958 05 21320 1958.3699 317.51 314.69 \n", + "5 1958 06 21351 1958.4548 -99.99 -99.99 \n", + "6 1958 07 21381 1958.5370 315.87 315.20 \n", + "7 1958 08 21412 1958.6219 314.93 316.22 \n", + "8 1958 09 21443 1958.7068 313.21 316.12 \n", + "9 1958 10 21473 1958.7890 -99.99 -99.99 \n", + "10 1958 11 21504 1958.8740 313.33 315.21 \n", + "11 1958 12 21534 1958.9562 314.67 315.43 \n", + "12 1959 01 21565 1959.0411 315.58 315.52 \n", + "13 1959 02 21596 1959.1260 316.49 315.84 \n", + "14 1959 03 21624 1959.2027 316.65 315.37 \n", + "15 1959 04 21655 1959.2877 317.72 315.41 \n", + "16 1959 05 21685 1959.3699 318.29 315.46 \n", + "17 1959 06 21716 1959.4548 318.15 316.00 \n", + "18 1959 07 21746 1959.5370 316.54 315.87 \n", + "19 1959 08 21777 1959.6219 314.80 316.09 \n", + "20 1959 09 21808 1959.7068 313.84 316.75 \n", + "21 1959 10 21838 1959.7890 313.33 316.35 \n", + "22 1959 11 21869 1959.8740 314.81 316.69 \n", + "23 1959 12 21899 1959.9562 315.58 316.35 \n", + "24 1960 01 21930 1960.0410 316.43 316.37 \n", + "25 1960 02 21961 1960.1257 316.98 316.33 \n", + "26 1960 03 21990 1960.2049 317.58 316.27 \n", + "27 1960 04 22021 1960.2896 319.03 316.70 \n", + "28 1960 05 22051 1960.3716 320.03 317.20 \n", + "29 1960 06 22082 1960.4563 319.59 317.45 \n", + ".. ... ... ... ... ... ... \n", + "774 2022 07 44757 2022.5370 418.71 417.91 \n", + "775 2022 08 44788 2022.6219 416.75 418.30 \n", + "776 2022 09 44819 2022.7068 415.42 418.91 \n", + "777 2022 10 44849 2022.7890 415.31 418.92 \n", + "778 2022 11 44880 2022.8740 417.03 419.29 \n", + "779 2022 12 44910 2022.9562 418.46 419.38 \n", + "780 2023 01 44941 2023.0411 419.13 419.06 \n", + "781 2023 02 44972 2023.1260 420.33 419.55 \n", + "782 2023 03 45000 2023.2027 420.51 418.97 \n", + "783 2023 04 45031 2023.2877 422.73 419.96 \n", + "784 2023 05 45061 2023.3699 423.78 420.38 \n", + "785 2023 06 45092 2023.4548 423.39 420.81 \n", + "786 2023 07 45122 2023.5370 421.62 420.82 \n", + "787 2023 08 45153 2023.6219 419.56 421.12 \n", + "788 2023 09 45184 2023.7068 418.06 421.56 \n", + "789 2023 10 45214 2023.7890 418.41 422.02 \n", + "790 2023 11 45245 2023.8740 420.11 422.38 \n", + "791 2023 12 45275 2023.9562 421.65 422.57 \n", + "792 2024 01 45306 2024.0410 422.62 422.55 \n", + "793 2024 02 45337 2024.1257 424.34 423.56 \n", + "794 2024 03 45366 2024.2049 425.22 423.65 \n", + "795 2024 04 45397 2024.2896 426.30 423.50 \n", + "796 2024 05 45427 2024.3716 426.70 423.29 \n", + "797 2024 06 45458 2024.4563 426.63 424.06 \n", + "798 2024 07 45488 2024.5383 425.40 424.62 \n", + "799 2024 08 45519 2024.6230 422.71 424.30 \n", + "800 2024 09 45550 2024.7077 421.60 425.12 \n", + "801 2024 10 45580 2024.7896 -99.99 -99.99 \n", + "802 2024 11 45611 2024.8743 -99.99 -99.99 \n", + "803 2024 12 45641 2024.9563 -99.99 -99.99 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "0 -99.99 -99.99 -99.99 \n", + "1 -99.99 -99.99 -99.99 \n", + "2 316.20 314.91 315.71 \n", + "3 317.30 314.99 317.45 \n", + "4 317.89 315.07 317.51 \n", + "5 317.27 315.15 317.27 \n", + "6 315.86 315.22 315.87 \n", + "7 313.96 315.29 314.93 \n", + "8 312.43 315.35 313.21 \n", + "9 312.42 315.41 312.42 \n", + "10 313.60 315.46 313.33 \n", + "11 314.77 315.52 314.67 \n", + "12 315.64 315.57 315.58 \n", + "13 316.30 315.64 316.49 \n", + "14 316.99 315.70 316.65 \n", + "15 318.09 315.77 317.72 \n", + "16 318.68 315.85 318.29 \n", + "17 318.07 315.94 318.15 \n", + "18 316.67 316.03 316.54 \n", + "19 314.80 316.13 314.80 \n", + "20 313.29 316.22 313.84 \n", + "21 313.31 316.31 313.33 \n", + "22 314.53 316.40 314.81 \n", + "23 315.72 316.48 315.58 \n", + "24 316.62 316.56 316.43 \n", + "25 317.30 316.64 316.98 \n", + "26 318.04 316.71 317.58 \n", + "27 319.14 316.79 319.03 \n", + "28 319.70 316.86 320.03 \n", + "29 319.04 316.93 319.59 \n", + ".. ... ... ... \n", + "774 418.94 418.18 418.71 \n", + "775 416.77 418.36 416.75 \n", + "776 415.04 418.55 415.42 \n", + "777 415.15 418.74 415.31 \n", + "778 416.71 418.95 417.03 \n", + "779 418.25 419.15 418.46 \n", + "780 419.45 419.37 419.13 \n", + "781 420.40 419.61 420.33 \n", + "782 421.39 419.83 420.51 \n", + "783 422.89 420.10 422.73 \n", + "784 423.77 420.37 423.78 \n", + "785 423.23 420.66 423.39 \n", + "786 421.73 420.96 421.62 \n", + "787 419.67 421.27 419.56 \n", + "788 418.06 421.58 418.06 \n", + "789 418.28 421.88 418.41 \n", + "790 419.95 422.19 420.11 \n", + "791 421.58 422.48 421.65 \n", + "792 422.85 422.77 422.62 \n", + "793 423.85 423.06 424.34 \n", + "794 424.91 423.31 425.22 \n", + "795 426.41 423.58 426.30 \n", + "796 427.25 423.84 426.70 \n", + "797 426.65 424.11 426.63 \n", + "798 425.10 424.36 425.40 \n", + "799 423.00 424.63 422.71 \n", + "800 -99.99 -99.99 421.60 \n", + "801 -99.99 -99.99 -99.99 \n", + "802 -99.99 -99.99 -99.99 \n", + "803 -99.99 -99.99 -99.99 \n", + "\n", + " seasonally_adjusted_filled Sta \n", + "0 -99.99 MLO \n", + "1 -99.99 MLO \n", + "2 314.43 MLO \n", + "3 315.16 MLO \n", + "4 314.69 MLO \n", + "5 315.15 MLO \n", + "6 315.20 MLO \n", + "7 316.22 MLO \n", + "8 316.12 MLO \n", + "9 315.41 MLO \n", + "10 315.21 MLO \n", + "11 315.43 MLO \n", + "12 315.52 MLO \n", + "13 315.84 MLO \n", + "14 315.37 MLO \n", + "15 315.41 MLO \n", + "16 315.46 MLO \n", + "17 316.00 MLO \n", + "18 315.87 MLO \n", + "19 316.09 MLO \n", + "20 316.75 MLO \n", + "21 316.35 MLO \n", + "22 316.69 MLO \n", + "23 316.35 MLO \n", + "24 316.37 MLO \n", + "25 316.33 MLO \n", + "26 316.27 MLO \n", + "27 316.70 MLO \n", + "28 317.20 MLO \n", + "29 317.45 MLO \n", + ".. ... ... \n", + "774 417.91 MLO \n", + "775 418.30 MLO \n", + "776 418.91 MLO \n", + "777 418.92 MLO \n", + "778 419.29 MLO \n", + "779 419.38 MKO \n", + "780 419.06 MKO \n", + "781 419.55 MKO \n", + "782 418.97 MLO \n", + "783 419.96 MLO \n", + "784 420.38 MLO \n", + "785 420.81 MLO \n", + "786 420.82 MLO \n", + "787 421.12 MLO \n", + "788 421.56 MLO \n", + "789 422.02 MLO \n", + "790 422.38 MLO \n", + "791 422.57 MLO \n", + "792 422.55 MLO \n", + "793 423.56 MLO \n", + "794 423.65 MLO \n", + "795 423.50 MLO \n", + "796 423.29 MLO \n", + "797 424.06 MLO \n", + "798 424.62 MLO \n", + "799 424.30 MLO \n", + "800 425.12 MLO \n", + "801 -99.99 MLO \n", + "802 -99.99 MLO \n", + "803 -99.99 MLO \n", + "\n", + "[804 rows x 11 columns]" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "columns_label = ['Yr', 'Mn', 'Date_excel', 'Date', 'CO2', 'seasonally_adjusted',\n", + " 'fit', 'seasonally_adjusted_fit', 'CO2_filled', 'seasonally_adjusted_filled', 'Sta']\n", + "\n", + "data.columns = columns_label\n", + "data = data.drop([0, 1]).reset_index().drop('index',axis=1)\n", + "data\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Les données manquantes dans le fichier de base ont été remplacées par -99.99. Elles ne nous interessent pas. On les enlève de l'analyse." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledSta
2195803212591958.2027315.71314.43316.20314.91315.71314.43MLO
3195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
4195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
6195807213811958.5370315.87315.20315.86315.22315.87315.20MLO
7195808214121958.6219314.93316.22313.96315.29314.93316.22MLO
8195809214431958.7068313.21316.12312.43315.35313.21316.12MLO
10195811215041958.8740313.33315.21313.60315.46313.33315.21MLO
11195812215341958.9562314.67315.43314.77315.52314.67315.43MLO
12195901215651959.0411315.58315.52315.64315.57315.58315.52MLO
13195902215961959.1260316.49315.84316.30315.64316.49315.84MLO
14195903216241959.2027316.65315.37316.99315.70316.65315.37MLO
15195904216551959.2877317.72315.41318.09315.77317.72315.41MLO
16195905216851959.3699318.29315.46318.68315.85318.29315.46MLO
17195906217161959.4548318.15316.00318.07315.94318.15316.00MLO
18195907217461959.5370316.54315.87316.67316.03316.54315.87MLO
19195908217771959.6219314.80316.09314.80316.13314.80316.09MLO
20195909218081959.7068313.84316.75313.29316.22313.84316.75MLO
21195910218381959.7890313.33316.35313.31316.31313.33316.35MLO
22195911218691959.8740314.81316.69314.53316.40314.81316.69MLO
23195912218991959.9562315.58316.35315.72316.48315.58316.35MLO
24196001219301960.0410316.43316.37316.62316.56316.43316.37MLO
25196002219611960.1257316.98316.33317.30316.64316.98316.33MLO
26196003219901960.2049317.58316.27318.04316.71317.58316.27MLO
27196004220211960.2896319.03316.70319.14316.79319.03316.70MLO
28196005220511960.3716320.03317.20319.70316.86320.03317.20MLO
29196006220821960.4563319.59317.45319.04316.93319.59317.45MLO
30196007221121960.5383318.18317.53317.59316.98318.18317.53MLO
31196008221431960.6230315.90317.23315.66317.02315.90317.23MLO
32196009221741960.7077314.17317.10314.10317.05314.17317.10MLO
33196010222041960.7896313.83316.85314.08317.08313.83316.85MLO
....................................
771202204446662022.2877420.01417.25420.47417.69420.01417.25MLO
772202205446962022.3699420.78417.39421.23417.84420.78417.39MLO
773202206447272022.4548420.68418.10420.56418.01420.68418.10MLO
774202207447572022.5370418.71417.91418.94418.18418.71417.91MLO
775202208447882022.6219416.75418.30416.77418.36416.75418.30MLO
776202209448192022.7068415.42418.91415.04418.55415.42418.91MLO
777202210448492022.7890415.31418.92415.15418.74415.31418.92MLO
778202211448802022.8740417.03419.29416.71418.95417.03419.29MLO
779202212449102022.9562418.46419.38418.25419.15418.46419.38MKO
780202301449412023.0411419.13419.06419.45419.37419.13419.06MKO
781202302449722023.1260420.33419.55420.40419.61420.33419.55MKO
782202303450002023.2027420.51418.97421.39419.83420.51418.97MLO
783202304450312023.2877422.73419.96422.89420.10422.73419.96MLO
784202305450612023.3699423.78420.38423.77420.37423.78420.38MLO
785202306450922023.4548423.39420.81423.23420.66423.39420.81MLO
786202307451222023.5370421.62420.82421.73420.96421.62420.82MLO
787202308451532023.6219419.56421.12419.67421.27419.56421.12MLO
788202309451842023.7068418.06421.56418.06421.58418.06421.56MLO
789202310452142023.7890418.41422.02418.28421.88418.41422.02MLO
790202311452452023.8740420.11422.38419.95422.19420.11422.38MLO
791202312452752023.9562421.65422.57421.58422.48421.65422.57MLO
792202401453062024.0410422.62422.55422.85422.77422.62422.55MLO
793202402453372024.1257424.34423.56423.85423.06424.34423.56MLO
794202403453662024.2049425.22423.65424.91423.31425.22423.65MLO
795202404453972024.2896426.30423.50426.41423.58426.30423.50MLO
796202405454272024.3716426.70423.29427.25423.84426.70423.29MLO
797202406454582024.4563426.63424.06426.65424.11426.63424.06MLO
798202407454882024.5383425.40424.62425.10424.36425.40424.62MLO
799202408455192024.6230422.71424.30423.00424.63422.71424.30MLO
800202409455502024.7077421.60425.12-99.99-99.99421.60425.12MLO
\n", + "

794 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "2 1958 03 21259 1958.2027 315.71 314.43 \n", + "3 1958 04 21290 1958.2877 317.45 315.16 \n", + "4 1958 05 21320 1958.3699 317.51 314.69 \n", + "6 1958 07 21381 1958.5370 315.87 315.20 \n", + "7 1958 08 21412 1958.6219 314.93 316.22 \n", + "8 1958 09 21443 1958.7068 313.21 316.12 \n", + "10 1958 11 21504 1958.8740 313.33 315.21 \n", + "11 1958 12 21534 1958.9562 314.67 315.43 \n", + "12 1959 01 21565 1959.0411 315.58 315.52 \n", + "13 1959 02 21596 1959.1260 316.49 315.84 \n", + "14 1959 03 21624 1959.2027 316.65 315.37 \n", + "15 1959 04 21655 1959.2877 317.72 315.41 \n", + "16 1959 05 21685 1959.3699 318.29 315.46 \n", + "17 1959 06 21716 1959.4548 318.15 316.00 \n", + "18 1959 07 21746 1959.5370 316.54 315.87 \n", + "19 1959 08 21777 1959.6219 314.80 316.09 \n", + "20 1959 09 21808 1959.7068 313.84 316.75 \n", + "21 1959 10 21838 1959.7890 313.33 316.35 \n", + "22 1959 11 21869 1959.8740 314.81 316.69 \n", + "23 1959 12 21899 1959.9562 315.58 316.35 \n", + "24 1960 01 21930 1960.0410 316.43 316.37 \n", + "25 1960 02 21961 1960.1257 316.98 316.33 \n", + "26 1960 03 21990 1960.2049 317.58 316.27 \n", + "27 1960 04 22021 1960.2896 319.03 316.70 \n", + "28 1960 05 22051 1960.3716 320.03 317.20 \n", + "29 1960 06 22082 1960.4563 319.59 317.45 \n", + "30 1960 07 22112 1960.5383 318.18 317.53 \n", + "31 1960 08 22143 1960.6230 315.90 317.23 \n", + "32 1960 09 22174 1960.7077 314.17 317.10 \n", + "33 1960 10 22204 1960.7896 313.83 316.85 \n", + ".. ... ... ... ... ... ... \n", + "771 2022 04 44666 2022.2877 420.01 417.25 \n", + "772 2022 05 44696 2022.3699 420.78 417.39 \n", + "773 2022 06 44727 2022.4548 420.68 418.10 \n", + "774 2022 07 44757 2022.5370 418.71 417.91 \n", + "775 2022 08 44788 2022.6219 416.75 418.30 \n", + "776 2022 09 44819 2022.7068 415.42 418.91 \n", + "777 2022 10 44849 2022.7890 415.31 418.92 \n", + "778 2022 11 44880 2022.8740 417.03 419.29 \n", + "779 2022 12 44910 2022.9562 418.46 419.38 \n", + "780 2023 01 44941 2023.0411 419.13 419.06 \n", + "781 2023 02 44972 2023.1260 420.33 419.55 \n", + "782 2023 03 45000 2023.2027 420.51 418.97 \n", + "783 2023 04 45031 2023.2877 422.73 419.96 \n", + "784 2023 05 45061 2023.3699 423.78 420.38 \n", + "785 2023 06 45092 2023.4548 423.39 420.81 \n", + "786 2023 07 45122 2023.5370 421.62 420.82 \n", + "787 2023 08 45153 2023.6219 419.56 421.12 \n", + "788 2023 09 45184 2023.7068 418.06 421.56 \n", + "789 2023 10 45214 2023.7890 418.41 422.02 \n", + "790 2023 11 45245 2023.8740 420.11 422.38 \n", + "791 2023 12 45275 2023.9562 421.65 422.57 \n", + "792 2024 01 45306 2024.0410 422.62 422.55 \n", + "793 2024 02 45337 2024.1257 424.34 423.56 \n", + "794 2024 03 45366 2024.2049 425.22 423.65 \n", + "795 2024 04 45397 2024.2896 426.30 423.50 \n", + "796 2024 05 45427 2024.3716 426.70 423.29 \n", + "797 2024 06 45458 2024.4563 426.63 424.06 \n", + "798 2024 07 45488 2024.5383 425.40 424.62 \n", + "799 2024 08 45519 2024.6230 422.71 424.30 \n", + "800 2024 09 45550 2024.7077 421.60 425.12 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "2 316.20 314.91 315.71 \n", + "3 317.30 314.99 317.45 \n", + "4 317.89 315.07 317.51 \n", + "6 315.86 315.22 315.87 \n", + "7 313.96 315.29 314.93 \n", + "8 312.43 315.35 313.21 \n", + "10 313.60 315.46 313.33 \n", + "11 314.77 315.52 314.67 \n", + "12 315.64 315.57 315.58 \n", + "13 316.30 315.64 316.49 \n", + "14 316.99 315.70 316.65 \n", + "15 318.09 315.77 317.72 \n", + "16 318.68 315.85 318.29 \n", + "17 318.07 315.94 318.15 \n", + "18 316.67 316.03 316.54 \n", + "19 314.80 316.13 314.80 \n", + "20 313.29 316.22 313.84 \n", + "21 313.31 316.31 313.33 \n", + "22 314.53 316.40 314.81 \n", + "23 315.72 316.48 315.58 \n", + "24 316.62 316.56 316.43 \n", + "25 317.30 316.64 316.98 \n", + "26 318.04 316.71 317.58 \n", + "27 319.14 316.79 319.03 \n", + "28 319.70 316.86 320.03 \n", + "29 319.04 316.93 319.59 \n", + "30 317.59 316.98 318.18 \n", + "31 315.66 317.02 315.90 \n", + "32 314.10 317.05 314.17 \n", + "33 314.08 317.08 313.83 \n", + ".. ... ... ... \n", + "771 420.47 417.69 420.01 \n", + "772 421.23 417.84 420.78 \n", + "773 420.56 418.01 420.68 \n", + "774 418.94 418.18 418.71 \n", + "775 416.77 418.36 416.75 \n", + "776 415.04 418.55 415.42 \n", + "777 415.15 418.74 415.31 \n", + "778 416.71 418.95 417.03 \n", + "779 418.25 419.15 418.46 \n", + "780 419.45 419.37 419.13 \n", + "781 420.40 419.61 420.33 \n", + "782 421.39 419.83 420.51 \n", + "783 422.89 420.10 422.73 \n", + "784 423.77 420.37 423.78 \n", + "785 423.23 420.66 423.39 \n", + "786 421.73 420.96 421.62 \n", + "787 419.67 421.27 419.56 \n", + "788 418.06 421.58 418.06 \n", + "789 418.28 421.88 418.41 \n", + "790 419.95 422.19 420.11 \n", + "791 421.58 422.48 421.65 \n", + "792 422.85 422.77 422.62 \n", + "793 423.85 423.06 424.34 \n", + "794 424.91 423.31 425.22 \n", + "795 426.41 423.58 426.30 \n", + "796 427.25 423.84 426.70 \n", + "797 426.65 424.11 426.63 \n", + "798 425.10 424.36 425.40 \n", + "799 423.00 424.63 422.71 \n", + "800 -99.99 -99.99 421.60 \n", + "\n", + " seasonally_adjusted_filled Sta \n", + "2 314.43 MLO \n", + "3 315.16 MLO \n", + "4 314.69 MLO \n", + "6 315.20 MLO \n", + "7 316.22 MLO \n", + "8 316.12 MLO \n", + "10 315.21 MLO \n", + "11 315.43 MLO \n", + "12 315.52 MLO \n", + "13 315.84 MLO \n", + "14 315.37 MLO \n", + "15 315.41 MLO \n", + "16 315.46 MLO \n", + "17 316.00 MLO \n", + "18 315.87 MLO \n", + "19 316.09 MLO \n", + "20 316.75 MLO \n", + "21 316.35 MLO \n", + "22 316.69 MLO \n", + "23 316.35 MLO \n", + "24 316.37 MLO \n", + "25 316.33 MLO \n", + "26 316.27 MLO \n", + "27 316.70 MLO \n", + "28 317.20 MLO \n", + "29 317.45 MLO \n", + "30 317.53 MLO \n", + "31 317.23 MLO \n", + "32 317.10 MLO \n", + "33 316.85 MLO \n", + ".. ... ... \n", + "771 417.25 MLO \n", + "772 417.39 MLO \n", + "773 418.10 MLO \n", + "774 417.91 MLO \n", + "775 418.30 MLO \n", + "776 418.91 MLO \n", + "777 418.92 MLO \n", + "778 419.29 MLO \n", + "779 419.38 MKO \n", + "780 419.06 MKO \n", + "781 419.55 MKO \n", + "782 418.97 MLO \n", + "783 419.96 MLO \n", + "784 420.38 MLO \n", + "785 420.81 MLO \n", + "786 420.82 MLO \n", + "787 421.12 MLO \n", + "788 421.56 MLO \n", + "789 422.02 MLO \n", + "790 422.38 MLO \n", + "791 422.57 MLO \n", + "792 422.55 MLO \n", + "793 423.56 MLO \n", + "794 423.65 MLO \n", + "795 423.50 MLO \n", + "796 423.29 MLO \n", + "797 424.06 MLO \n", + "798 424.62 MLO \n", + "799 424.30 MLO \n", + "800 425.12 MLO \n", + "\n", + "[794 rows x 11 columns]" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data = data[data['CO2'].astype(float)>0]\n", + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On crée une collonne avec les dates compreensibles par pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stderr", "output_type": "stream", "text": [ - "Valeurs manquantes :\n", - " from Dec 2022 through Feb 2023 0\n", - "dtype: int64\n" + "/opt/conda/lib/python3.6/site-packages/pandas/core/indexing.py:357: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " self.obj[key] = _infer_fill_value(value)\n", + "/opt/conda/lib/python3.6/site-packages/pandas/core/indexing.py:537: SettingWithCopyWarning: \n", + "A value is trying to be set on a copy of a slice from a DataFrame.\n", + "Try using .loc[row_indexer,col_indexer] = value instead\n", + "\n", + "See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy\n", + " self.obj[item] = s\n" ] }, { - "ename": "KeyError", - "evalue": "\"['2008' '12'] not in index\"", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 22\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 23\u001b[0m \u001b[0;31m# Conversion de l'année et du mois en un format de date standard pour faciliter l'analyse chronologique\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 24\u001b[0;31m \u001b[0mraw_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'date'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mto_datetime\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mraw_data\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'2008'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m'12'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0massign\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mday\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 25\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 26\u001b[0m \u001b[0;31m# Tracé de la concentration de CO₂ au fil du temps\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m__getitem__\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2131\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mSeries\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnp\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mndarray\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mIndex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2132\u001b[0m \u001b[0;31m# either boolean or fancy integer index\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2133\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2134\u001b[0m \u001b[0;32melif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mDataFrame\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2135\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_getitem_frame\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/frame.py\u001b[0m in \u001b[0;36m_getitem_array\u001b[0;34m(self, key)\u001b[0m\n\u001b[1;32m 2175\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_take\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconvert\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mFalse\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2176\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 2177\u001b[0;31m \u001b[0mindexer\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mloc\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_convert_to_indexer\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkey\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 2178\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_take\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mconvert\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 2179\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m/opt/conda/lib/python3.6/site-packages/pandas/core/indexing.py\u001b[0m in \u001b[0;36m_convert_to_indexer\u001b[0;34m(self, obj, axis, is_setter)\u001b[0m\n\u001b[1;32m 1267\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmask\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0many\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1268\u001b[0m raise KeyError('{mask} not in index'\n\u001b[0;32m-> 1269\u001b[0;31m .format(mask=objarr[mask]))\n\u001b[0m\u001b[1;32m 1270\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1271\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0m_values_from_object\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mindexer\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mKeyError\u001b[0m: \"['2008' '12'] not in index\"" - ] + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledStaperiod
2195803212591958.2027315.71314.43316.20314.91315.71314.43MLO1958-03-01
3195804212901958.2877317.45315.16317.30314.99317.45315.16MLO1958-04-01
4195805213201958.3699317.51314.69317.89315.07317.51314.69MLO1958-05-01
6195807213811958.5370315.87315.20315.86315.22315.87315.20MLO1958-07-01
7195808214121958.6219314.93316.22313.96315.29314.93316.22MLO1958-08-01
8195809214431958.7068313.21316.12312.43315.35313.21316.12MLO1958-09-01
10195811215041958.8740313.33315.21313.60315.46313.33315.21MLO1958-11-01
11195812215341958.9562314.67315.43314.77315.52314.67315.43MLO1958-12-01
12195901215651959.0411315.58315.52315.64315.57315.58315.52MLO1959-01-01
13195902215961959.1260316.49315.84316.30315.64316.49315.84MLO1959-02-01
14195903216241959.2027316.65315.37316.99315.70316.65315.37MLO1959-03-01
15195904216551959.2877317.72315.41318.09315.77317.72315.41MLO1959-04-01
16195905216851959.3699318.29315.46318.68315.85318.29315.46MLO1959-05-01
17195906217161959.4548318.15316.00318.07315.94318.15316.00MLO1959-06-01
18195907217461959.5370316.54315.87316.67316.03316.54315.87MLO1959-07-01
19195908217771959.6219314.80316.09314.80316.13314.80316.09MLO1959-08-01
20195909218081959.7068313.84316.75313.29316.22313.84316.75MLO1959-09-01
21195910218381959.7890313.33316.35313.31316.31313.33316.35MLO1959-10-01
22195911218691959.8740314.81316.69314.53316.40314.81316.69MLO1959-11-01
23195912218991959.9562315.58316.35315.72316.48315.58316.35MLO1959-12-01
24196001219301960.0410316.43316.37316.62316.56316.43316.37MLO1960-01-01
25196002219611960.1257316.98316.33317.30316.64316.98316.33MLO1960-02-01
26196003219901960.2049317.58316.27318.04316.71317.58316.27MLO1960-03-01
27196004220211960.2896319.03316.70319.14316.79319.03316.70MLO1960-04-01
28196005220511960.3716320.03317.20319.70316.86320.03317.20MLO1960-05-01
29196006220821960.4563319.59317.45319.04316.93319.59317.45MLO1960-06-01
30196007221121960.5383318.18317.53317.59316.98318.18317.53MLO1960-07-01
31196008221431960.6230315.90317.23315.66317.02315.90317.23MLO1960-08-01
32196009221741960.7077314.17317.10314.10317.05314.17317.10MLO1960-09-01
33196010222041960.7896313.83316.85314.08317.08313.83316.85MLO1960-10-01
.......................................
771202204446662022.2877420.01417.25420.47417.69420.01417.25MLO2022-04-01
772202205446962022.3699420.78417.39421.23417.84420.78417.39MLO2022-05-01
773202206447272022.4548420.68418.10420.56418.01420.68418.10MLO2022-06-01
774202207447572022.5370418.71417.91418.94418.18418.71417.91MLO2022-07-01
775202208447882022.6219416.75418.30416.77418.36416.75418.30MLO2022-08-01
776202209448192022.7068415.42418.91415.04418.55415.42418.91MLO2022-09-01
777202210448492022.7890415.31418.92415.15418.74415.31418.92MLO2022-10-01
778202211448802022.8740417.03419.29416.71418.95417.03419.29MLO2022-11-01
779202212449102022.9562418.46419.38418.25419.15418.46419.38MKO2022-12-01
780202301449412023.0411419.13419.06419.45419.37419.13419.06MKO2023-01-01
781202302449722023.1260420.33419.55420.40419.61420.33419.55MKO2023-02-01
782202303450002023.2027420.51418.97421.39419.83420.51418.97MLO2023-03-01
783202304450312023.2877422.73419.96422.89420.10422.73419.96MLO2023-04-01
784202305450612023.3699423.78420.38423.77420.37423.78420.38MLO2023-05-01
785202306450922023.4548423.39420.81423.23420.66423.39420.81MLO2023-06-01
786202307451222023.5370421.62420.82421.73420.96421.62420.82MLO2023-07-01
787202308451532023.6219419.56421.12419.67421.27419.56421.12MLO2023-08-01
788202309451842023.7068418.06421.56418.06421.58418.06421.56MLO2023-09-01
789202310452142023.7890418.41422.02418.28421.88418.41422.02MLO2023-10-01
790202311452452023.8740420.11422.38419.95422.19420.11422.38MLO2023-11-01
791202312452752023.9562421.65422.57421.58422.48421.65422.57MLO2023-12-01
792202401453062024.0410422.62422.55422.85422.77422.62422.55MLO2024-01-01
793202402453372024.1257424.34423.56423.85423.06424.34423.56MLO2024-02-01
794202403453662024.2049425.22423.65424.91423.31425.22423.65MLO2024-03-01
795202404453972024.2896426.30423.50426.41423.58426.30423.50MLO2024-04-01
796202405454272024.3716426.70423.29427.25423.84426.70423.29MLO2024-05-01
797202406454582024.4563426.63424.06426.65424.11426.63424.06MLO2024-06-01
798202407454882024.5383425.40424.62425.10424.36425.40424.62MLO2024-07-01
799202408455192024.6230422.71424.30423.00424.63422.71424.30MLO2024-08-01
800202409455502024.7077421.60425.12-99.99-99.99421.60425.12MLO2024-09-01
\n", + "

794 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "2 1958 03 21259 1958.2027 315.71 314.43 \n", + "3 1958 04 21290 1958.2877 317.45 315.16 \n", + "4 1958 05 21320 1958.3699 317.51 314.69 \n", + "6 1958 07 21381 1958.5370 315.87 315.20 \n", + "7 1958 08 21412 1958.6219 314.93 316.22 \n", + "8 1958 09 21443 1958.7068 313.21 316.12 \n", + "10 1958 11 21504 1958.8740 313.33 315.21 \n", + "11 1958 12 21534 1958.9562 314.67 315.43 \n", + "12 1959 01 21565 1959.0411 315.58 315.52 \n", + "13 1959 02 21596 1959.1260 316.49 315.84 \n", + "14 1959 03 21624 1959.2027 316.65 315.37 \n", + "15 1959 04 21655 1959.2877 317.72 315.41 \n", + "16 1959 05 21685 1959.3699 318.29 315.46 \n", + "17 1959 06 21716 1959.4548 318.15 316.00 \n", + "18 1959 07 21746 1959.5370 316.54 315.87 \n", + "19 1959 08 21777 1959.6219 314.80 316.09 \n", + "20 1959 09 21808 1959.7068 313.84 316.75 \n", + "21 1959 10 21838 1959.7890 313.33 316.35 \n", + "22 1959 11 21869 1959.8740 314.81 316.69 \n", + "23 1959 12 21899 1959.9562 315.58 316.35 \n", + "24 1960 01 21930 1960.0410 316.43 316.37 \n", + "25 1960 02 21961 1960.1257 316.98 316.33 \n", + "26 1960 03 21990 1960.2049 317.58 316.27 \n", + "27 1960 04 22021 1960.2896 319.03 316.70 \n", + "28 1960 05 22051 1960.3716 320.03 317.20 \n", + "29 1960 06 22082 1960.4563 319.59 317.45 \n", + "30 1960 07 22112 1960.5383 318.18 317.53 \n", + "31 1960 08 22143 1960.6230 315.90 317.23 \n", + "32 1960 09 22174 1960.7077 314.17 317.10 \n", + "33 1960 10 22204 1960.7896 313.83 316.85 \n", + ".. ... ... ... ... ... ... \n", + "771 2022 04 44666 2022.2877 420.01 417.25 \n", + "772 2022 05 44696 2022.3699 420.78 417.39 \n", + "773 2022 06 44727 2022.4548 420.68 418.10 \n", + "774 2022 07 44757 2022.5370 418.71 417.91 \n", + "775 2022 08 44788 2022.6219 416.75 418.30 \n", + "776 2022 09 44819 2022.7068 415.42 418.91 \n", + "777 2022 10 44849 2022.7890 415.31 418.92 \n", + "778 2022 11 44880 2022.8740 417.03 419.29 \n", + "779 2022 12 44910 2022.9562 418.46 419.38 \n", + "780 2023 01 44941 2023.0411 419.13 419.06 \n", + "781 2023 02 44972 2023.1260 420.33 419.55 \n", + "782 2023 03 45000 2023.2027 420.51 418.97 \n", + "783 2023 04 45031 2023.2877 422.73 419.96 \n", + "784 2023 05 45061 2023.3699 423.78 420.38 \n", + "785 2023 06 45092 2023.4548 423.39 420.81 \n", + "786 2023 07 45122 2023.5370 421.62 420.82 \n", + "787 2023 08 45153 2023.6219 419.56 421.12 \n", + "788 2023 09 45184 2023.7068 418.06 421.56 \n", + "789 2023 10 45214 2023.7890 418.41 422.02 \n", + "790 2023 11 45245 2023.8740 420.11 422.38 \n", + "791 2023 12 45275 2023.9562 421.65 422.57 \n", + "792 2024 01 45306 2024.0410 422.62 422.55 \n", + "793 2024 02 45337 2024.1257 424.34 423.56 \n", + "794 2024 03 45366 2024.2049 425.22 423.65 \n", + "795 2024 04 45397 2024.2896 426.30 423.50 \n", + "796 2024 05 45427 2024.3716 426.70 423.29 \n", + "797 2024 06 45458 2024.4563 426.63 424.06 \n", + "798 2024 07 45488 2024.5383 425.40 424.62 \n", + "799 2024 08 45519 2024.6230 422.71 424.30 \n", + "800 2024 09 45550 2024.7077 421.60 425.12 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "2 316.20 314.91 315.71 \n", + "3 317.30 314.99 317.45 \n", + "4 317.89 315.07 317.51 \n", + "6 315.86 315.22 315.87 \n", + "7 313.96 315.29 314.93 \n", + "8 312.43 315.35 313.21 \n", + "10 313.60 315.46 313.33 \n", + "11 314.77 315.52 314.67 \n", + "12 315.64 315.57 315.58 \n", + "13 316.30 315.64 316.49 \n", + "14 316.99 315.70 316.65 \n", + "15 318.09 315.77 317.72 \n", + "16 318.68 315.85 318.29 \n", + "17 318.07 315.94 318.15 \n", + "18 316.67 316.03 316.54 \n", + "19 314.80 316.13 314.80 \n", + "20 313.29 316.22 313.84 \n", + "21 313.31 316.31 313.33 \n", + "22 314.53 316.40 314.81 \n", + "23 315.72 316.48 315.58 \n", + "24 316.62 316.56 316.43 \n", + "25 317.30 316.64 316.98 \n", + "26 318.04 316.71 317.58 \n", + "27 319.14 316.79 319.03 \n", + "28 319.70 316.86 320.03 \n", + "29 319.04 316.93 319.59 \n", + "30 317.59 316.98 318.18 \n", + "31 315.66 317.02 315.90 \n", + "32 314.10 317.05 314.17 \n", + "33 314.08 317.08 313.83 \n", + ".. ... ... ... \n", + "771 420.47 417.69 420.01 \n", + "772 421.23 417.84 420.78 \n", + "773 420.56 418.01 420.68 \n", + "774 418.94 418.18 418.71 \n", + "775 416.77 418.36 416.75 \n", + "776 415.04 418.55 415.42 \n", + "777 415.15 418.74 415.31 \n", + "778 416.71 418.95 417.03 \n", + "779 418.25 419.15 418.46 \n", + "780 419.45 419.37 419.13 \n", + "781 420.40 419.61 420.33 \n", + "782 421.39 419.83 420.51 \n", + "783 422.89 420.10 422.73 \n", + "784 423.77 420.37 423.78 \n", + "785 423.23 420.66 423.39 \n", + "786 421.73 420.96 421.62 \n", + "787 419.67 421.27 419.56 \n", + "788 418.06 421.58 418.06 \n", + "789 418.28 421.88 418.41 \n", + "790 419.95 422.19 420.11 \n", + "791 421.58 422.48 421.65 \n", + "792 422.85 422.77 422.62 \n", + "793 423.85 423.06 424.34 \n", + "794 424.91 423.31 425.22 \n", + "795 426.41 423.58 426.30 \n", + "796 427.25 423.84 426.70 \n", + "797 426.65 424.11 426.63 \n", + "798 425.10 424.36 425.40 \n", + "799 423.00 424.63 422.71 \n", + "800 -99.99 -99.99 421.60 \n", + "\n", + " seasonally_adjusted_filled Sta period \n", + "2 314.43 MLO 1958-03-01 \n", + "3 315.16 MLO 1958-04-01 \n", + "4 314.69 MLO 1958-05-01 \n", + "6 315.20 MLO 1958-07-01 \n", + "7 316.22 MLO 1958-08-01 \n", + "8 316.12 MLO 1958-09-01 \n", + "10 315.21 MLO 1958-11-01 \n", + "11 315.43 MLO 1958-12-01 \n", + "12 315.52 MLO 1959-01-01 \n", + "13 315.84 MLO 1959-02-01 \n", + "14 315.37 MLO 1959-03-01 \n", + "15 315.41 MLO 1959-04-01 \n", + "16 315.46 MLO 1959-05-01 \n", + "17 316.00 MLO 1959-06-01 \n", + "18 315.87 MLO 1959-07-01 \n", + "19 316.09 MLO 1959-08-01 \n", + "20 316.75 MLO 1959-09-01 \n", + "21 316.35 MLO 1959-10-01 \n", + "22 316.69 MLO 1959-11-01 \n", + "23 316.35 MLO 1959-12-01 \n", + "24 316.37 MLO 1960-01-01 \n", + "25 316.33 MLO 1960-02-01 \n", + "26 316.27 MLO 1960-03-01 \n", + "27 316.70 MLO 1960-04-01 \n", + "28 317.20 MLO 1960-05-01 \n", + "29 317.45 MLO 1960-06-01 \n", + "30 317.53 MLO 1960-07-01 \n", + "31 317.23 MLO 1960-08-01 \n", + "32 317.10 MLO 1960-09-01 \n", + "33 316.85 MLO 1960-10-01 \n", + ".. ... ... ... \n", + "771 417.25 MLO 2022-04-01 \n", + "772 417.39 MLO 2022-05-01 \n", + "773 418.10 MLO 2022-06-01 \n", + "774 417.91 MLO 2022-07-01 \n", + "775 418.30 MLO 2022-08-01 \n", + "776 418.91 MLO 2022-09-01 \n", + "777 418.92 MLO 2022-10-01 \n", + "778 419.29 MLO 2022-11-01 \n", + "779 419.38 MKO 2022-12-01 \n", + "780 419.06 MKO 2023-01-01 \n", + "781 419.55 MKO 2023-02-01 \n", + "782 418.97 MLO 2023-03-01 \n", + "783 419.96 MLO 2023-04-01 \n", + "784 420.38 MLO 2023-05-01 \n", + "785 420.81 MLO 2023-06-01 \n", + "786 420.82 MLO 2023-07-01 \n", + "787 421.12 MLO 2023-08-01 \n", + "788 421.56 MLO 2023-09-01 \n", + "789 422.02 MLO 2023-10-01 \n", + "790 422.38 MLO 2023-11-01 \n", + "791 422.57 MLO 2023-12-01 \n", + "792 422.55 MLO 2024-01-01 \n", + "793 423.56 MLO 2024-02-01 \n", + "794 423.65 MLO 2024-03-01 \n", + "795 423.50 MLO 2024-04-01 \n", + "796 423.29 MLO 2024-05-01 \n", + "797 424.06 MLO 2024-06-01 \n", + "798 424.62 MLO 2024-07-01 \n", + "799 424.30 MLO 2024-08-01 \n", + "800 425.12 MLO 2024-09-01 \n", + "\n", + "[794 rows x 12 columns]" + ] + }, + "execution_count": 21, + "metadata": {}, + "output_type": "execute_result" } ], "source": [ - "# Analyse des données de CO₂ de l'observatoire Mauna Loa\n", - "%matplotlib inline\n", - "import matplotlib.pyplot as plt\n", - "import pandas as pd\n", - "\n", - "# URL des données de concentration de CO₂ en format CSV depuis le site de Scripps CO₂ Program\n", - "data_url = \"https://scrippsco2.ucsd.edu/assets/data/atmospheric/stations/in_situ_co2/monthly/monthly_in_situ_co2_mlo.csv\"\n", - "\n", - "# Chargement des données et ignorer les lignes de commentaires en début de fichier\n", - "# (Lignes de commentaires de 0 à 56 incluses, donc on saute les 57 premières lignes)\n", - "raw_data = pd.read_csv(data_url, sep=';', skiprows=57)\n", - "\n", - "# Affichage des premières lignes du jeu de données pour comprendre sa structure\n", - "raw_data.head()\n", - "\n", - "# Vérification des valeurs manquantes\n", - "print(\"Valeurs manquantes :\")\n", - "print(raw_data.isnull().sum())\n", + "def convert_to_month_start(year, month):\n", + " return pd.Timestamp(year=year, month=month, day=1)\n", "\n", - "# Suppression des lignes avec des valeurs manquantes\n", - "data = raw_data.dropna()\n", - "\n", - "# Conversion de l'année et du mois en un format de date standard pour faciliter l'analyse chronologique\n", - "raw_data['date'] = pd.to_datetime(raw_data[['2008', '12']].assign(day=1))\n", - "\n", - "# Tracé de la concentration de CO₂ au fil du temps\n", - "plt.figure(figsize=(12, 6))\n", - "plt.plot(data['date'], data['average'], label='Concentration moyenne de CO₂ (ppm)', color='black')\n", + "data.loc[:, 'period'] = [convert_to_month_start(y, m) for y, m in zip(data['Yr'].astype(int), data['Mn'].astype(int))]\n", + "data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On fait le plot de la tendance historique" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On utilise les periodes en tant qu'index et on les sorte de manière croissante " + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
YrMnDate_excelDateCO2seasonally_adjustedfitseasonally_adjusted_fitCO2_filledseasonally_adjusted_filledSta
period
1958-03-01195803212591958.2027315.71314.43316.20314.91315.71314.43MLO
1958-04-01195804212901958.2877317.45315.16317.30314.99317.45315.16MLO
1958-05-01195805213201958.3699317.51314.69317.89315.07317.51314.69MLO
1958-07-01195807213811958.5370315.87315.20315.86315.22315.87315.20MLO
1958-08-01195808214121958.6219314.93316.22313.96315.29314.93316.22MLO
1958-09-01195809214431958.7068313.21316.12312.43315.35313.21316.12MLO
1958-11-01195811215041958.8740313.33315.21313.60315.46313.33315.21MLO
1958-12-01195812215341958.9562314.67315.43314.77315.52314.67315.43MLO
1959-01-01195901215651959.0411315.58315.52315.64315.57315.58315.52MLO
1959-02-01195902215961959.1260316.49315.84316.30315.64316.49315.84MLO
1959-03-01195903216241959.2027316.65315.37316.99315.70316.65315.37MLO
1959-04-01195904216551959.2877317.72315.41318.09315.77317.72315.41MLO
1959-05-01195905216851959.3699318.29315.46318.68315.85318.29315.46MLO
1959-06-01195906217161959.4548318.15316.00318.07315.94318.15316.00MLO
1959-07-01195907217461959.5370316.54315.87316.67316.03316.54315.87MLO
1959-08-01195908217771959.6219314.80316.09314.80316.13314.80316.09MLO
1959-09-01195909218081959.7068313.84316.75313.29316.22313.84316.75MLO
1959-10-01195910218381959.7890313.33316.35313.31316.31313.33316.35MLO
1959-11-01195911218691959.8740314.81316.69314.53316.40314.81316.69MLO
1959-12-01195912218991959.9562315.58316.35315.72316.48315.58316.35MLO
1960-01-01196001219301960.0410316.43316.37316.62316.56316.43316.37MLO
1960-02-01196002219611960.1257316.98316.33317.30316.64316.98316.33MLO
1960-03-01196003219901960.2049317.58316.27318.04316.71317.58316.27MLO
1960-04-01196004220211960.2896319.03316.70319.14316.79319.03316.70MLO
1960-05-01196005220511960.3716320.03317.20319.70316.86320.03317.20MLO
1960-06-01196006220821960.4563319.59317.45319.04316.93319.59317.45MLO
1960-07-01196007221121960.5383318.18317.53317.59316.98318.18317.53MLO
1960-08-01196008221431960.6230315.90317.23315.66317.02315.90317.23MLO
1960-09-01196009221741960.7077314.17317.10314.10317.05314.17317.10MLO
1960-10-01196010222041960.7896313.83316.85314.08317.08313.83316.85MLO
....................................
2022-04-01202204446662022.2877420.01417.25420.47417.69420.01417.25MLO
2022-05-01202205446962022.3699420.78417.39421.23417.84420.78417.39MLO
2022-06-01202206447272022.4548420.68418.10420.56418.01420.68418.10MLO
2022-07-01202207447572022.5370418.71417.91418.94418.18418.71417.91MLO
2022-08-01202208447882022.6219416.75418.30416.77418.36416.75418.30MLO
2022-09-01202209448192022.7068415.42418.91415.04418.55415.42418.91MLO
2022-10-01202210448492022.7890415.31418.92415.15418.74415.31418.92MLO
2022-11-01202211448802022.8740417.03419.29416.71418.95417.03419.29MLO
2022-12-01202212449102022.9562418.46419.38418.25419.15418.46419.38MKO
2023-01-01202301449412023.0411419.13419.06419.45419.37419.13419.06MKO
2023-02-01202302449722023.1260420.33419.55420.40419.61420.33419.55MKO
2023-03-01202303450002023.2027420.51418.97421.39419.83420.51418.97MLO
2023-04-01202304450312023.2877422.73419.96422.89420.10422.73419.96MLO
2023-05-01202305450612023.3699423.78420.38423.77420.37423.78420.38MLO
2023-06-01202306450922023.4548423.39420.81423.23420.66423.39420.81MLO
2023-07-01202307451222023.5370421.62420.82421.73420.96421.62420.82MLO
2023-08-01202308451532023.6219419.56421.12419.67421.27419.56421.12MLO
2023-09-01202309451842023.7068418.06421.56418.06421.58418.06421.56MLO
2023-10-01202310452142023.7890418.41422.02418.28421.88418.41422.02MLO
2023-11-01202311452452023.8740420.11422.38419.95422.19420.11422.38MLO
2023-12-01202312452752023.9562421.65422.57421.58422.48421.65422.57MLO
2024-01-01202401453062024.0410422.62422.55422.85422.77422.62422.55MLO
2024-02-01202402453372024.1257424.34423.56423.85423.06424.34423.56MLO
2024-03-01202403453662024.2049425.22423.65424.91423.31425.22423.65MLO
2024-04-01202404453972024.2896426.30423.50426.41423.58426.30423.50MLO
2024-05-01202405454272024.3716426.70423.29427.25423.84426.70423.29MLO
2024-06-01202406454582024.4563426.63424.06426.65424.11426.63424.06MLO
2024-07-01202407454882024.5383425.40424.62425.10424.36425.40424.62MLO
2024-08-01202408455192024.6230422.71424.30423.00424.63422.71424.30MLO
2024-09-01202409455502024.7077421.60425.12-99.99-99.99421.60425.12MLO
\n", + "

794 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Yr Mn Date_excel Date CO2 seasonally_adjusted \\\n", + "period \n", + "1958-03-01 1958 03 21259 1958.2027 315.71 314.43 \n", + "1958-04-01 1958 04 21290 1958.2877 317.45 315.16 \n", + "1958-05-01 1958 05 21320 1958.3699 317.51 314.69 \n", + "1958-07-01 1958 07 21381 1958.5370 315.87 315.20 \n", + "1958-08-01 1958 08 21412 1958.6219 314.93 316.22 \n", + "1958-09-01 1958 09 21443 1958.7068 313.21 316.12 \n", + "1958-11-01 1958 11 21504 1958.8740 313.33 315.21 \n", + "1958-12-01 1958 12 21534 1958.9562 314.67 315.43 \n", + "1959-01-01 1959 01 21565 1959.0411 315.58 315.52 \n", + "1959-02-01 1959 02 21596 1959.1260 316.49 315.84 \n", + "1959-03-01 1959 03 21624 1959.2027 316.65 315.37 \n", + "1959-04-01 1959 04 21655 1959.2877 317.72 315.41 \n", + "1959-05-01 1959 05 21685 1959.3699 318.29 315.46 \n", + "1959-06-01 1959 06 21716 1959.4548 318.15 316.00 \n", + "1959-07-01 1959 07 21746 1959.5370 316.54 315.87 \n", + "1959-08-01 1959 08 21777 1959.6219 314.80 316.09 \n", + "1959-09-01 1959 09 21808 1959.7068 313.84 316.75 \n", + "1959-10-01 1959 10 21838 1959.7890 313.33 316.35 \n", + "1959-11-01 1959 11 21869 1959.8740 314.81 316.69 \n", + "1959-12-01 1959 12 21899 1959.9562 315.58 316.35 \n", + "1960-01-01 1960 01 21930 1960.0410 316.43 316.37 \n", + "1960-02-01 1960 02 21961 1960.1257 316.98 316.33 \n", + "1960-03-01 1960 03 21990 1960.2049 317.58 316.27 \n", + "1960-04-01 1960 04 22021 1960.2896 319.03 316.70 \n", + "1960-05-01 1960 05 22051 1960.3716 320.03 317.20 \n", + "1960-06-01 1960 06 22082 1960.4563 319.59 317.45 \n", + "1960-07-01 1960 07 22112 1960.5383 318.18 317.53 \n", + "1960-08-01 1960 08 22143 1960.6230 315.90 317.23 \n", + "1960-09-01 1960 09 22174 1960.7077 314.17 317.10 \n", + "1960-10-01 1960 10 22204 1960.7896 313.83 316.85 \n", + "... ... ... ... ... ... ... \n", + "2022-04-01 2022 04 44666 2022.2877 420.01 417.25 \n", + "2022-05-01 2022 05 44696 2022.3699 420.78 417.39 \n", + "2022-06-01 2022 06 44727 2022.4548 420.68 418.10 \n", + "2022-07-01 2022 07 44757 2022.5370 418.71 417.91 \n", + "2022-08-01 2022 08 44788 2022.6219 416.75 418.30 \n", + "2022-09-01 2022 09 44819 2022.7068 415.42 418.91 \n", + "2022-10-01 2022 10 44849 2022.7890 415.31 418.92 \n", + "2022-11-01 2022 11 44880 2022.8740 417.03 419.29 \n", + "2022-12-01 2022 12 44910 2022.9562 418.46 419.38 \n", + "2023-01-01 2023 01 44941 2023.0411 419.13 419.06 \n", + "2023-02-01 2023 02 44972 2023.1260 420.33 419.55 \n", + "2023-03-01 2023 03 45000 2023.2027 420.51 418.97 \n", + "2023-04-01 2023 04 45031 2023.2877 422.73 419.96 \n", + "2023-05-01 2023 05 45061 2023.3699 423.78 420.38 \n", + "2023-06-01 2023 06 45092 2023.4548 423.39 420.81 \n", + "2023-07-01 2023 07 45122 2023.5370 421.62 420.82 \n", + "2023-08-01 2023 08 45153 2023.6219 419.56 421.12 \n", + "2023-09-01 2023 09 45184 2023.7068 418.06 421.56 \n", + "2023-10-01 2023 10 45214 2023.7890 418.41 422.02 \n", + "2023-11-01 2023 11 45245 2023.8740 420.11 422.38 \n", + "2023-12-01 2023 12 45275 2023.9562 421.65 422.57 \n", + "2024-01-01 2024 01 45306 2024.0410 422.62 422.55 \n", + "2024-02-01 2024 02 45337 2024.1257 424.34 423.56 \n", + "2024-03-01 2024 03 45366 2024.2049 425.22 423.65 \n", + "2024-04-01 2024 04 45397 2024.2896 426.30 423.50 \n", + "2024-05-01 2024 05 45427 2024.3716 426.70 423.29 \n", + "2024-06-01 2024 06 45458 2024.4563 426.63 424.06 \n", + "2024-07-01 2024 07 45488 2024.5383 425.40 424.62 \n", + "2024-08-01 2024 08 45519 2024.6230 422.71 424.30 \n", + "2024-09-01 2024 09 45550 2024.7077 421.60 425.12 \n", + "\n", + " fit seasonally_adjusted_fit CO2_filled \\\n", + "period \n", + "1958-03-01 316.20 314.91 315.71 \n", + "1958-04-01 317.30 314.99 317.45 \n", + "1958-05-01 317.89 315.07 317.51 \n", + "1958-07-01 315.86 315.22 315.87 \n", + "1958-08-01 313.96 315.29 314.93 \n", + "1958-09-01 312.43 315.35 313.21 \n", + "1958-11-01 313.60 315.46 313.33 \n", + "1958-12-01 314.77 315.52 314.67 \n", + "1959-01-01 315.64 315.57 315.58 \n", + "1959-02-01 316.30 315.64 316.49 \n", + "1959-03-01 316.99 315.70 316.65 \n", + "1959-04-01 318.09 315.77 317.72 \n", + "1959-05-01 318.68 315.85 318.29 \n", + "1959-06-01 318.07 315.94 318.15 \n", + "1959-07-01 316.67 316.03 316.54 \n", + "1959-08-01 314.80 316.13 314.80 \n", + "1959-09-01 313.29 316.22 313.84 \n", + "1959-10-01 313.31 316.31 313.33 \n", + "1959-11-01 314.53 316.40 314.81 \n", + "1959-12-01 315.72 316.48 315.58 \n", + "1960-01-01 316.62 316.56 316.43 \n", + "1960-02-01 317.30 316.64 316.98 \n", + "1960-03-01 318.04 316.71 317.58 \n", + "1960-04-01 319.14 316.79 319.03 \n", + "1960-05-01 319.70 316.86 320.03 \n", + "1960-06-01 319.04 316.93 319.59 \n", + "1960-07-01 317.59 316.98 318.18 \n", + "1960-08-01 315.66 317.02 315.90 \n", + "1960-09-01 314.10 317.05 314.17 \n", + "1960-10-01 314.08 317.08 313.83 \n", + "... ... ... ... \n", + "2022-04-01 420.47 417.69 420.01 \n", + "2022-05-01 421.23 417.84 420.78 \n", + "2022-06-01 420.56 418.01 420.68 \n", + "2022-07-01 418.94 418.18 418.71 \n", + "2022-08-01 416.77 418.36 416.75 \n", + "2022-09-01 415.04 418.55 415.42 \n", + "2022-10-01 415.15 418.74 415.31 \n", + "2022-11-01 416.71 418.95 417.03 \n", + "2022-12-01 418.25 419.15 418.46 \n", + "2023-01-01 419.45 419.37 419.13 \n", + "2023-02-01 420.40 419.61 420.33 \n", + "2023-03-01 421.39 419.83 420.51 \n", + "2023-04-01 422.89 420.10 422.73 \n", + "2023-05-01 423.77 420.37 423.78 \n", + "2023-06-01 423.23 420.66 423.39 \n", + "2023-07-01 421.73 420.96 421.62 \n", + "2023-08-01 419.67 421.27 419.56 \n", + "2023-09-01 418.06 421.58 418.06 \n", + "2023-10-01 418.28 421.88 418.41 \n", + "2023-11-01 419.95 422.19 420.11 \n", + "2023-12-01 421.58 422.48 421.65 \n", + "2024-01-01 422.85 422.77 422.62 \n", + "2024-02-01 423.85 423.06 424.34 \n", + "2024-03-01 424.91 423.31 425.22 \n", + "2024-04-01 426.41 423.58 426.30 \n", + "2024-05-01 427.25 423.84 426.70 \n", + "2024-06-01 426.65 424.11 426.63 \n", + "2024-07-01 425.10 424.36 425.40 \n", + "2024-08-01 423.00 424.63 422.71 \n", + "2024-09-01 -99.99 -99.99 421.60 \n", + "\n", + " seasonally_adjusted_filled Sta \n", + "period \n", + "1958-03-01 314.43 MLO \n", + "1958-04-01 315.16 MLO \n", + "1958-05-01 314.69 MLO \n", + "1958-07-01 315.20 MLO \n", + "1958-08-01 316.22 MLO \n", + "1958-09-01 316.12 MLO \n", + "1958-11-01 315.21 MLO \n", + "1958-12-01 315.43 MLO \n", + "1959-01-01 315.52 MLO \n", + "1959-02-01 315.84 MLO \n", + "1959-03-01 315.37 MLO \n", + "1959-04-01 315.41 MLO \n", + "1959-05-01 315.46 MLO \n", + "1959-06-01 316.00 MLO \n", + "1959-07-01 315.87 MLO \n", + "1959-08-01 316.09 MLO \n", + "1959-09-01 316.75 MLO \n", + "1959-10-01 316.35 MLO \n", + "1959-11-01 316.69 MLO \n", + "1959-12-01 316.35 MLO \n", + "1960-01-01 316.37 MLO \n", + "1960-02-01 316.33 MLO \n", + "1960-03-01 316.27 MLO \n", + "1960-04-01 316.70 MLO \n", + "1960-05-01 317.20 MLO \n", + "1960-06-01 317.45 MLO \n", + "1960-07-01 317.53 MLO \n", + "1960-08-01 317.23 MLO \n", + "1960-09-01 317.10 MLO \n", + "1960-10-01 316.85 MLO \n", + "... ... ... \n", + "2022-04-01 417.25 MLO \n", + "2022-05-01 417.39 MLO \n", + "2022-06-01 418.10 MLO \n", + "2022-07-01 417.91 MLO \n", + "2022-08-01 418.30 MLO \n", + "2022-09-01 418.91 MLO \n", + "2022-10-01 418.92 MLO \n", + "2022-11-01 419.29 MLO \n", + "2022-12-01 419.38 MKO \n", + "2023-01-01 419.06 MKO \n", + "2023-02-01 419.55 MKO \n", + "2023-03-01 418.97 MLO \n", + "2023-04-01 419.96 MLO \n", + "2023-05-01 420.38 MLO \n", + "2023-06-01 420.81 MLO \n", + "2023-07-01 420.82 MLO \n", + "2023-08-01 421.12 MLO \n", + "2023-09-01 421.56 MLO \n", + "2023-10-01 422.02 MLO \n", + "2023-11-01 422.38 MLO \n", + "2023-12-01 422.57 MLO \n", + "2024-01-01 422.55 MLO \n", + "2024-02-01 423.56 MLO \n", + "2024-03-01 423.65 MLO \n", + "2024-04-01 423.50 MLO \n", + "2024-05-01 423.29 MLO \n", + "2024-06-01 424.06 MLO \n", + "2024-07-01 424.62 MLO \n", + "2024-08-01 424.30 MLO \n", + "2024-09-01 425.12 MLO \n", + "\n", + "[794 rows x 11 columns]" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sorted_data = data.set_index('period').sort_index()\n", + "sorted_data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On plot les données" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "sorted_data['CO2'] = sorted_data['CO2'].astype(float)\n", + "sorted_data['CO2'].plot(color='blue')\n", + "plt.ylabel(r'Concentration en $CO_2$ [ppm]')\n", "plt.xlabel('Année')\n", - "plt.ylabel('Concentration de CO₂ (ppm)')\n", - "plt.title('Concentration mensuelle moyenne de CO₂ à Mauna Loa (1958 - présent)')\n", - "plt.legend()\n", - "plt.show()\n", + "plt.grid(linestyle=':')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "On observe deux phénomène couplés : une oscillation périodique annuelle et une contribution plus lente. On essaye de fitter cette contribution plus lente par une exponentielle croissante, selon $$[CO_2] = a \\cdot \\exp\\left(b \\cdot t \\right) + c$$" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Parametres fittés: a = 55.02, b = 0.0166, c = 258.55\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from scipy.optimize import curve_fit\n", "\n", - "# Analyse des tendances avec une moyenne annuelle glissante pour observer la tendance à long terme\n", - "data['yearly_avg'] = data['average'].rolling(window=12).mean()\n", + "def exponential_func(t, a, b, c):\n", + " return a * np.exp(b * t) + c\n", "\n", - "plt.figure(figsize=(12, 6))\n", - "plt.plot(data['date'], data['average'], label='CO₂ mensuel', color='grey')\n", - "plt.plot(data['date'], data['yearly_avg'], label='Moyenne annuelle glissante', color='blue')\n", - "plt.xlabel('Année')\n", - "plt.ylabel('Concentration de CO₂ (ppm)')\n", - "plt.title('Tendance de la concentration de CO₂ à Mauna Loa')\n", + "start_year = sorted_data.index.min().year\n", + "sorted_data[\"period_fractional\"] = (sorted_data.index.year - start_year) + (sorted_data.index.month - 1) / 12\n", + "initial_guess = [1, 0.03, 300]\n", + "popt, pcov = curve_fit(exponential_func, sorted_data[\"period_fractional\"], sorted_data[\"CO2\"], p0=initial_guess)\n", + "fitted_values = exponential_func(sorted_data[\"period_fractional\"], *popt)\n", + "plt.plot(sorted_data.index, sorted_data['CO2'], color='blue', label='Concentration mésurée')\n", + "plt.plot(sorted_data.index, fitted_values, color='red', label='Augumentation lente')\n", "plt.legend()\n", - "plt.show()\n", - "\n", - "# Étude de l'incidence annuelle\n", - "# Extraction de l'année pour faciliter le regroupement annuel\n", - "data['year'] = data['date'].dt.year\n", - "\n", - "# Calcul de la concentration annuelle moyenne\n", - "yearly_co2 = data.groupby('year')['average'].mean()\n", - "\n", - "# Visualisation de l'évolution annuelle\n", - "plt.figure(figsize=(12, 6))\n", - "yearly_co2.plot(style='*', color='green')\n", + "plt.ylabel(r\"Concentration en $CO_2$ [ppm]\")\n", "plt.xlabel(\"Année\")\n", - "plt.ylabel(\"Concentration annuelle moyenne de CO₂ (ppm)\")\n", - "plt.title(\"Évolution de la concentration annuelle moyenne de CO₂ à Mauna Loa\")\n", + "plt.grid(linestyle=\":\")\n", "plt.show()\n", - "\n", - "# Distribution des concentrations annuelles de CO₂ pour évaluer les années avec les concentrations les plus élevées\n", - "df_yearly_co2 = yearly_co2.sort_values().reset_index()\n", - "df_yearly_co2.columns = ['Année', 'Concentration moyenne de CO₂ (ppm)']\n", - "df_yearly_co2\n", - "\n", - "# Histogramme de la distribution annuelle de CO₂\n", - "yearly_co2.hist(xrot=20, color='skyblue')\n", - "plt.xlabel(\"Concentration annuelle moyenne de CO₂ (ppm)\")\n", - "plt.ylabel(\"Nombre d'années\")\n", - "plt.title(\"Distribution de la concentration annuelle moyenne de CO₂ à Mauna Loa\")\n", - "plt.show()\n" + "print(f\"Parametres fittés: a = {popt[0]:.2f}, b = {popt[1]:.4f}, c = {popt[2]:.2f}\")\n" ] }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": null, diff --git a/module3/exo3/exercice_python_en.org b/module3/exo3/exercice_python_en.org deleted file mode 100644 index 5782f49..0000000 --- a/module3/exo3/exercice_python_en.org +++ /dev/null @@ -1,94 +0,0 @@ -#+TITLE: Your title -#+AUTHOR: Your name -#+DATE: Today's date -#+LANGUAGE: en -# #+PROPERTY: header-args :eval never-export - -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Some explanations - -This is an org-mode document with code examples in R. Once opened in -Emacs, this document can easily be exported to HTML, PDF, and Office -formats. For more information on org-mode, see -https://orgmode.org/guide/. - -When you type the shortcut =C-c C-e h o=, this document will be -exported as HTML. All the code in it will be re-executed, and the -results will be retrieved and included into the exported document. If -you do not want to re-execute all code each time, you can delete the # -and the space before ~#+PROPERTY:~ in the header of this document. - -Like we showed in the video, Python code is included as follows (and -is exxecuted by typing ~C-c C-c~): - -#+begin_src python :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: Hello world! - -And now the same but in an Python session. With a session, Python's -state, i.e. the values of all the variables, remains persistent from -one code block to the next. The code is still executed using ~C-c -C-c~. - -#+begin_src python :results output :session :exports both -import numpy -x=numpy.linspace(-15,15) -print(x) -#+end_src - -#+RESULTS: -#+begin_example -[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041 - -11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592 - -8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143 - -5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694 - -2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245 - 0.30612245 0.91836735 1.53061224 2.14285714 2.75510204 - 3.36734694 3.97959184 4.59183673 5.20408163 5.81632653 - 6.42857143 7.04081633 7.65306122 8.26530612 8.87755102 - 9.48979592 10.10204082 10.71428571 11.32653061 11.93877551 - 12.55102041 13.16326531 13.7755102 14.3877551 15. ] -#+end_example - -Finally, an example for graphical output: -#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results -import matplotlib.pyplot as plt - -plt.figure(figsize=(10,5)) -plt.plot(x,numpy.cos(x)/x) -plt.tight_layout() - -plt.savefig(matplot_lib_filename) -print(matplot_lib_filename) -#+end_src - -#+RESULTS: -[[file:./cosxsx.png]] - -Note the parameter ~:exports results~, which indicates that the code -will not appear in the exported document. We recommend that in the -context of this MOOC, you always leave this parameter setting as -~:exports both~, because we want your analyses to be perfectly -transparent and reproducible. - -Watch out: the figure generated by the code block is /not/ stored in -the org document. It's a plain file, here named ~cosxsx.png~. You have -to commit it explicitly if you want your analysis to be legible and -understandable on GitLab. - -Finally, don't forget that we provide in the resource section of this -MOOC a configuration with a few keyboard shortcuts that allow you to -quickly create code blocks in Python by typing ~ -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: -#+HTML_HEAD: - -* Quelques explications - -Ceci est un document org-mode avec quelques exemples de code -python. Une fois ouvert dans emacs, ce document peut aisément être -exporté au format HTML, PDF, et Office. Pour plus de détails sur -org-mode vous pouvez consulter https://orgmode.org/guide/. - -Lorsque vous utiliserez le raccourci =C-c C-e h o=, ce document sera -compilé en html. Tout le code contenu sera ré-exécuté, les résultats -récupérés et inclus dans un document final. Si vous ne souhaitez pas -ré-exécuter tout le code à chaque fois, il vous suffit de supprimer -le # et l'espace qui sont devant le ~#+PROPERTY:~ au début de ce -document. - -Comme nous vous l'avons montré dans la vidéo, on inclue du code -python de la façon suivante (et on l'exécute en faisant ~C-c C-c~): - -#+begin_src python :results output :exports both -print("Hello world!") -#+end_src - -#+RESULTS: -: Hello world! - -Voici la même chose, mais avec une session python, donc une -persistance d'un bloc à l'autre (et on l'exécute toujours en faisant -~C-c C-c~). -#+begin_src python :results output :session :exports both -import numpy -x=numpy.linspace(-15,15) -print(x) -#+end_src - -#+RESULTS: -#+begin_example -[-15. -14.3877551 -13.7755102 -13.16326531 -12.55102041 - -11.93877551 -11.32653061 -10.71428571 -10.10204082 -9.48979592 - -8.87755102 -8.26530612 -7.65306122 -7.04081633 -6.42857143 - -5.81632653 -5.20408163 -4.59183673 -3.97959184 -3.36734694 - -2.75510204 -2.14285714 -1.53061224 -0.91836735 -0.30612245 - 0.30612245 0.91836735 1.53061224 2.14285714 2.75510204 - 3.36734694 3.97959184 4.59183673 5.20408163 5.81632653 - 6.42857143 7.04081633 7.65306122 8.26530612 8.87755102 - 9.48979592 10.10204082 10.71428571 11.32653061 11.93877551 - 12.55102041 13.16326531 13.7755102 14.3877551 15. ] -#+end_example - -Et enfin, voici un exemple de sortie graphique: -#+begin_src python :results output file :session :var matplot_lib_filename="./cosxsx.png" :exports results -import matplotlib.pyplot as plt - -plt.figure(figsize=(10,5)) -plt.plot(x,numpy.cos(x)/x) -plt.tight_layout() - -plt.savefig(matplot_lib_filename) -print(matplot_lib_filename) -#+end_src - -#+RESULTS: -[[file:./cosxsx.png]] - -Vous remarquerez le paramètre ~:exports results~ qui indique que le code -ne doit pas apparaître dans la version finale du document. Nous vous -recommandons dans le cadre de ce MOOC de ne pas changer ce paramètre -(indiquer ~both~) car l'objectif est que vos analyses de données soient -parfaitement transparentes pour être reproductibles. - -Attention, la figure ainsi générée n'est pas stockée dans le document -org. C'est un fichier ordinaire, ici nommé ~cosxsx.png~. N'oubliez pas -de le committer si vous voulez que votre analyse soit lisible et -compréhensible sur GitLab. - -Enfin, n'oubliez pas que nous vous fournissons dans les ressources de -ce MOOC une configuration avec un certain nombre de raccourcis -claviers permettant de créer rapidement les blocs de code python (en -faisant ~