Utilisation des données d'un fichier Microsoft Excel pour établir une carte
Nom du fichier de données inséré dans le code Python.
Interaction Utilisateur/Ordinateur à l'aide de la console Python.
Méthode : Préparation
Utilisation d'édupython 3 et des Modules/Librairies xlrd, folium et webbrowser (Rappel installation Bibliothèque/Module).
Télécharger le fichier suivant et le placer dans le même dossier que le fichier Python.
Simulation : Code Python
1
#---------BIBLIOTHEQUES/MODULES---------2
import xlrd
3
import folium
4
import webbrowser
5
6
#----------PROGRAMME PRINCIPAL----------7
# Récupérer les données dans le fichier excel .xls8
leFichier = 'Donnees_Carte_ex.xls'
9
document = xlrd.open_workbook(leFichier)
10
feuille = document.sheet_by_index(0)
11
12
# Affichage informations du fichier dans la console Python13
print('----------------Informations Fichier----------------')
14
print('Nom du fichier = ', leFichier)
15
nom = feuille.name
16
print('Nom de la feuille = ', nom)
17
n= feuille.nrows
18
ndonnees = n-1
19
print('Nombre de données = ', ndonnees)
20
21
# Création d'une carte à partir des données du fichier Microsoft Excel22
centre = [46.548312, 3.287667]
23
carte = folium.Map(location=centre,zoom_start=11)
24
for i in range(1,n):
25
etiquette = feuille.cell_value(i,0)
26
longitude = feuille.cell_value(i,1)
27
latitude = feuille.cell_value(i,2)
28
donnee = feuille.cell_value(i,3)
29
lieu = [longitude, latitude]
30
# Ajout marqueur aux coordonnées avec légende, couleur à la carte31
folium.Marker(location=lieu, popup=etiquette, icon=folium.Icon(color='green')).add_to(carte)
32
# Ajout périmètre donnée(s) à la carte33
rayon = donnee*1000
34
folium.Circle(lieu, radius = rayon, fill=True, color='orange').add_to(carte)
35
36
# enregistrement et affichage de la carte37
nomcarte = nom+'.html'
38
carte.save(nomcarte)
39
webbrowser.open(nomcarte)
Simulation : Code Python commenté
1
# ---------BIBLIOTHEQUES:MODULES---------2
3
import xlrd # de traitement de ficher Microsoft Excel .xls
4
# https://xlrd.readthedocs.io/5
6
import folium # Bibliothèque/Module de gestion de cartes interactives
7
# https://python-visualization.github.io/folium/modules.html8
# http://python.abriand.info/SNT/GeoLocalisation/GeoLocalisation.html9
10
import webbrowser # Bibliothèque/Module
11
# https://docs.python.org/fr/3/library/webbrowser.html12
13
#----------PROGRAMME PRINCIPAL----------14
15
# Récupérer les données dans le fichier excel .xls16
leFichier = 'Donnees_Carte_ex.xls' # chemin vers le fichier
17
document = xlrd.open_workbook(leFichier) # lecture des données
18
feuille = document.sheet_by_index(0) # nommer la 1ère feuille (num 0) du classeur
19
20
# Affichage informations du fichier dans la console Python21
print('----------------Informations Fichier----------------')
22
23
print('Nom du fichier = ', leFichier)
24
25
nom = feuille.name # nom de la feuille (onglet) du classeur
26
print('Nom de la feuille = ', nom)
27
28
n= feuille.nrows # nombre de lignes utilisées dans la feuille excel
29
ndonnees = n-1 # retirer 1 = enlever la ligne des descripteurs
30
print('Nombre de données = ', ndonnees)
31
32
# Création d'une carte à partir des données du fichier Microsoft Excel33
centre = [46.548312, 3.287667] # coordonnées du centre de la carte affichée
34
carte = folium.Map(location=centre,zoom_start=11) # donne un nom de la carte avec son centre et le facteur de zoom
35
36
for i in range(1,n): # Boucle : Pour i=1 à n (ne pas commencer à 0 = 1ère ligne, descripteurs)
37
# Pour chaque valeur de i (ligne 1, ligne 2, ..., ligne n)38
etiquette = feuille.cell_value(i,0) # etiquette = valeur donnée colonne A (num 0), ligne i
39
longitude = feuille.cell_value(i,1) # longitude = valeur donnée colonne B (num 1), ligne i
40
latitude = feuille.cell_value(i,2) # latitude = valeur donnée colonne C (num 1), ligne i
41
donnee = feuille.cell_value(i,3) # donnee = valeur donnée colonne D (num 1), ligne i
42
lieu = [longitude, latitude] # lieu = coordonnées à partir des colonnes B et C, ligne i
43
# Ajout marqueur aux coordonnées avec légende, couleur à la carte44
# folium.Marker(location=lieu, popup=etiquette, icon=folium.Icon(color='green')).add_to(carte)45
folium.Marker(
46
location=lieu, # location = localisation du marqueur sur la carte
47
popup=etiquette, # popup = nom du marqueur
48
icon=folium.Icon(color='green') # icon = forme, couleur du marqueur
49
).add_to(carte)
50
# Ajout périmètre donnée(s) à la carte51
rayon = donnee*1000 # 1000 = transformer données km en m
52
# folium.Circle(lieu, radius = rayon, fill=True, color='orange').add_to(carte)53
folium.Circle(
54
lieu, # localisation du marqueur sur la carte (centre du cercle)
55
radius = rayon, # radius = rayon du cercle
56
fill=True, # fill = True pour surface colorée, False pour surface non colorée
57
color='orange' # color = couleur périmètre et surface (transparence)
58
).add_to(carte)
59
60
# enregistrement et affichage de la carte61
nomcarte = nom+'.html' # nom de la carte = nom de la feuille du classeur avec extension HTML
62
carte.save(nomcarte) # sauvegarder un fichier (dans le même dossier que le fichier python)
63
webbrowser.open(nomcarte) # ouvrir un fichier dans un navigateur web