Localisation, cartographie et mobilité

Marquer les lieux des tremblements de terre

Les données

Sur le site de l'US Geological Survey on a accès aux données relatives aux tremblements de terre

Le site met à disposition plusieurs types de fichiers  :

  • dernière heure

  • dernier jour

  • derniers 7 jours etc ....

On choisira de visualiser les séismes d'une magnitude supérieure à 2.5 le mois dernier : (M2.5+ Earthquakes)

Si on ouvre ce fichier avec LibreOffice :

On y voit :

  • les localisations des séismes

  • Les magnitudes (mag)

  • etc...

Repérez les n° de colonne de :

  • La latitude

  • La longitude

  • La magnitude (mag)

SimulationUn programme

Nous allons écrire et exécuter le programme suivant qui permet d'afficher sur une carte les lieux et magnitudes des séismes de ce fichier :

1
2
'''
3
Programme qui affiche sur une carte les lieux des séismes de magnitudes supérieure à 2.5
4
en rouge si la magnitude est supérieure à 5
5
en bleu entre 4 et 5
6
en vert les autres
7
'''
8
#import des bibliothèques
9
import csv
10
import requests
11
import webbrowser
12
import folium
13
14
#création de la carte
15
carte_tremblements = folium.Map(location=[0,0], zoom_start=3)
16
17
# Importation des données au format CSV en direct
18
url="http://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/2.5_month.csv"
19
csvfile = requests.get(url)
20
csvfile = csvfile.content.decode('utf-8')
21
tremblements_csv = csv.reader(csvfile.splitlines(), delimiter=',')
22
23
# pour éviter la ligne d'en têtes.
24
header = next(tremblements_csv)
25
26
# On lit maintenant chaque ligne  du fichier csv téléchargé
27
for ligne in tremblements_csv :
28
  latitude = float(ligne[1])
29
  longitude = float(ligne[2])
30
  magnitude = "Magnitude : "+ str(ligne[4])
31
  if float(ligne[4]) > 5 :
32
    folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='red')).add_to(carte_tremblements)
33
  elif float(ligne[4]) > 4 :
34
    folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='blue')).add_to(carte_tremblements)
35
  else :
36
    folium.Marker([latitude,longitude],popup = magnitude,icon = folium.Icon(color='green')).add_to(carte_tremblements)
37
38
39
40
carte_tremblements.save('ma_carte.html')
41
webbrowser.open('ma_carte.html')
42

Travail à réaliser :

  • Écrire et exécutez ce programme

  • Comparez le résultat avec une carte des dorsales océaniques

  • Modifiez ce programme pour qu'il affiche avec une autre couleur les séismes dont la magnitude est comprise entre 3 et 4

PrécédentPrécédentSuivantSuivant
AccueilAccueilImprimerImprimer Stéphan Van Zuijlen Licence de documentation libre GNURéalisé avec Scenari (nouvelle fenêtre)