Aller au contenu

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.yml sera 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 avec pwd (PowerShell) ou cd (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.


Section précédente | Section suivante →