Cartographie, placer des valeurs simplement sur un fond de carte

Rendu final

Graĉe à la librairie Folium, ce script en Python permet de placer facilement sur un fond de carte des valeurs données.

Téléchargement

Les fichiers suivants sont nécessaires :

Installation des dépendances Python :

pip install clize
pip install folium
pip install jinja2
pip install selenium
pip install xlrd

Utilisation

Les données

Pour utiliser le script, il faut tout d’abord disposer d’un fichier xlsx avec les colonnes suivantes :

  • Nom : une chaîne texte ou html,
  • Latitude : latitude GPS au format décimal,
  • Longitude : longitude GPS au format décimal.

De façon optionnelle :

  • Taille : la taille du point à placer,
  • Couleur : la couleur du point en notation html.

L’ordre des colonnes importe peut, seul l’entête des colonnes est important.

Latitude Longitude Taille Nom Couleur
45.966799 4.094492 5000 Saint Cyr de Favière #FF00FF
45.530354 3.988017 4500 Gumières #FF0000
43.314835 3.138366 8000 Colombier #FF0000
45.719658 4.340391 3000 St Barthélemy Lestra #FF00FF
47.638726 6.205383 10000 Auxon les Vesoul #FF00FF
48.182818 -0.127533 12000 Sillé le Guillaume #FF00FF
44.200217 3.922162 9000 Saint Martin de Boubaux #FF0000
45.403881 4.181305 3000 St Maurice en Gourgois #FF0000
43.863403 5.429098 7000 Saignon #FFFF00
45.447486 4.589925 6000 La Terrasse sur Dorlay #FFFF00
46.065794 3.913783 1200 Saint-Haon le Châtel #FFFF00
49.528928 -1.519935 20000 Saint Joseph #00FF00
45.385826 3.972102 4000 Roche en Forez #00FF00
45.423278 4.673270 11000 Pélussin #00FF00

L’exemple est téléchargeable ici.

Si vos coordonnées géographiques sont des adresses postables, vous pouvez utiliser le site suivant pour les convertir en coordonnées géographiques : Batch geocode

Génération de la carte

Pour générer la carte, il suffit de lancer la commande suivante :

python render_map.py  201511_Cartographie.xlsx

Le script va générer un fichier html contenant la carte générée.

Quelques options sont disponibles :

  • -c, --default-color : par défaut si non précisée dans le tableau
  • -f, --fill-opacity : opacité du remplissage
  • -l, --line-color : couleur de la ligne de contour
  • -o, --output : nom du fichier de sortie
  • -r, --render : rendu dans un fichier png au moyen de Firefox, géré avec Selenium
  • -s, --sheet : permet de sélectionner l’onglet par nom

L’option render est intéressante car elle permet de réaliser une copie d’écran automatiquement. Il faut pour cela disposer du navigateur Firefox. Le fichier prendra le nom du fichier de sortie avec l’extension .html.

Rendu final

Attention, la carte est centrée par défaut sur la France, si vous voulez un autre point central par défaut ou un autre niveau de zoom, il faut éditer le code :

carte_map = folium.Map(location=[47, 4], zoom_start=6, tiles='Mapbox Bright')

Le paramètre tiles permet de choisir le fond de carte parmi Stamen Toner, Mapbox Bright ou le rendu OpenStreetMap par défaut.