Introduction QGIS

_images/QGIS_logo_new.svg

QGIS est un logiciel de SIG distribué sous licence libre GNU GPL. C’est un projet officiel de la fondation OSGeo (Open Source Geospatial) qui permet de visualiser, gérer, éditer, analyser des données géospatiales et de composer des cartes. Les formats de données (vecteurs et rasters) qu’il supporte sont très nombreux et il permet également de se connecter à différents types de bases de données.

QGIS est développé en C++ (en utilisant notamment le framework Qt) et il est notamment compatible avec GNU/Linux, Max OS X et Windows.

Depuis QGIS 0.9 le logiciel dispose d’une API python permettant :

  • d’appeler l’API depuis la console Python de QGIS.

  • de créer des plugins pour QGIS.

  • de créer des applications externes appelant les fonctionnalités de QGIS.

Pourquoi Python-QGIS ?

  • Automatiser des actions répétitives

  • Faire tourner des scripts

  • Effectuer des traitements spécifiques

  • Développer ses propre plugins

  • Développer ses propres applications

Quelle(s) version(s) utiliser ?

Note

Ce TP a été conçu QGIS 3.

Par rapport à QGIS 2.x, la version 3 présente l’avantage d’utiliser Python 3 et Qt 5.
Le versionnement et le développement de QGIS suivent un planning temporel : une nouvelle version stable tous les 4 mois.
La liste des fonctionnalités ajoutées à chaque version peut être consultée en ligne : http://changelog.qgis.org/en/qgis/version/list/.

La documentation complète de l’API python qui va être utilisée est disponible en ligne : https://qgis.org/pyqgis/3.16/.

Avant la version 3 on ne trouve de documentation de ce type pour l’API PyQgis mais il est possible de se référer à la documentation complète de l’API QGIS en C++ dont est dérivée l’API Python : https://qgis.org/api/2.18/

Console Python dans QGIS

QGIS dispose d’une puissante interface de programmation qui permet d’étendre ses fonctionnalités notamment en écrivant des scripts pour automatiser les traitements. Cette API Python est généralement désignée sous le nom de PyQgis.

Même en étant débutant, en apprenant un peu de python, l’interface de programmation de QGIS permet d’être plus productif (automatisation d’actions répétitives, chargement personnalisé au démarrage de l’application, contournement de limites imposées par l’interface graphique, etc.).

Ce tutoriel ne nécessite que peu de connaissances en programmation Python et a pour but de donner une introduction aux capacités de scripting dans QGIS avec PyQGIS.

Note

Dans les exercices suivants, faîtes l’effort d’écrire le code plutôt que de le copier-coller. Cela facilitera votre compréhension et vous évitera d’éventuelles erreurs de syntaxe.

QGIS fournit une console interactive python. Elle peut être ouverte depuis le menu Extension > Console Python, en pressant CTRL + ALT + P ou en appuyant sur l’icône qui lui est dédiée.

Lors de l’utilisation de la console Python dans QGIS, une variable iface est déjà existante. Cette variable est une instance de QgisInterface et elle permet d’accéder au canevas de la carte, aux menus, barres d’outils et aux autres parties de l’application QGIS ouverte. De même lors du démarrage d’une session interactive dans cette console, les imports suivants sont réalisés :

from qgis.core import *
import qgis.utils

Rappels sur les données dans les SIG

Nous manipulerons des données vectorielles ainsi que des données raster dans cette série de TP.

Données vectorielles

Comme vous le savez, on parle généralement de couches (layers) de données vectorielles.

Chaque couche de données contient des entités (features).

Chaque entité contient généralement une géométrie (geometry) ainsi que valeurs attributaires (attributes).

Si ce modèle est simple, il est important de bien l’avoir en tête puisque la majorité des opérations que nous réaliserons feront directement appels à cette organisation (pour la couche XXX, parcourir ses entités et, pour chaque entité, appliquer l’opération YYY).