J'essaie d'écrire un script de traitement en utilisant l' r.neighbors
algorithme Grass pour les rasters. Lorsque vous utilisez l'interface graphique pour cet algorithme, vous pouvez laisser le champ d'extension de couche GRASS blanc pour utiliser l'étendue minimale. Au contraire, lorsqu'il est utilisé dans la console python, je ne trouve pas comment saisir ce type de valeur "par défaut".
J'ai vu sur https://docs.qgis.org/2.2/en/docs/user_manual/processing/console.html qu'il semble obligatoire de saisir les quatre coordonnées pour un paramètre d'étendue. J'ai essayé d'utiliser iface.mapCanvas().extent()
mais l'objet retourné n'est pas accepté comme paramètre et je ne trouve pas comment obtenir ses coordonnées.
Existe-t-il un moyen d'obtenir la xmin, ymin, xmax, ymax
couche dans PyQGIS pour les saisir dans l'algorithme? Suis-je en train de le faire totalement mal?
extent
manquent donc il ne fonctionnait pas .. .Réponses:
La réponse est presque entièrement contenue dans un article que j'ai récemment écrit.
L'étendue est renvoyée sous la forme d'un objet QgsRectangle () avec le code suivant:
Pour obtenir les coordonnées des sommets de la couche actuelle, vous pouvez exécuter ce code:
Enfin, vous pouvez exécuter le code suivant pour utiliser le
r.neighbors
module à partir de la console Python:la source
vous étiez sur la bonne voie, il vous suffit d'aller plus loin. Voir la documentation QGIS pour QgsRectangle
Fondamentalement, vous faites:
obtenir le calque actuel
obtenir l'étendue qui est un objet QgsRectangle
et y extraire les valeurs avec:
la source