Forma­tion Python pour plugin QGIS

Python est aujour­d’hui un langage incon­tour­nable dans le domaine de la géoma­tique. Asso­cié à QGIS, logi­ciel SIG open source de réfé­rence, il permet d’au­to­ma­ti­ser des trai­te­ments, de déve­lop­per des outils person­na­li­sés et d’op­ti­mi­ser les work­flows de produc­tion de données géogra­phiques.

Cette forma­tion de 4 jours vous accom­pagne dans la décou­verte et la maîtrise de PyQGIS, l’API Python de QGIS. Vous appren­drez à inter­agir avec les données géogra­phiques, à auto­ma­ti­ser des tâches courantes, à mani­pu­ler des couches SIG et à créer des scripts adap­tés à vos besoins métiers.

À travers des exer­cices pratiques, vous décou­vri­rez comment exploi­ter la puis­sance de Python pour étendre les fonc­tion­na­li­tés de QGIS, gagner en effi­ca­cité et déve­lop­per vos propres outils géoma­tiques. Cette forma­tion s’adresse aux utili­sa­teurs de QGIS souhai­tant fran­chir un cap dans leur pratique du SIG, en passant de l’uti­li­sa­tion d’ou­tils exis­tants à la créa­tion de solu­tions person­na­li­sées et repro­duc­tibles.

Objectifs pédagogiques

  • Lire et écrire du Python à un niveau débu­tant (mini­mum) pour l’au­to­ma­ti­sa­tion de tâches SIG.

  • Mani­pu­ler des données géogra­phiques avec l’API PyQGIS : char­ge­ment, filtrage, géomé­trie,  attri­buts, écri­ture.

  • Construire un plugin QGIS doté d’une inter­face graphique Qt, en mobi­li­sant les bonnes pratiques d’ar­chi­tec­ture (signaux/slots, gestion d’er­reurs, jour­na­li­sa­tion).

  • Conce­voir et exécu­ter un algo­rithme a partir d’un plugin QGIS.

  • Débo­guer, packa­ger et publier un plugin sur le dépôt offi­ciel QGIS ou un dépôt privé.

  • Main­te­nir un plugin dans le temps

Forma­tion Python pour plugin QGIS en détail

Programme

Les volumes horaires donnés sont des ordres de gran­deur. Selon le niveau du groupe, chaque module peut être survolé, appro­fondi ou complété par un exer­cice supplé­men­taire. Le forma­teur fait ce choix au fil de l’eau, en concer­ta­tion avec les stagiaires

Jour 1 — Fonda­tions Python et SIG

Objec­tif : poser un socle commun, lever les blocages, obte­nir un premier succès visible dans la console

Python de QGIS.

rappels Python : types, collec­tions, contrôle de flux, fonc­tions, program­ma­tion orien­tée objet en

lecture

concepts SIG : vecteur, raster, projec­tions, formats usuels

prise en main de la console Python inté­grée à QGIS

Jour 2 — PyQGIS en pratique

Objec­tif : auto­ma­ti­ser des trai­te­ments vecteur que l’on faisait aupa­ra­vant à la souris.

couches vecto­rielles, enti­tés, requêtes

géomé­tries : mesures, opéra­tions, rela­tions spatiales, reprojec­tion

couches raster (survol)

écri­ture de données : GeoPa­ckage, couche mémoire, édition

Jour 3 — Du script au plugin

Objec­tif : capi­ta­li­ser un script en outil distri­buable.

le frame­work Proces­sing : philo­so­phie, provi­ders, exécu­tion

appel d’al­go­rithmes exis­tants depuis Python

écri­ture d’un algo­rithme Proces­sing person­na­lisé

anato­mie d’un plugin QGIS (fichiers, cycle de vie, ressources)

Jour 4 — Inter­face graphique et publi­ca­tion

Objec­tif : livrer un plugin utili­sable par un tiers et éven­tuel­le­ment le publier.

intro­duc­tion à Qt et PyQt5

concep­tion d’in­ter­face avec Qt Desi­gner

débo­gage : jour­na­li­sa­tion, First Aid, gestion d’er­reurs utili­sa­teur

packa­ging, méta­don­nées, publi­ca­tion sur le dépôt offi­ciel QGIS

Adap­ta­tions possibles

Le programme est volon­tai­re­ment modu­laire. Selon le contexte, le forma­teur peut :

consa­crer la première demi-jour­née unique­ment aux fonda­men­taux Python et ou SIG si le

groupe est débu­tant ;

survo­ler le J1 et démar­rer plus vite si le groupe est déjà à l’aise en Python et en SIG ;

rempla­cer un sujet de TP par un cas réel apporté par les stagiaires (couche métier, problé­ma­tique

SIG du quoti­dien) ;

Public et pré-requis

Profil du stagiaire

Toute personne amenée à effec­tuer des trai­te­ments géogra­phiques avec QGIS :

  • char­gés d’études SIG / géoma­ti­cien·­ne·s,

  • déve­lop­peurs Python souhai­tant abor­der le SIG,

  • chefs de projet qui doivent pilo­ter le déve­lop­pe­ment d’un plugin,

  • agents de collec­ti­vité ou de bureau d’études mani­pu­lant QGIS au quoti­dien.

Personne en situa­tion de handi­cap

Pour toutes ques­tions rela­tives à l’ac­cueil d’un parti­ci­pant présen­tant un handi­cap, merci de nous contac­ter préa­la­ble­ment avant toute inscrip­tion.

 

Prérequis pour les parti­ci­pants

Le groupe peut être rela­ti­ve­ment hété­ro­gène : la forma­tion prévoit des chapitres d’adap­ta­tion.

Idéa­le­ment, chaque stagiaire dispose de :

  • une aisance géné­rale avec un ordi­na­teur (lignes de commande, arbo­res­cences de fichiers, instal­la­tion de logi­ciel) ;

  • une première expo­si­tion à Python, même limi­tée — connaître la notion de variable, de fonc­tion, de boucle. À défaut, 1/2 jour de rappels néces­saires.

  • des notions de SIG : ce qu’est une couche, un attri­but, une projec­tion. À défaut, 1/2 jour de rappels néces­saires.

Aucune compé­tence préa­lable en SQL n’est requise (une intro­duc­tion est cepen­dant préfé­rable).

Les notions indis­pen­sables sont intro­duites au fil des besoins.

 

Prérequis pour les logi­ciels (à instal­ler avant le 1er jour de forma­tion)

  • QGIS 3.34 LTR (ou version stable plus récente)

  • Qt Desi­gner (paquet qttools5-dev-tools sous Linux, qt5-tools via OSGeo4W sous Windows,

  • qt@5 via Home­brew sous macOS)

  • les plugins QGIS : Plugin Buil­der 3, Plugin Reloa­der, First Aid

  • un éditeur de code : VS Code (recom­mandé) ou PyCharm Commu­nity

  • Git

Droits d’ad­mi­nis­tra­tion sur le poste pour instal­ler / char­ger les plugins en déve­lop­pe­ment (préve­nir si ce n’est pas possible afin de trou­ver des solu­tions en amont)

Les jeux de données utili­sés (communes IGN, export OSM, raster MNT) sont libres ; les liens de télé­char­ge­ment sont four­nis avec le support.

Ingé­nie­rie péda­go­gique

Moyens péda­go­giques et tech­niques

  • Les supports de cours (slides) seront dispo­nibles en ligne et distri­bués en début de forma­tion (à l’aide d’un lien vers notre outil interne ou d’une version numé­ri­sée), puis four­nis au format élec­tro­nique à la fin de la forma­tion.
  • Une salle de forma­tion équi­pée d’une connexion Inter­net, d’un vidéo­projec­teur, paper­board. Ou une salle virtuelle pour les forma­tions à distance (FOAD).
  • Un ordi­na­teur par stagiaire avec un système d’ex­ploi­ta­tion installé et les outils néces­saires.

Moda­li­tés de suivi de l’exé­cu­tion du programme

  • Durant la forma­tion: alter­nance d’ap­ports théo­riques (30% du cours), d’exer­cices pratiques et de mise en situa­tion sous forme de travaux pratiques corri­gés avec l’ex­pert-forma­teur.
  • En fin de forma­tion: évalua­tion à chaud sur l’at­teinte des objec­tifs péda­go­giques sous forme de tour de table et de test de connais­sances, d’exer­cices, de QCM.

Moyens d’en­ca­dre­ment

Forma­tion assu­rée par un expert-forma­teur Python et SIG ayant une expé­rience signi­fi­ca­tive avec le frame­work Python et le logi­ciel QGIS.

Nos experts

Daphné Lercier

Daphné Lercier

Responsable Innovation


Nantes
Mickaël Carlos

Mickaël Carlos

Chargé de recherche et développement-Django-python.


Toulouse