2.4 Librairies géospatiales essentielles
← Section précédente | Section suivante →
Pourquoi certaines librairies plutôt que d'autres ?
Maintenant que vous avez un environnement Conda isolé, vous devez l'équiper des outils appropriés pour la géomatique. Mais quelles librairies choisir parmi les \~20,000 disponibles sur conda-forge ?
La réponse dépend de vos besoins selon le projet. En géomatique, vous travaillez généralement avec deux types de données :
Données vectorielles (points, lignes, polygones) - Exemple : limites administratives, routes, bâtiments - Librairie clé : GeoPandas
Données raster (grilles de pixels, images satellites) - Exemple : images Sentinel-2, modèles d'élévation, cartes climatiques - Librairies clés : GDAL, Rasterio
Pour les visualiser et explorer vos résultats, vous avez aussi besoin de librairies de science des données (NumPy, Pandas, Matplotlib) et d'outils pour la cartographie interactive (Jupyter, Folium, Leafmap, Anymap).
Installation des librairies géospatiales complètes
Activez votre environnement et installez toutes les librairies d'un seul coup :
conda activate geo-env
conda install -c conda-forge \
geopandas \
gdal \
rasterio \
folium \
jupyter \
jupyterlab \
matplotlib \
numpy \
pandas \
scipy
Note importante : Si vous utilisez Miniforge (recommandé dans ce cours), le -c conda-forge est optionnel car conda-forge est déjà le canal par défaut. Vous pouvez donc écrire simplement conda install geopandas gdal rasterio ....
Note performance : conda prendra \~2-5 minutes pour résoudre les dépendances et compiler. C'est normal (voir 2.1 pour comprendre pourquoi). Utilisez mamba si vous êtes impatient comme moi ☺︎:
# Alternative ultra-rapide (10x plus rapide)
mamba install geopandas gdal rasterio folium jupyter jupyterlab matplotlib numpy pandas scipy
Librairies clés expliquées en détail
| Librairie | Catégorie | Utilité | Exemple d'usage |
|---|---|---|---|
| GeoPandas | Données spatiales | DataFrames avec géométries spatiales (points, lignes, polygones). Interface Python pour données vectorielles. | Charger une shapefile de zones protégées, calculer surfaces, fusionner polygones |
| GDAL/OGR | Drivers géospatials | Lecture/écriture de formats raster et vecteur. Transformations de projections. Sous-jacent à GeoPandas et Rasterio. | Convertir GeoTIFF en NetCDF, reprojeter en WGS84 |
| Rasterio | Données raster | Interface moderne et pythonique pour manipuler données raster. Plus simple que GDAL direct. | Lire bandes d'une image satellite Sentinel-2, calculer NDVI |
| Folium | Cartographie web | Créer des cartes interactives Leaflet (OpenStreetMap). Parfait pour explorer données sur le web. | Afficher couches vectorielles sur carte zoomable, créer heatmaps |
| NumPy | Calcul numérique | Opérations vectorisées sur tableaux. Base de presque tous les calculs géospatiaux. | Calculer statistiques raster, algèbre cartographique |
| Pandas | Data science | DataFrames pour données tabulaires. Indispensable pour analyses statistiques. | Nettoyer attributs vectoriels, grouper par région |
| Matplotlib | Visualisation | Graphiques 2D statiques. Parfait pour publications scientifiques. | Tracer histogrammes NDVI, graphes en barres d'analyse |
| Jupyter | Notebooks interactifs | Environnement interactif pour explorer données et documenter analyses. Mix code, texte, graphiques. | Cahier d'analyse Sentinel-2 partageables |
| SciPy | Calcul scientifique | Algorithmes numériques avancés (optimisation, statistiques, filtrage). | Appliquer filtres spatiaux, analyses statistiques géospatialisées |
Note sur PROJ (dépendance critique)
PROJ est une librairie fondamentale pour gérer les systèmes de coordonnées (CRS) et les transformations entre projections cartographiques. Elle est installée automatiquement comme dépendance de GDAL, Rasterio et GeoPandas. Si vous rencontrez des erreurs mentionnant « PROJ » ou « CRS » (Coordinate Reference System), c'est généralement lié aux projections de vos données géospatiales. Vous n'avez pas besoin de l'installer séparément, mais il est important de comprendre son rôle dans la gestion des coordonnées.
Vérifier l'installation
Après l'installation, testez que toutes les librairies sont accessibles :
python -c "import geopandas; print(f'GeoPandas {geopandas.__version__}')"
python -c "import rasterio; print(f'Rasterio {rasterio.__version__}')"
python -c "from osgeo import gdal; print(f'GDAL {gdal.__version__}')"
Vous devriez voir des numéros de version (ex: GeoPandas 0.14.0). Si vous recevez ModuleNotFoundError, relancez le terminal ou vérifiez que vous avez bien activé geo-env.
Validation complète : Pour tester votre environnement, consultez le notebook 01a-validation-rapide.ipynb (section 3.3 pour l'exécution).
Environnements reproductibles avec environment.yml
Le problème : Vous finissez votre projet en mai 2025 avec GDAL 3.8.0. Votre collègue clone votre code en décembre 2025, installe les librairies en novembre 2025 (versions plus récentes), et soudain votre code ne fonctionne plus. Conflit de versions!
La solution : Exportez votre environnement exact dans un fichier environment.yml qui "gèle" les versions :
conda env export > environment.yml
Note importante : Le fichier
environment.ymlsera créé dans le répertoire courant de votre terminal. Assurez-vous d'être à la racine de votre projet avant d'exécuter cette commande. Vérifiez votre emplacement avecpwd(PowerShell) oucd(Windows).
Contenu du fichier généré :
name: geo-env
channels:
- conda-forge
- defaults
dependencies:
- python=3.11
- geopandas=0.14.0
- gdal=3.8.0
- rasterio=1.3.0
- folium=0.14.0
- jupyter=1.0.0
- jupyterlab=4.0.0
- matplotlib=3.8.0
- numpy=1.24.0
- pandas=2.1.0
- scipy=1.11.0
- pip
- ca-certificates
- certifi
- ... (autres dépendances C et de base)
Ce fichier agit comme une "recette" : n'importe qui peut recréer EXACTEMENT votre environnement :
# Quelqu'un d'autre peut faire :
conda env create -f environment.yml
# Et il aura EXACTEMENT:
# - Python 3.11
# - GeoPandas 0.14.0
# - GDAL 3.8.0
# - etc.
Important : Committez ce fichier environment.yml dans votre repo Github (nous verrons ça en section 3.4). C'est l'une des meilleures pratiques de reproductibilité en science.
Bonus : Créer environnement avec versions spécifiques
Si vous avez besoin d'une version particulière de GDAL (pour compatibilité), vous pouvez être explicite dès la création :
# Créer environnement avec versions spécifiées
conda create -n geo-env \
python=3.11 \
geopandas=0.14.0 \
gdal=3.8.0 \
rasterio=1.3.0 \
-c conda-forge
Cela accélère l'installation car conda connaît déjà les versions recherchées.