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éthodePré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.

SimulationCode 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 .xls
8
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 Python
13
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 Excel
22
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 carte
31
    folium.Marker(location=lieu, popup=etiquette, icon=folium.Icon(color='green')).add_to(carte)
32
    # Ajout périmètre donnée(s) à la carte
33
    rayon = donnee*1000
34
    folium.Circle(lieu, radius = rayon, fill=True, color='orange').add_to(carte)
35
36
# enregistrement et affichage de la carte
37
nomcarte = nom+'.html'      
38
carte.save(nomcarte)        
39
webbrowser.open(nomcarte)   

SimulationCode 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.html
8
# http://python.abriand.info/SNT/GeoLocalisation/GeoLocalisation.html
9
10
import webbrowser   # Bibliothèque/Module
11
# https://docs.python.org/fr/3/library/webbrowser.html
12
13
#----------PROGRAMME PRINCIPAL----------
14
15
# Récupérer les données dans le fichier excel .xls
16
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 Python
21
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 Excel
33
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 carte
44
    # 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 carte
51
    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 carte
61
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