From e1fd89fc1991b712cee11b8dff283da793345b7d Mon Sep 17 00:00:00 2001 From: 0c07d516632c138624818b1d249c5f44 <0c07d516632c138624818b1d249c5f44@app-learninglab.inria.fr> Date: Tue, 29 Apr 2025 09:07:10 +0000 Subject: [PATCH] Ajout du README.md --- module3/exo3/README.md | 74 ++++++++++++++++++ module3/exo3/README.txt | 23 ------ ...ENTON_notebook.ipynb => exercice_fr.ipynb} | 78 ++++--------------- 3 files changed, 89 insertions(+), 86 deletions(-) create mode 100644 module3/exo3/README.md delete mode 100644 module3/exo3/README.txt rename module3/exo3/{GERENTON_notebook.ipynb => exercice_fr.ipynb} (59%) diff --git a/module3/exo3/README.md b/module3/exo3/README.md new file mode 100644 index 0000000..190830e --- /dev/null +++ b/module3/exo3/README.md @@ -0,0 +1,74 @@ + +# Analyse de l'épidémie de choléra à Soho (1854) + +Ce projet recrée la célèbre carte réalisée par John Snow en 1854, montrant la répartition des décès dus au choléra dans le quartier de Soho à Londres. L'objectif est de reproduire cette carte à l'aide de données géographiques historiques, tout en explorant des méthodes modernes de visualisation pour mieux comprendre l'épidémie. + +## Contexte historique + +En 1854, le quartier de Soho à Londres a été frappé par une épidémie de choléra, qui a causé la mort de 616 personnes. L’épidémie est devenue célèbre en raison des travaux de John Snow, un médecin qui a démontré que le choléra était transmis par l'eau et non par l'air, contrairement à la théorie dominante de l'époque. Son analyse repose sur une carte dans laquelle il a localisé les décès et les pompes à eau publiques de Soho. + +## Objectifs du projet + +L'objectif de ce projet est de reproduire et d'enrichir l'analyse historique de John Snow à travers la création d'une carte interactive. Nous avons suivi les étapes suivantes pour recréer cette analyse : + +1. **Représentation des lieux de décès :** Nous avons utilisé des symboles de tailles proportionnelles pour indiquer les emplacements des décès dus au choléra, selon les données disponibles. + +2. **Localisation des pompes à eau :** Nous avons ajouté sur la carte les emplacements des pompes à eau publiques, en utilisant un symbole distinct pour les différencier des lieux de décès. + +3. **Analyse de la densité des décès :** Nous avons calculé et visualisé la densité des décès pour mettre en évidence la concentration autour de la pompe de Broad Street. + +## Description du projet + +Ce projet se compose des étapes suivantes : + +### 1. **Chargement des données** + - Nous avons utilisé des fichiers **Shapefile** pour charger les données géographiques des décès dus au choléra et des pompes à eau publiques dans Soho en 1854. + +### 2. **Conversion des coordonnées** + - Les données géographiques sont en système de coordonnées British National Grid (EPSG:27700). Nous avons effectué une conversion vers le système WGS 84 (EPSG:4326) pour pouvoir les afficher correctement sur une carte interactive. + +### 3. **Création de la carte interactive** + - À l'aide de la bibliothèque **Folium**, nous avons créé une carte interactive affichant les lieux des décès et des pompes à eau. Les cercles rouges représentent les décès, et les marqueurs bleus indiquent les pompes à eau. + +### 4. **Analyse de la densité des décès** + - Nous avons utilisé une **heatmap** pour visualiser la concentration des décès autour de certaines pompes, notamment la pompe de Broad Street, afin de souligner son rôle central dans l'épidémie. + +## Résultats + +- La carte interactive montre les lieux des décès et les pompes à eau publiques. Les cercles rouges sont proportionnels au nombre de décès. +- La carte de chaleur (heatmap) met en évidence la concentration des décès autour de la pompe de Broad Street, ce qui confirme l'hypothèse de John Snow selon laquelle la pompe était au centre de l’épidémie. + +## Conseils techniques + +- **Python / Jupyter Notebook :** Pour ce projet, nous avons utilisé **Python** dans un environnement Jupyter Notebook, avec des bibliothèques comme **GeoPandas** pour la gestion des données géographiques et **Folium** pour la création des cartes interactives. + +- **Folium** permet de créer des cartes interactives basées sur **OpenStreetMap**, ce qui est une bonne alternative gratuite aux services comme Google Maps. + +## Instructions pour l'exécution + +1. **Prérequis :** + - Python 3.x + - Bibliothèques nécessaires : `geopandas`, `folium`, `matplotlib`, `shapely`, `pandas`, `numpy`, etc. + - Les fichiers de données **Cholera_Deaths.shp** et **Pumps.shp** doivent être disponibles dans le même répertoire que ce projet. + +2. **Installation des bibliothèques :** + - Pour installer les bibliothèques nécessaires, exécutez la commande suivante dans votre terminal : + + ```bash + pip install geopandas folium matplotlib shapely pandas numpy + ``` + +3. **Exécution du notebook :** + - Ouvrez le notebook Jupyter et exécutez les cellules pour voir les résultats. La carte interactive sera générée et affichée directement dans le notebook. + +4. **Exportation en HTML :** + - Le fichier **exercice_fr.html** contient les résultats de l'analyse sous forme de carte interactive. Vous pouvez l'ouvrir dans un navigateur pour visualiser les cartes. + +## Conclusion + +Ce projet permet de recréer et d'enrichir l'analyse historique de John Snow sur l’épidémie de choléra à Soho en 1854. Grâce à la visualisation moderne des données géospatiales, nous pouvons mieux comprendre l'impact de la pompe de Broad Street et la répartition des décès dus au choléra. Ce travail illustre l'importance de l'analyse géospatiale dans les épidémies et comment les outils modernes peuvent aider à mieux comprendre les événements historiques. + +## Auteur + +- **Victor Gérenton** + diff --git a/module3/exo3/README.txt b/module3/exo3/README.txt deleted file mode 100644 index e72abee..0000000 --- a/module3/exo3/README.txt +++ /dev/null @@ -1,23 +0,0 @@ -README file for Snow GIS data ------------------------------ - -This zip file contains a number of GIS layers relating to John Snow's 1854 investigation of a -Cholera outbreak in London - considered by many to be the first use of geographical analysis -in an epidemiological study. More details on the history are available at -http://en.wikipedia.org/wiki/1854_Broad_Street_cholera_outbreak - -This file contains a number of GIS layers created from Snow's original map which allow analyses to be -conducted on the data in modern GIS systems. For example, clustering of cases can be analysed and the -effect of spatial aggregation in modern anonymised health data releases. Of course, it's also just -interesting to look at the area, and how little it has changed since 1854. - -Files included: -(Many of the items in the list consist of many actual files (for example .shp, .dbf etc) - -* OSMap Raster Modern OS map of the area of the outbreak (from OS Open Data - contains Ordnance Survey data © Crown copyright and database right 2013) -* OSMap_Greyscale Raster Same as above, but in greyscale for easier visualisation (altered by conversion to greyscale, from OS Open Data - contains Ordnance Survey data © Crown copyright and database right 2013) -* SnowMap Raster Snow's original map, georeferenced and warped so that it accurately overlays the OS map -* CholeraDeaths Vector Points for each location of one or more deaths. Attribute value gives number of deaths at that location -* Pumps Vector Points for each location of a pump - -Created and compiled by Robin Wilson (robin@rtwilson.com, www.rtwilson.com/academic) - Jan 2011. \ No newline at end of file diff --git a/module3/exo3/GERENTON_notebook.ipynb b/module3/exo3/exercice_fr.ipynb similarity index 59% rename from module3/exo3/GERENTON_notebook.ipynb rename to module3/exo3/exercice_fr.ipynb index a1fb109..efd4e11 100644 --- a/module3/exo3/GERENTON_notebook.ipynb +++ b/module3/exo3/exercice_fr.ipynb @@ -24,49 +24,9 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Requirement already satisfied: geopandas==0.9.0 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 1)) (0.9.0)\n", - "Requirement already satisfied: folium==0.12.1 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 2)) (0.12.1)\n", - "Requirement already satisfied: branca==0.4.2 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 3)) (0.4.2)\n", - "Requirement already satisfied: rasterio==1.2.10 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 4)) (1.2.10)\n", - "Requirement already satisfied: pandas==1.1.5 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 5)) (1.1.5)\n", - "Requirement already satisfied: shapely==1.7.1 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 6)) (1.7.1)\n", - "Requirement already satisfied: fiona==1.8.20 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 7)) (1.8.20)\n", - "Requirement already satisfied: pyproj==2.6 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 8)) (2.6.0)\n", - "Requirement already satisfied: numpy==1.19.5 in /opt/conda/lib/python3.6/site-packages (from -r requirements.txt (line 9)) (1.19.5)\n", - "Requirement already satisfied: jinja2>=2.9 in /opt/conda/lib/python3.6/site-packages (from folium==0.12.1->-r requirements.txt (line 2)) (2.11.0)\n", - "Requirement already satisfied: requests in /opt/conda/lib/python3.6/site-packages (from folium==0.12.1->-r requirements.txt (line 2)) (2.23.0)\n", - "Requirement already satisfied: cligj>=0.5 in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (0.7.2)\n", - "Requirement already satisfied: attrs in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (19.3.0)\n", - "Requirement already satisfied: certifi in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (2020.4.5.1)\n", - "Requirement already satisfied: affine in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (2.3.1)\n", - "Requirement already satisfied: setuptools in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (45.2.0.post20200209)\n", - "Requirement already satisfied: click-plugins in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (1.1.1)\n", - "Requirement already satisfied: click>=4.0 in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (8.0.4)\n", - "Requirement already satisfied: snuggs>=1.4.1 in /opt/conda/lib/python3.6/site-packages (from rasterio==1.2.10->-r requirements.txt (line 4)) (1.4.7)\n", - "Requirement already satisfied: python-dateutil>=2.7.3 in /opt/conda/lib/python3.6/site-packages (from pandas==1.1.5->-r requirements.txt (line 5)) (2.8.1)\n", - "Requirement already satisfied: pytz>=2017.2 in /opt/conda/lib/python3.6/site-packages (from pandas==1.1.5->-r requirements.txt (line 5)) (2019.3)\n", - "Requirement already satisfied: six>=1.7 in /opt/conda/lib/python3.6/site-packages (from fiona==1.8.20->-r requirements.txt (line 7)) (1.14.0)\n", - "Requirement already satisfied: munch in /opt/conda/lib/python3.6/site-packages (from fiona==1.8.20->-r requirements.txt (line 7)) (4.0.0)\n", - "Requirement already satisfied: MarkupSafe>=0.23 in /opt/conda/lib/python3.6/site-packages (from jinja2>=2.9->folium==0.12.1->-r requirements.txt (line 2)) (1.1.1)\n", - "Requirement already satisfied: chardet<4,>=3.0.2 in /opt/conda/lib/python3.6/site-packages (from requests->folium==0.12.1->-r requirements.txt (line 2)) (3.0.4)\n", - "Requirement already satisfied: idna<3,>=2.5 in /opt/conda/lib/python3.6/site-packages (from requests->folium==0.12.1->-r requirements.txt (line 2)) (2.9)\n", - "Requirement already satisfied: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in /opt/conda/lib/python3.6/site-packages (from requests->folium==0.12.1->-r requirements.txt (line 2)) (1.25.7)\n", - "Requirement already satisfied: importlib-metadata; python_version < \"3.8\" in /opt/conda/lib/python3.6/site-packages (from click>=4.0->rasterio==1.2.10->-r requirements.txt (line 4)) (4.8.3)\n", - "Requirement already satisfied: pyparsing>=2.1.6 in /opt/conda/lib/python3.6/site-packages (from snuggs>=1.4.1->rasterio==1.2.10->-r requirements.txt (line 4)) (2.4.6)\n", - "Requirement already satisfied: zipp>=0.5 in /opt/conda/lib/python3.6/site-packages (from importlib-metadata; python_version < \"3.8\"->click>=4.0->rasterio==1.2.10->-r requirements.txt (line 4)) (2.1.0)\n", - "Requirement already satisfied: typing-extensions>=3.6.4; python_version < \"3.8\" in /opt/conda/lib/python3.6/site-packages (from importlib-metadata; python_version < \"3.8\"->click>=4.0->rasterio==1.2.10->-r requirements.txt (line 4)) (4.1.1)\n", - "----------------------------------------\n", - "Toutes les bibliothèques sont installées !\n" - ] - } - ], + "outputs": [], "source": [ "!pip install -r requirements.txt\n", "\n", @@ -83,17 +43,9 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Toutes les bibliothèques sont importées !\n" - ] - } - ], + "outputs": [], "source": [ "# Importation des bibliothèques nécessaires à notre analyse\n", "import geopandas as gpd\n", @@ -125,7 +77,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -308,7 +260,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -381,7 +333,7 @@ "4 0 4 POINT (-0.13777 51.51320)" ] }, - "execution_count": 30, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" } @@ -411,19 +363,19 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 37, "metadata": {}, "outputs": [ { "data": { "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ - "" + "" ] }, - "execution_count": 31, + "execution_count": 37, "metadata": {}, "output_type": "execute_result" } @@ -472,7 +424,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 38, "metadata": { "scrolled": true }, @@ -480,13 +432,13 @@ { "data": { "text/html": [ - "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" ], "text/plain": [ - "" + "" ] }, - "execution_count": 32, + "execution_count": 38, "metadata": {}, "output_type": "execute_result" } -- 2.18.1