Bandeau haut

Outils pour utilisateurs

Outils du site


manuel:librairies_python

Présentation des librairies python geopandas, geoplot et folium pour la visualisation de données géospatiales

Le langage de programmation python a été créé en 1989 par Guido Van Rossum, aux Pays-Bas. La première version publique de ce langage a été publiée en 1991. La Python Software Foundation est l’association qui organise le développement de Python et anime la communauté de développeurs et utilisateurs. Python est un langage qui présente de nombreux avantages :

  • C’est un langage multiplateforme, c’est-à-dire qu’il fonctionne sur de nombreux systèmes d’exploitation : Windows, Mac OS X, Linux, Android, iOS…
  • C’est un langage gratuit, on peut l’installer sur autant d’ordinateurs que l'on souhaite.
  • C’est un langage interprété. On n’a pas besoin de compiler le script pour l’exécuter contrairement à des langages comme le C ou le C++. L'intérêt de cette caractéristique est qu'on a pas besoin de compiler à chaque fois le programme avant de le tester. On peut directement l'exécuter.
  • C’est un langage orienté objet.
  • C’est un langage simple d’utilisation.

Le langage python dispose de nombreuses bibliothèques. Ces dernières sont une collection de fonctions et de modules liées à un thème spécifique. Si ces modules appartiennent au pack originel du langage, ce sont des modules intégrés. Python a également été complété par des modules tiers. Ces modules ont été codées par des développeurs à partir des fonctions de bases du langage et ils sont accessible en open-source. Grace à la diversité de sa communauté, plusieurs librairies sont développées. C’est un site qui regroupe également une documentation nécessaire pour bien utiliser les librairies et indique la ligne de code nécessaire pour leur importation. On peut également trouver des indicateurs et astuces sur le site www.python.org. L’avantage des bibliothèques est qu’elles permettent de gagner un temps précieux.

Suivant les thèmes, nous avons plusieurs librairies disponibles.

Dataviz

  • matplotlib (elle sert à tracer et visualiser des données sous forme de graphiques)
  • seaborn (c'est une bibliothèque de visualisation de données Python basée sur matplotlib. Il permet le dessin de graphiques statistiques attrayants et informatifs)

Calcul

  • Pandas (c'est un outil d’analyse et de manipulation de données)
  • NumPy (c'est une bibliothèque pour le calcul scientifique en Python)
  • SciPy (c'est un package scientifique important de Python. Il est construit sur la base de Numpy et développé en C/C++. Il contient un large panel de fonctions mathématiques et scientifiques très performantes)

Web-Scraping

  • Requests (Le package requests permet d’effectuer des requêtes HTTP, comme celles que fait un navigateur)
  • BeautifulSoup (c'est une bibliothèque Python pour extraire des données des fichiers HTML et XML)

Machine Learning

  • TensorFlow (c'est une bibliothèque Python pour le calcul numérique rapide créée et publiée par Google)
  • PyTorch (c'est une bibliothèque logicielle Python open source d'apprentissage machine qui s'appuie sur Torch)

Il existe d’autres bibliothèques pour des domaines tels que la recherche scientifique avec par exemple la bibliothèque biopython qui permet de traiter et d’analyser plus facilement des données biologiques, la bibliothèque pyGame qui est utilisé dans le domaine des jeux vidéo etc. Nous avons aussi d’autres bibliothèques python permettant de travailler avec des données géospatiales. Dans ce qui suit, nous allons nous intéresser à quelques-unes de ces bibliothèques comme GeoPandas, Geoplot et Folium.

GeoPandas

Geopandas est un projet open-source permettant de travailler avec des données géospatiales avec python facilement. Il étend les types de données utilisées par pandas pour permettre des opérations sur des types de données spatiales. Les opérations géométriques sont effectuées par Shapely. Ce dernier est un paquet Python sous licence BSD pour la manipulation et l’analyse d’objets géométriques dans le plan cartésien.

GeoPandas dépend en outre de fiona pour l’accès aux fichiers et matplotlib pour le traçage. Fiona est l’API soignée et agile de GDAL pour les programmeurs Python. Il est conçu pour être simple et fiable. Fiona peut lire et écrire des données du monde réel en utilisant des multicouches aux format SIG et des systèmes de fichiers virtuels compressés et s'intègre facilement avec d’autres paquets SIG Python tels que pyproj, Rtree et Shapely. L’objectif de GeoPandas est de faciliter le travail avec des données géospatiales sous Python. Il combine les possibilités de pandas et Shapely, en fournissant des opérations géospatiales dans pandas et une interface élevée de géométrie multiple à shapely. GeoPandas permet de faire des opérations en Python qui nécessiterait normalement une base de données géospatiale comme PostGIS.

Exemple de carte interactive avec Geopandas : Lien externe

Geoplot

Geoplot est une bibliothèque de traçage géospatial python de haut niveau. C’est une extension de cartopy et matplotlib qui rend la cartographie facile : comme seaborn pour le géosptial. Il vient avec certaines entités :

  • Un API de traçage de haut niveau : c’est un tracé cartographique pour 90% des cas d’utilisation.
  • Un support de projection natif : sa particularité la plus fondamentale est la projection : comment dérouler une sphère sur une surface plane ?
  • Compatibilité avec matplolib : matplotlib est un format qui est bien intégré dans les autres outils bien qu’il ne soit pas adapté pour travailler directement avec données géospatiales.

Exemple d'application avec Geoplot et GeoPandas : Lien externe

Folium

Folium est une des nombreuses bibliothèques open source de python. C’est un puissant outil de visualisation puisqu’elle permet la conception de cartes interactives. C’est une catégorie de cartes intéressantes car elles sont produites par la bibliothèque JavaScript Leaflet et sont directement intégrable sur des sites web.

Folium fonctionne en mettant en lien les datasets qui contiennent les données géographiques des différents objets à afficher. Ces objets sont manipulés avec Python et Leaflet permet de générer le visuel de la cartographie.

La bibliothèque dispose d’un certain nombre de jeux de tuiles intégrés d’OpenStreetMap, MapQuest Open, MapQuest Open Aerial, Mapbox et Stamen, et prend en charge les jeux de tuiles personnalisés avec clés API Mapbox ou Cloudmade. Folium prend en charge les deux les superpositions GeoJSON et TopoJSON, ainsi que la liaison de données à ces superpositions pour créer des cartes choroplèthes avec des schémas de couleurs de brasseur de couleurs.

Ainsi il est possible d’afficher des données géographiques vectorielles avec une géométrie de type point, ligne ou polygone ou encore des grilles. Les possibilités permises par Folium sont nombreuses en termes de représentation.

Exemple d'application avec Folium :Lien externe

Bibliographie

Unwin D., Tate N., Foote K., DiBiase D. (éd.), 2011, Teaching Geographic Information Science and Technology in Higher Education, 1st edition. Oxford, Wiley, 496 p.

DER Serigne Ibra/2022-2023

manuel/librairies_python.txt · Dernière modification : //23/06/2023 18:49// de joliveau

Bandeau bas