Cartographie TP 5

Écrire votre nom

ici

Cartographie et données structurées

On trouve de nombreux sites qui proposent visualiser des données sur des cartes.

Le programme ci-dessous affiche sur une carte les localisations des tremblements de terre de magnitudes supérieures à 2.5 (pour le mois dernier)

Les bibliothèques utilisées :

  • csv pour le traitement des fichiers de données csv
  • requests pour le chargement de fichier à partir d'une url
  • folium pour la création de la carte

Testez ce code et le comparer avec une carte des dorsales océaniques

In [ ]:
'''
Programme qui affiche sur une carte les lieux des séismes de magnitudes supérieure à 2.5
en rouge si la magnitude est supérieure à 5
en bleu entre 4 et 5
en vert les autres
'''
#import des bibliothèques
import csv
import requests
import folium

#création de la carte
carte_tremblements = folium.Map(location=[0,0], zoom_start=3)

# Importation des données au format CSV
url="http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.csv"
csvfile = requests.get(url)
csvfile = csvfile.content.decode('utf-8')
tremblements_csv = csv.reader(csvfile.splitlines(), delimiter=',')

# pour éviter la ligne d'en têtes.
header = next(tremblements_csv)

# On lit maintenant chaque ligne  du fichier csv téléchargé
for ligne in tremblements_csv :
  latitude = float(ligne[1])
  longitude = float(ligne[2])
  magnitude = "Magnitude : "+ str(ligne[4])
  if float(ligne[4]) > 5 :
    folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='red')).add_to(carte_tremblements)
  elif float(ligne[4]) > 4 :
    folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='blue')).add_to(carte_tremblements)
  else :
    folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='green')).add_to(carte_tremblements)



carte_tremblements.save('macarte6.html')
display(carte_tremblements)

À faire :

Expliquez comment et pourquoi les marqueurs sont de couleurs différentes


Réponse :


À faire :

Voici une carte des dorsales océaniques

itineraire

Expliquez brièvement les similitudes entre les deux cartes

Voir ici pour plus d'informations


Réponse :


La population des villes dans le var...

Le programme suivant affiche sur une carte Les villes du var et leurs nombre d'habitants (données obtenues à partir d'un fichier qui contient ces informations pour toutes les villes de France en 2012)

In [ ]:
"""

population varoise
affichage du nombre d'habitants ( chiffres 2012 )
villes géolocalisées
"""
# import des bibliothèques
import folium
import csv
import requests
import webbrowser
# importation au format csv
url="https://sql.sh/ressources/sql-villes-france/villes_france.csv"
csvfile = requests.get(url)
csvfile = csvfile.content.decode('utf-8')

population_csv = csv.reader(csvfile.splitlines(), delimiter=',')


# Création de la carte centrée sur Draguignan
carte_population = folium.Map(location=[43.5374662,6.4627333], zoom_start=9)

# lecture des données

for ligne in population_csv :
    if ligne[1]=='83':
        longitude=float(ligne[19])
        latitude=float(ligne[20])
        population=int(ligne[15])
        nom=str(ligne[3])
        nom=nom+" : " +str(population) + "hab"
        if population >=20000 :
            folium.Marker([latitude,longitude], popup = nom, icon = folium.Icon(color='red')).add_to(carte_population)
        elif population > 15000 :
               folium.Marker([latitude,longitude], popup = nom, icon = folium.Icon(color='blue')).add_to(carte_population)
        elif population > 5000 :
            folium.Marker([latitude,longitude], popup = nom, icon = folium.Icon(color='green')).add_to(carte_population)
        elif population > 1000 :
            folium.Marker([latitude,longitude], popup = nom, icon = folium.Icon(color='orange')).add_to(carte_population)
        elif population > 10:
            folium.Marker([latitude,longitude], popup = nom, icon = folium.Icon(color='pink')).add_to(carte_population)


#affichage
carte_population.save("pop_var.html")
display(carte_population)

À faire :

Expliquez comment et pourquoi les marqueurs sont de couleurs différentes


Réponse :



À faire :

Reprendre ce dernier programme pour un autre département

In [ ]:
#Écrire le code ici

Pour les plus rapides...

Voici une autre visualisation possible :

In [ ]:
"""

population varoise


"""
import folium
import csv
import requests

# importation au format csv
url="https://sql.sh/ressources/sql-villes-france/villes_france.csv"
csvfile = requests.get(url)
csvfile = csvfile.content.decode('utf-8')

population_csv = csv.reader(csvfile.splitlines(), delimiter=',')


# Création de la carte centrée sur Draguignan
carte_population = folium.Map(location=[43.5374662,6.4627333], zoom_start=10)

# lecture des données

for ligne in population_csv :
    if ligne[1]=='83':

        longitude=float(ligne[19])
        latitude=float(ligne[20])
        population=int(ligne[15])
        nom=str(ligne[3])
        nom=nom+" : " +str(population) + " hab"
        rayon=population/1000

        if population >=20000 :
            folium.CircleMarker([latitude,longitude], tooltip = nom, radius = rayon,  color='red', fill_color = 'red' , fill_opacity = 0.2 ).add_to(carte_population)
        elif population > 10000 :
            rayon=rayon*3
            folium.CircleMarker([latitude,longitude], tooltip = nom, radius = rayon,  color='blue', fill_color = 'blue' , fill_opacity = 0.2 ).add_to(carte_population)
        elif population > 5000 :
            rayon=rayon*4
            folium.CircleMarker([latitude,longitude], tooltip = nom, radius = rayon,  color='green', fill_color = 'green' , fill_opacity = 0.2 ).add_to(carte_population)
        elif population > 1000 :
            rayon=rayon*4
            folium.CircleMarker([latitude,longitude], tooltip = nom, radius = rayon,  color='orange', fill_color = 'orange' , fill_opacity = 0.2 ).add_to(carte_population)
        elif population > 100:
            rayon=rayon*10
            folium.CircleMarker([latitude,longitude], tooltip = nom, radius = rayon,  color='pink', fill_color = 'pink' , fill_opacity = 0.2 ).add_to(carte_population)


#affichage
carte_population.save("pop_var2.html")
display(carte_population)

À faire :

Reprendre ce dernier programme, le comprendre et l'adapter pour un autre département

In [ ]:
# Écrire le code ici


Enregistrez ce travail sous le nom : cartographie_tp_1_votre_nom.ipynb et déposez le là où on vous le dira

Pour enregistrer:

  1. File
  2. Save notebook as
  3. Pour le récupérer cliquez sur le dossier à gauche en haut...
  4. cliquez droit sur le fichier et download

Autre méthode

Dans home sélectionnez le fichier et download