Outdated version of the documentation. Find the latest one here.

` `

La ligne de commande QGIS

Les outils de traitement intègrent un outil très pratique qui vous permet de lancer des algorithmes sans avoir à ouvrir la boite à outils. Il suffit juste de saisir le nom de l’algorithme que vous voulez exécuter.

Il s’agit de l’outil Ligne de commande qui se matérialise par une simple zone de texte à complètement automatique où saisir le nom de la commande à lancer.

../../../_images/commander1.png

La ligne de commande QGIS

La Ligne de commande est lancée depuis le menu Traitements ou en appuyant sur Shift + Ctrl + M (vous pouvez modifier ce raccourci clavier dans la configuration de QGIS si vous en préférez un autre). Pour la fermer, appuyez sur ESC. En plus d’exécuter des algorithmes de traitement, la Ligne de commande vous donne accès à la plupart des fonctions de QGIS, il s’agit donc d’un moyen pratique et efficace de lancer des tâches QGIS sans avoir à passer par les menus et les boutons.

La Ligne de commande est également configurable et vous pouvez y ajouter vos propres commandes et les lancer en quelques touches, faisant de la ligne de commande un outil puissant vous permettant d’améliorer votre productivité quotidienne avec QGIS.

Commandes disponibles

Les commandes disponibles sont classées en différentes catégories :

  • Algorithmes. Ils apparaissent sous la forme Processing algorithm: <nom de l'algorithme>.

  • Entrées de menu. Elles apparaissent sous la forme Menu item: <nom de l'entrée de menu>. Toutes les entrées de menu disponibles via l’interface de QGIS y sont listées, même s’il s’agit d’un sous-menu.

  • Fonctions Python. Vous pouvez créer de courtes fonctions Python qui feront ensuite partie de la liste des commandes disponibles. Elles se présentent sous la forme Function: <nom de la fonction>.

Pour lancer une des commandes ci-dessus, commencez à taper puis sélectionnez la commande depuis la liste qui apparaît alors, filtrée dynamiquement par le texte que vous tapez.

Dans le cas d’un appel à une fonction Python, vous pouvez sélectionner la fonction par son nom dans la liste, préfixé de Function: (par exemple : Function: removeall) ou taper directement le nom de la fonction (removeall dans l’exemple précédent). Il n’est pas nécessaire d’ajouter des guillemets au nom de la fontion.

Créer des fonctions personnalisées

Les fonctions personnalisées sont ajoutées en insérant le code Python correspondant dans le fichier commands.py qui se trouve dans .qgis2/processing/commander dans votre répertoire utilisateur. Il s’agit d’un simple fichier Python dans lequel vous pouvez ajouter les fonctions que vous souhaitez.

Le fichier est créé avec quelques exemples de fonctions la première fois que vous ouvrez la Ligne de commandes. Si la Ligne de commandes n’a pas été encore lancée, vous pouvez créer le fichier manuellement. Pour l’éditer, utiliser votre éditeur de texte préféré. Vous pouvez également utiliser l’éditeur intégré en tapant edit dans la Ligne de commandes. Un éditeur s’ouvrira avec le fichier de commandes que vous pourrez alors modifier puis enregistrer.

Par exemple, vous pouvez ajouter la fonction suivante, qui supprime toutes les couches :

from qgis.gui import *

def removeall():
    mapreg = QgsMapLayerRegistry.instance()
    mapreg.removeAllMapLayers()

Une fois la fonction ajoutée, elle sera disponible depuis la Ligne de commandes et vous pourrez l’appeler en tapant removeall. Il n’y a rien d’autre à faire à part écrire la fonction elle-même.

Les fonctions peuvent recevoir des paramètres. Ajoutez``*args`` à la définition de votre fonction pour accepter des paramètres. Lors de l’appel à cette fonction depuis la Ligne de commande, les paramètres doivent être passés en les séparant pas des espaces.

Voici un exemple de fonction qui charge une couche et prend comme paramètre le nom de la couche à charger.

import processing

def load(*args):
  processing.load(args[0])

Si vous souhaitez charger la couche ;file:/home/myuser/points.shp, tapez dans la Ligne de commandes :

load /home/myuser/points.shp