Vincent GODARD - V1.1 - 13/02/2022
Pour en savoir plus sur Python, par exemple : https://fabienmaussion.info/scientific_programming/week_05/02-Scientific-Python.html
Ce premier TD doit beaucoup à :
https://towardsdatascience.com/master-geographic-data-science-with-real-world-projects-exercises-96ac1ad14e63
Mais il est également inspiré de
(à venir)
et de
(à venir)
Dossier compressé à télécharger => ici.
Lecture des données géographiques (des vecteurs) dans différents formats comme les Shapefiles, Geopackage ou les Geojson. La plupart des géodonnées sont lisibles avec le paquet de programmes (package) Geopandas. Paquet que vous stockerez dans votre bibliothèque (Library). On utilisera ici le programme de ce paquet appelé ".read_file()".
Faisons un premier essai.
# Read the data => lecture des données
# 1. Read Countries => Lecture de la couche des pays --> Geopackage Format
shp = '1-introData/countries.gpkg' # Qu'est-ce que shp ?
# Pour le savoir :
shp # ce n'est encore qu'un chemin d'accès à des données !
# Lecture de la couche
countries = gpd.read_file(shp)
On obtient un message d'erreur ! Pourquoi ? Il existe des paquets préchargés (cf. infra Matplotlib) et d'autres, non !
# Importation et installation de Geopandas
%pip install --user geopandas
import geopandas as gpd
# On obtient un essage d'erreur : "ModuleNotFoundError: No module named 'geopandas'"
Après l'import d'un paquet, avant de le charger, de l'exécuter, il faut souvent redémarer le noyau du JupyterLab (Restart the kernel).
# 1. Read Countries => Lecture de la couche des pays --> Geopackage Format
shp = '1-introData/countries.gpkg'
# Lecture de la couche
countries = gpd.read_file(shp) # lire les données du geopackage définies dans "shp"
Normalement, il ne se passe rien ! Elles ont été lues, mais on n'a pas choisi de les afficher, par exemple !
# Affichage des 5 premières lignes
countries.head()
Pourriez-vous décrire les différentes :
# Affichage du nombre de lignes et colonnes du tableau de données
countries.shape
# Édition de quelques statistiques
countries.describe()
Qu'est-ce qu'on a comme indicateurs statistiques (en lignes) ? Sont-ils adaptés à toutes les variables (en colonnes) ?
# 2. Lecture de la couche villes --> Geojson Format
cities = gpd.read_file('1-introData/cities.geojson')
On peut comme précédemment regarder les 5 premières lignes du tableau de données. Regarder sa taille. Éditer quelques statistiques de base.
# Affichage des 5 premières lignes
cities.head()
Que peut-on dire de ce tableau ? Quelle est la signification de la première colonne ? De quelles coordonnées s'agit-il ? Que nous apprend le champ "geometry" ? Dans quel(s) pays sommes-nous ?
# Affichage du nombre de lignes et colonnes du tableau de données
cities.shape
# Édition de quelques statistiques
cities.describe()
Que peut-on dire de ces villes ?
La cartographie des deux jeux de données (couches) countries et cities va nous faire utiliser la fonction ".plot()". Nous allons superposer ces deux jeux de données.
# Créer la carte avec la fonction "plot" en empilant les couches (overlayed maps)
fig, ax = plt.subplots(figsize=(14, 12)) # explications pour cette ligne avec fig et ax (issus de Matplotlib déjà préchargé)
countries.plot(ax=ax)
cities.plot(markersize=0.2, color='red',ax=ax)
# plt.show() # enlevez le "#" si vous voulez afficher votre carte (: !
Pourquoi l'excécution de ce script nous renvoie-t-elle un message d'erreur ?
Il faut, là encore, lire spécifiquement la dernière ligne de ce message "NameError: name 'plt' is not defined". => nous n'avons pas défini (importer donc) la fonction "plt" !
# Chargement des fonctions contenues dans les paquets et sous paquets de "matplotlib"
import matplotlib.pyplot as plt # le sous menu subplot est inclus
# Relancez la création de la carte avec la fonction "plot" en empilant les couches (overlayed maps)
fig, ax = plt.subplots(figsize=(14, 12)) # explications pour cette ligne avec fig et ax (issus de Matplotlib déjà préchargé)
countries.plot(ax=ax)
cities.plot(markersize=0.2, color='red',ax=ax)
# plt.show() # enlevez le "#" si vous voulez afficher votre carte (: !
Pourriez-vous :
1) lire les données rivers.gpkg ?
2) lire les 5 premières lignes du jeu de données (dataset) rivers ?
3) afficher le jeu de données (dataset) rivers ?