...
 
Commits (21)
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
> Autrice : Flavie B. > Autrice : Flavie B.
> >
> Modifié le : 2025/08/25. > Modifié le : 2025/09/20.
## Préambule - Posons le décor ## Préambule - Posons le décor
...@@ -31,7 +31,7 @@ __Contenu :__ ...@@ -31,7 +31,7 @@ __Contenu :__
- [x] Fiches supplémentaires - [x] Fiches supplémentaires
- [x] Exercices - [x] Exercices
Liens vers les exercices réalisés : [Exercice](module1/exo2) __Liens vers les exercices réalisés :__ [Exercice](module1/exo2)
__Références utiles (pour moi) :__ __Références utiles (pour moi) :__
- [Tuto Markdown](https://www.jdbonjour.ch/cours/markdown-pandoc/) [depuis le cours] - [Tuto Markdown](https://www.jdbonjour.ch/cours/markdown-pandoc/) [depuis le cours]
...@@ -59,19 +59,105 @@ Je choisis donc de suivre le parcours Jupyter dans un premier temps, mais je com ...@@ -59,19 +59,105 @@ Je choisis donc de suivre le parcours Jupyter dans un premier temps, mais je com
__Contenu :__ __Contenu :__
- [x] Vidéos de présentation/cours - [x] Vidéos de présentation/cours
- [x] Tutos - [x] Tutos
- [ ] Exercices - [x] Exercices
__Tips jupyter :__
`Ctrl + Enter` pour exécuter la cellule; `Alt + Enter` pour exécuter la cellule et créer une nouvelle cellule en dessous;
`Esc + A` pour créer une nouvelle cellule au-dessus, `Esc + B` en dessous;
Tips : `Esc + M` pour transformer une cellule en Markdown, `Esc + Y` pour la transformer en code.
Pour personnaliser l'export jupyter notebook : Pour personnaliser l'export jupyter notebook :
``` ```
jupyter nbconvert --to mypackage.MyExporter notebook.ipynb jupyter nbconvert --to mypackage.MyExporter notebook.ipynb
``` ```
Liens vers les exercices réalisés : **Note pour l'exercice 4**
Apparemment suivre des consignes n'est pas mon fort, je n'ai pas noté de données quotidiennes dans mon journal de bord...
Pour pouvoir faire l'exercice 4 je récupère donc les données de température pour une même ville via le site data.gouv.fr :
[Données climatologiques quotidiennes](https://meteo.data.gouv.fr/datasets/donnees-climatologiques-de-base-quotidiennes/).
Fichier "Q_06_latest-2024-2025_RR-T-Vent.csv" téléchargé le 2025/08/26.
Etapes de l'analyse :
1. Préparer/filtrer les données avec un script R.
Pour perdre moins de temps je filtre les données en utilisant un script R ([prep_data.R](module2/exo4/prep_data.R)),
afin de ne garder que les données pour Nice du mois d'août, entre 2025/08/01 et 2025/08/25, pour les colonnes suivantes
```
NUM_POSTE = Numéro de la station météo
NOM_USUEL = Nom de la station météo
AAAAMMJJ = Date de la mesure au format année mois jour
RR = Quantité de précipitations sur 24h (en mm)
TN = Température minimale ce jour (en °C)
TX = Température maximale ce jour (en °C)
TM = Température moyenne ce jour (en °C)
```
J'exporte les données filtrées en format csv, pour servir de données d'entrée à charger depuis mon document computationnel.
2. Faire les analyses dans un document computationnel.
J'importe les données depuis le document computationnel ([exercice.ipynb](module2/exo4/exercice.ipynb)), je corrige quelques formats,
puis je suis enfin prête à réaliser des statistiques de base et quelques visualisations.
__Liens vers les exercices réalisés :__
- [Exo 1](module2/exo1/toy_notebook_fr.ipynb)
- [Exo 2](module2/exo2/exercice.ipynb)
- [Exo 3](module2/exo3/exercice.ipynb)
- [Exo 4](module2/exo4/exercice.ipynb)
- [Exo 5 sans correction](module2/exo5/exo5_fr.ipynb)
__Références utiles (pour moi) :__ __Références utiles (pour moi) :__
- [Critiques article Reihart-Rogoff sur dette](https://en.wikipedia.org/wiki/Growth_in_a_Time_of_Debt) - [Critiques article Reinhart-Rogoff sur dette](https://en.wikipedia.org/wiki/Growth_in_a_Time_of_Debt)
- [Défaut dans méthode stat IRMf](https://www.pnas.org/doi/10.1073/pnas.1602413113) & [Blog sur cet article et ses suites](https://www.cogneurosociety.org/debunking-the-myth-that-fmri-studies-are-invalid/) - [Défaut dans méthode stat IRMf](https://www.pnas.org/doi/10.1073/pnas.1602413113) & [Blog sur cet article et ses suites](https://www.cogneurosociety.org/debunking-the-myth-that-fmri-studies-are-invalid/)
- [Problèmes de reproductibilité en science avec recours aux ordinateurs](https://theconversation.com/how-computers-broke-science-and-what-we-can-do-to-fix-it-49938) - [Problèmes de reproductibilité en science avec recours aux ordinateurs](https://theconversation.com/how-computers-broke-science-and-what-we-can-do-to-fix-it-49938)
## Module 3 - La main à la pâte : une analyse réplicable
> Suivi la semaine du 2025/08/25.
S'entraîner à réaliser une analyse réplicable à l'aide d'un document computationnel.
__Contenu :__
- [x] Vidéo de cours
- [x] Etude de cas
- [ ] Exercices
__Liens vers les exercices réalisés :__
- [Exo 1](module3/exo1/analyse-syndrome-grippal.ipynb)
- [Exo 2](module3/exo2/exercice.ipynb)
**Exercice 3 - évalué par les pairs**
Choix du sujet : Sujet 3 - L'épidémie de choléra à Londres en 1854.
Représentation de données géographiques.
Ayant eu du mal avec la librarie "folium" (carte ne montrant pas les marqueurs créés sans erreur évidente),
je mets en pause la réalisation de l'exo 3 pour la reprendre après le MOOC Reproducible Research II.
## Module 4 - Vers une étude reproductible : la réalité du terrain
> Suivi la semaine du 2025/09/20.
Module qui illustre bien les différents niveaux de difficultés qu'on peut rencontrer
quand on analyse un grand volume de données, hétérogènes, avec des calculs plus ou moins complexes...
Avec R je trouve la fonction `set.seed()` absolument indispensable et ai commencé
à l'ajouter par défaut au début de la plupart de mes scripts.
Mais elle est loin de garantir de pouvoir la reproduction des résultats,
surtout quand on compare des calculs sous linux/Ubuntu et MacOS...
__Contenu :__
- [x] Vidéo de cours
- [ ] Exercices
J'ai pu rééxecuter avec succès le script en Rmd des analyses du Challenger sur ma machine (Exo1).
Je garde l'exo 3 ("Répliquer un papier de ReScience ou RunMyCode") pour après le MOOC Reproducible Research II.
{ {
"cells": [], "cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Savoir faire un calcul simple soi-même"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"data = [14.0, 7.6, 11.2, 12.8, 12.5, 9.9, 14.9, 9.4, 16.9, 10.2, 14.9, 18.1, 7.3, 9.8, 10.9,12.2, 9.9, 2.9, 2.8, 15.4, 15.7, 9.7, 13.1, 13.2, 12.3, 11.7, 16.0, 12.4, 17.9, 12.2, 16.2, 18.7, 8.9, 11.9, 12.1, 14.6, 12.1, 4.7, 3.9, 16.9, 16.8, 11.3, 14.4, 15.7, 14.0, 13.6, 18.0, 13.6, 19.9, 13.7, 17.0, 20.5, 9.9, 12.5, 13.2, 16.1, 13.5, 6.3, 6.4, 17.6, 19.1, 12.8, 15.5, 16.3, 15.2, 14.6, 19.1, 14.4, 21.4, 15.1, 19.6, 21.7, 11.3, 15.0, 14.3, 16.8, 14.0, 6.8, 8.2, 19.9, 20.4, 14.6, 16.4, 18.7, 16.8, 15.8, 20.4, 15.8, 22.4, 16.2, 20.3, 23.4, 12.1, 15.5, 15.4, 18.4, 15.7, 10.2, 8.9, 21.0]"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[14.0, 7.6, 11.2, 12.8, 12.5]"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data[:5]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"On va calculer : \n",
"- Moyenne des données\n",
"- Ecart-type\n",
"- Min\n",
"- Médiane\n",
"- Max"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Moyenne = 14.11\n"
]
}
],
"source": [
"print(\"Moyenne =\", round(np.mean(data), 2))"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Ecart-type = 4.33\n"
]
}
],
"source": [
"print(\"Ecart-type =\", round(np.std(data, ddof=1), 2))"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Min = 2.8\n"
]
}
],
"source": [
"print(\"Min =\", np.min(data))"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Mediane = 14.5\n"
]
}
],
"source": [
"print(\"Mediane =\", np.median(data))"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Max = 23.4\n"
]
}
],
"source": [
"print(\"Max =\", np.max(data))"
]
}
],
"metadata": { "metadata": {
"kernelspec": { "kernelspec": {
"display_name": "Python 3", "display_name": "Python 3",
...@@ -16,10 +159,9 @@ ...@@ -16,10 +159,9 @@
"name": "python", "name": "python",
"nbconvert_exporter": "python", "nbconvert_exporter": "python",
"pygments_lexer": "ipython3", "pygments_lexer": "ipython3",
"version": "3.6.3" "version": "3.6.4"
} }
}, },
"nbformat": 4, "nbformat": 4,
"nbformat_minor": 2 "nbformat_minor": 2
} }
This diff is collapsed.
"NUM_POSTE";"NOM_USUEL";"AAAAMMJJ";"RR";"TN";"TX";"TM"
6088001;"NICE";20250801;0;20.8;26.5;24.1
6088001;"NICE";20250802;0;20.2;27.8;24.2
6088001;"NICE";20250803;0;21;27.4;24.5
6088001;"NICE";20250804;0;22;27.2;24.6
6088001;"NICE";20250805;0;21.7;27.1;24.6
6088001;"NICE";20250806;0;21.5;27.5;25.1
6088001;"NICE";20250807;0;22.7;28.4;25.9
6088001;"NICE";20250808;0;24.3;29.1;26.4
6088001;"NICE";20250809;0;24.4;29.7;27.3
6088001;"NICE";20250810;0;24.8;30.7;28.3
6088001;"NICE";20250811;0;26.5;34.7;30
6088001;"NICE";20250812;0;28.7;33.6;30.1
6088001;"NICE";20250813;0;27.6;35.1;29.7
6088001;"NICE";20250814;0;26.7;34;29.5
6088001;"NICE";20250815;0;25.5;35.7;29.1
6088001;"NICE";20250816;0;25.8;34.9;29.2
6088001;"NICE";20250817;0;26.5;31.4;28.8
6088001;"NICE";20250818;0;26;30.1;27.8
6088001;"NICE";20250819;0;24.8;28.7;26.8
6088001;"NICE";20250820;13;19.8;27.4;24.5
6088001;"NICE";20250821;2.2;20.4;28.7;22.9
6088001;"NICE";20250822;0;19.3;27.2;23.8
6088001;"NICE";20250823;0;20.9;27.2;24.4
6088001;"NICE";20250824;0;20.9;27.1;24.6
This diff is collapsed.
#!/usr/bin/env Rscript
data = read.table("data/Q_06_latest-2024-2025_RR-T-Vent.csv", sep = ";", header = TRUE)
str(data)
# Keep only columns of interest
data_interest = data[, c("NUM_POSTE", "NOM_USUEL", "AAAAMMJJ", "RR", "TN", "TX", "TM")]
# Keep only data for Nice and for august 2025
filtered_name = data_interest[which(data$NOM_USUEL == "NICE"),]
nrow(filtered_name)
filtered_date = filtered_name[which(filtered_name$AAAAMMJJ > 20250731),]
nrow(filtered_date)
# Export filtered data
write.table(filtered_date, file = "data/Q_06_latest-2024-2025_RR-T-Vent_filtered_Nice_20250801-26.csv", sep = ";", row.names = FALSE, col.names = TRUE)
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.
This source diff could not be displayed because it is too large. You can view the blob instead.
This diff is collapsed.