Utiliser Python avec QGIS

Réalisation Azyat Abdelilah

Ce que vous allez apprendre:

1-Lancer le plugin console Python
2-Tester la version de Python
3-Identifier les méthode d'un objet
4-Afficher le nombre des entités
5-Afficher les nom du champs
6-Ouvrir une couche à partir d'un disque local

Introduction

Débuter avec la programmation Python QGIS qui possède une interface de programmation puissante permettant d’étendre le noyau des fonctionnalités du logiciel ainsi que des scripts pour automatiser des tâches.

QGIS prend en charge le langage de scripting Python populaire.

Même si vous êtes débutant, apprendre un peu d’interface de programmation Python et QGIS vous permettra d’être beaucoup plus productif dans votre travail.

 

C’est quoi un SIG?     |     Solutions SIG

 

Les étapes à suivre

Ce tutoriel ne suppose aucune connaissance préalable en programmation et est destiné à donner une introduction aux scripts python dans QGIS en utilisant l’API PyQGIS.

Le QGIS possède une interface console pour exécuter le code python et affiche le résultat de code.

    1. Pour ouvrir cette console ; cliquer sur le menu Plugins🡪 Console Python
    2. Tester la version du langage Python,

  • Ensuite, tapez le code suivant pour afficher la table d’attributs d’une couche, prenons l’exemple de la couche parc_urban_wgs.shp (vous pouvez télécharger ces données ici) ;

import os

from qgis.core import (QgsVectorLayer)

vlayer = iface.activeLayer()

iface.showAttributeTable(vlayer)

  • Pour interagir avec le QGIS on doit utiliser la variable « iface», et pour accéder au couche actuellement actif dans QGIS, on peut saisir ce qui suit et appuyer sur Entrée.
  • Cette commande extrait la référence à la couche actuellement chargée et la stocke dans la variable layer.
layer = iface.activeLayer()
dir(layer) # montre toutes les méthodes disponibles d’un objet.

  • Tester le code suivant :

for f in layer.getFeatures():

  print(f)

  • Comme vous pouvez constater, chaque ligne contient une référence à une entité dans la couche clinique. La référence à une entité est stockée dans la variable f.
  • On peut utiliser cette variable pour accéder aux attributs de chaque entité comme illustre la figure suivante :

  • Passons maintenant de voir comment accéder aux coordonnées d’une entité en utilisant la fonction geometry(). Cette fonction retourne un objet geometry qui peut être stocké dans une variable geom. Pour obtenir les coordonnées x et y d’un point, on peut appeler la fonction asPoint() sur l’objet geom crée auparavant. S’il s’agit d’une entité de type ligne ou polygone on peut se servir des fonctions asPolyline() et asPolygon().
  • Le code ci-dessous montre comment afficher les coordonnées x et y des points :

  • Si on désire obtenir seulement la coordonnée x, on peut appeler la fonction x() sur l’objet point comme dans le code suivant :

  • Pour ouvrir une couche shapefile (dans mon cas le fichier est stocké dans le dossier Tanger_Data qui est dans le disque D, on peut utiliser le code suivant :

  • Pour afficher les attributs de la couche en question, on peut utiliser la fonction dans le code suivant, supposons qu’on a déjà l’objet vlayer:

iface.showAttributeTable(vlayer).

  • Aussi on peut utiliser la fonction fields() pour accéder aux champs d’une table d’attributs et les afficher sur la console.
  • Cette fonction retourne un objet QgsFields. Pour afficher tous les champs on peut utiliser une boucle for :

for field in vlayer.fields() :

             print(field.name())

for feature in vlayer.getFeatures():

     print(feature[« Nom »])

Conclusion

Donc, comme vous avez constaté, on a appliqué les notions de base de la programmation avec le langage Python pour travailler d’un côté dans l’interface de QGIS, et de l’autre côté de manipuler les données en utilisant les concepts de la programmation orientée-objet via la création des  objets et en appelant leurs méthodes.

Je vois que l’utilisation du Python au sein du QGIS est un entrainement très pratique qui nous permet de mettre les notions théoriques dans le concret  tout en traitant des entités simulant le monde réel.

 
Pour démarrer l’apprentissage de Python


Premiers pas    |  
Les listes    |    Les boucles    |   Les fonctions    |   Data

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *