NOTE: Le site CookBook de Yves sur GitHub fournit de nombreux exemples de codes utiles aux géomaticiens. Cette chaîne Youtube offre aussi de nombreuses ressources.

Shapely

Shapely est souvent utilisé en combinaison avec d’autres bibliothèques géospatiales telles que geopandas et PyQGIS pour traiter des données géospatiales. Voici quelques-unes des principales caractéristiques de Shapely :

  • Shapely prend en charge une grande variété de géométries, y compris les points, les lignes, les polygones, les cercles, les ellipses, les multipoints, les multilignes et les multipolygones.
  • Les géométries Shapely sont immuables, ce qui signifie qu’elles ne peuvent pas être modifiées une fois qu’elles ont été créées. Cela garantit que les géométries sont stables et cohérentes dans le temps.
  • Shapely fournit des fonctions pour effectuer des opérations géométriques courantes telles que l’intersection, l’union, la différence et la distance entre les géométries.
  • Les géométries Shapely peuvent être utilisées pour calculer des mesures géométriques telles que l’aire, la longueur, le périmètre et le centre de gravité d’une géométrie.
  • Shapely est facile à utiliser et à intégrer dans des scripts Python. La documentation est bien écrite et fournit des exemples de code pour la plupart des fonctions.

Création d’un point et d’un polygone en utilisant Shapely :

from shapely.geometry import Point, Polygon

# Création d'un point
point = Point(0, 0)

# Création d'un polygone
polygone = Polygon([(0, 0), (0, 1), (1, 1), (1, 0)])

Vidéo utile : L’essentiel de Shapely en quelques minutes

Rtree (index spatial)

L’utilisation de RTree permet de résoudre des problèmes de recherche spatiale, tels que la recherche de points dans un certain rayon, la recherche des intersections entre des polygones, et la recherche des polygones qui contiennent un point donné.

L’utilisation de RTree est relativement simple. Pour utiliser RTree, il faut d’abord créer un index, en spécifiant le type d’objet que l’on souhaite indexer, et en spécifiant les propriétés que l’on souhaite indexer. Ensuite, on peut ajouter des objets à l’index, et effectuer des requêtes pour rechercher des objets dans l’index.

Utilisation de RTree pour rechercher des points dans un rayon donné :

from rtree import index

# Créer un index RTree pour les points
p_idx = index.Index(properties=['x', 'y'])

# Ajouter quelques points à l'index
p_idx.insert(1, (0, 0, 0, 0))
p_idx.insert(2, (1, 1, 1, 1))
p_idx.insert(3, (2, 2, 2, 2))
p_idx.insert(4, (3, 3, 3, 3))

# Rechercher les points dans un rayon de 1 autour du point (1, 1)
results = list(p_idx.nearest((1, 1, 1, 1), 1.0))
print(results)

RTree est une bibliothèque très utile pour l’indexation spatiale en Python, et est souvent utilisée en conjonction avec d’autres bibliothèques telles que Shapely et Geopandas.

Vidéo utile : Comprendre l’intérêt de rtree en quelques minutes

Django

Django fournit une grande variété d’outils et de modules pour faciliter le développement d’applications web (principe du Model-View-Controller (MVC)). Parmi ces outils, on trouve :

  • Le système de routage : Django permet de définir facilement les routes URL et de les associer à des vues qui vont traiter les requêtes associées.

  • Le système de modèles : Django fournit un ORM (Object-Relational Mapping) qui permet de travailler avec les bases de données de manière abstraite et de façon plus intuitive.

  • Les templates : Django permet de créer des modèles HTML dynamiques qui peuvent être remplis avec des données générées par les vues.

  • Les middlewares : permettent de traiter les requêtes et les réponses à différents stades du traitement, avant et après le passage par les vues.

  • Les formulaires : Django permet de créer facilement des formulaires et de les valider côté serveur.

Django est également très extensible grâce à sa grande variété de modules tiers disponibles. Cela permet aux développeurs de construire rapidement des fonctionnalités avancées sans avoir à les coder eux-mêmes.

En géomatique, on peut utiliser GeoDjango qui apporte un volet spatial au site web. Ce sont les mêmes principes que dans Django.

Vidéos utiles :

QGis

QGIS est un logiciel de SIG (Système d’Information Géographique) open-source et gratuit qui permet de visualiser, d’éditer et d’analyser des données spatiales. Il est écrit en C++ et dispose d’une API (Application Programming Interface) qui permet aux développeurs de créer des plugins en Python.

Le développement d’une extension Python dans QGIS nécessite des connaissances en Python et en SIG, ainsi qu’une compréhension de l’API de QGIS. Il faut aussi noter que le volet graphique est basé sur PyQt5. Toutefois il existe des outils permettant d’accélérer le développement, notamment le Plugin Builder. Cet outil vous donnera toute la structure minimale pour obtenir un plugin fonctionnel.

Il est important de noter que le développeur doit disposer de bonnes références vers la documentation technique touchant à QGis et PyQt5.

Vidéos utiles :