From 7e6488d4789cfc0e36a06be4836c2ae5a7dd6277 Mon Sep 17 00:00:00 2001 From: 992eb64fd0cd187976e6ded1b964880e <992eb64fd0cd187976e6ded1b964880e@app-learninglab.inria.fr> Date: Wed, 19 May 2021 15:16:47 +0000 Subject: [PATCH] Upload New File --- module3/exo3/peer-reviewed_exercise.html | 13440 +++++++++++++++++++++ 1 file changed, 13440 insertions(+) create mode 100644 module3/exo3/peer-reviewed_exercise.html diff --git a/module3/exo3/peer-reviewed_exercise.html b/module3/exo3/peer-reviewed_exercise.html new file mode 100644 index 0000000..7365c94 --- /dev/null +++ b/module3/exo3/peer-reviewed_exercise.html @@ -0,0 +1,13440 @@ + + +
+ +En 1854, le quartier de Soho à Londres a vécu une des pires épidémies de choléra du Royaume-Uni, avec 616 morts.
+Cette épidémie est devenue célèbre à cause de l'analyse détaillée de ses causes réalisée par le médecin John Snow.
+Ce dernier a notamment montré que le choléra est transmis par l'eau plutôt que par l'air, ce qui était la théorie dominante de l'époque.
+Un élément clé de cette analyse était une carte sur laquelle John Snow avait marqué les lieux des décès et les endroits où se trouvaient les pompes à eau publiques. Ces données sont aujourd'hui disponibles sous forme numérique. Nous vous proposons de les utiliser pour recréer la carte de John Snow dans un document computationnel réplicable.
Les données du nombre de morts du Choléra à Londres en 1854 ainsi que leurs localisations et la position des pompes dans la ville sont disponibles sur le site Web http://blog.rtwilson.com/john-snows-cholera-data-in-more-formats/. +Pour nous protéger contre une éventuelle disparition ou modification du site faisons une copie locale de ce jeux de données que nous préservons avec notre analyse. Il est inutile et même risquée de télécharger les données à chaque exécution, car dans le cas d'une panne nous pourrions remplacer nos données par un fichier défectueux. Pour cette raison, nous téléchargeons les données seulement si la copie locale n'existe pas.
+ +data_url = "http://rtwilson.com/downloads/SnowGIS_SHP.zip"
+data_file = "SnowGIS_SHP.zip"
+
+# Import data from url
+import os
+import urllib.request
+if not os.path.exists(data_file):
+ urllib.request.urlretrieve(data_url, data_file)
+
# Unzip file
+import zipfile
+zip = zipfile.ZipFile("SnowGIS_SHP.zip")
+zip.extractall()
+
# Install geopandas
+# ! python3 -m pip install geopandas
+# Convert shapefile to GEOJSON
+import geopandas
+shp_Cholera_Deaths = geopandas.read_file('SnowGIS_SHP/Cholera_Deaths.shp')
+shp_Cholera_Deaths.to_file('SnowGIS_SHP/Cholera_Deaths.geojson', driver='GeoJSON')
+shp_Pumps = geopandas.read_file('SnowGIS_SHP/Pumps.shp')
+shp_Pumps.to_file('SnowGIS_SHP/Pumps.geojson', driver='GeoJSON')
+
On représente sur une ancienne carte de Londres les pompes à eau publiques par des points bleus et les décès dûs au cholera par de points de taille proportionnelle à leur nombre à chaque position.
+ +import matplotlib.pyplot as plt
+%matplotlib inline
+# plots both elements
+# Install rasterio
+#! python3 -m pip install rasterio
+import rasterio
+import rasterio.plot as rsplot
+
+# Import maps
+London_map = rasterio.open('SnowGIS_SHP/OSMap_Grayscale.tif')
+
+# coordinates and scaling factors
+scale_x = London_map.transform[4]
+scale_y = London_map.transform[0]
+x0 = London_map.transform[2]
+y0 = London_map.transform[5]
+
+# translates back shapefile
+shp_Pumps = geopandas.read_file('SnowGIS_SHP/Pumps.shp')
+shp_Pumps.geometry = shp_Pumps.translate(-x0, -y0)
+shp_Pumps.geometry = shp_Pumps.scale(-1.0/scale_x, -1.0/scale_y, origin=(0, 0, 0))
+shp_Cholera_Deaths = geopandas.read_file('SnowGIS_SHP/Cholera_Deaths.shp')
+shp_Cholera_Deaths.geometry = shp_Cholera_Deaths.translate(-x0, -y0)
+shp_Cholera_Deaths.geometry = shp_Cholera_Deaths.scale(-1.0/scale_x, -1.0/scale_y, origin=(0, 0, 0))
+# representation
+fig, ax = plt.subplots(figsize=(12,12))
+ax = rsplot.show(London_map.read(), with_bounds=True, ax=ax, cmap="gray")
+shp_Pumps.plot(ax=ax, markersize=50)
+shp_Cholera_Deaths.plot(ax=ax, color='red', markersize=shp_Cholera_Deaths['Count']*6)
+ax.legend(labels=["pompes","morts du cholera"])
+
Par la suite on représente ces points sur la carte réalisée par John Snow en 1854 qui avait marqué les lieux des décès et les endroits où se trouvaient les pompes à eau publiques.
+ +# Overlay it on John Snow’s original map
+Snow_map = rasterio.open('SnowGIS_SHP/SnowMap.tif')
+# coordinates and scaling factors
+scale_x = Snow_map.transform[4]
+scale_y = Snow_map.transform[0]
+x0 = Snow_map.transform[2]
+y0 = Snow_map.transform[5]
+
+# translates back shapefile
+shp_Pumps = geopandas.read_file('SnowGIS_SHP/Pumps.shp')
+shp_Pumps.geometry = shp_Pumps.translate(-x0, -y0)
+shp_Pumps.geometry = shp_Pumps.scale(-1.0/scale_x, -1.0/scale_y, origin=(0, 0, 0))
+shp_Cholera_Deaths = geopandas.read_file('SnowGIS_SHP/Cholera_Deaths.shp')
+shp_Cholera_Deaths.geometry = shp_Cholera_Deaths.translate(-x0, -y0)
+shp_Cholera_Deaths.geometry = shp_Cholera_Deaths.scale(-1.0/scale_x, -1.0/scale_y, origin=(0, 0, 0))
+
+fig, ax = plt.subplots(figsize=(12,12))
+ax=rsplot.show(Snow_map.read(),with_bounds=True, ax=ax, cmap="gray")
+shp_Pumps.plot(ax=ax,markersize=50)
+shp_Cholera_Deaths.plot(ax=ax, color='red', markersize=shp_Cholera_Deaths['Count']*6)
+ax.legend(labels=["pompes","morts du cholera"])
+
On constate comme John Snow l'avait fait à l'époque que les décès dûs au Cholera se concentre autour de la pompe de la pompe de Broad Street dont l'eau était certainement contaminée.
+ +Pour finir on utilise folium
pour représenter sur une carte interactive de Londres, d'une part les pompes d'eau publiques par un icône goutte d'eau et d'autre part les morts du Cholera par des icônes noire avec une croix qui se regroupent sous la forme d'icônes circulaire indiquant le nombre de décès lorsque on dézoome la carte.
# Intsall folium module
+#! python3 -m pip install folium
+import numpy
+import pandas
+import folium
+from folium.plugins import MarkerCluster
+map = folium.Map(location=[51.5130, -0.1380], zoom_start=16)
+Cholera_Deaths = geopandas.read_file('SnowGIS_SHP/Cholera_Deaths.geojson')
+Pumps = geopandas.read_file('SnowGIS_SHP/Pumps.geojson')
+marker_cluster = MarkerCluster().add_to(map)
+folium.GeoJson(Cholera_Deaths, name="deaths", marker=folium.Marker(icon=folium.Icon(color='black', icon="times", prefix='fa'))).add_to(marker_cluster)
+folium.GeoJson(Pumps, name="pumps", marker=folium.Marker(icon=folium.Icon(color='blue',icon='tint'))).add_to(map)
+map
+
Cette carte met en évidence que la pompe de Broad Street est au centre de l'épidémie, en effet la densité des décès dans ce quartier est bien plus importante que dans le reste de la ville.
+ +