#1 Thu 24 July 2014 16:57
- gmenguy
- Participant actif
- Lieu: Epinal
- Date d'inscription: 24 Apr 2006
- Messages: 54
QGIS & GRASS : programmation en python
Bonjour,
Je travaille actuellement sur la réalisation d'isodistance avec le module Grass implémenté dans Qgis. J'ai réussi à réaliser mes isodistances avec les module V.net suivi de V.net.iso.
J'aimerai maintenant automatiser la création d'isodistance afin que l'utilisateur final puisse cliquer sur un bouton et ainsi exécuter le déroulement des outils de manière transparente.
J'ai d'abord pensé au modeleur graphique de Qgis mais il ne prend pas en charge les outil grass utilisés (v.net et v.net.iso), il ne me reste donc que la programmation en python à priori.
je n'ai jamais programmé en python mais je connais un peu le langage objet, j'ai donc besoin d'un peu d'aide sur ce sujet.
Voilà le déroulé du programme :
Etape 1 : Suppression de la couche "reseau_ligne" et reseau_point" (contenu dans le mapset grass) du gestionnaire des couches (sinon l'étape 2 génére une erreur)
Etape 2 : on génère à nouveau la couche "reseau" à partir de la fonction v.net de grass
Etape 3 : on charge dans le gestionnaire des couches les nouvelles couches "reseau" créées (reseau_point et reseau_ligne)
Etape 4 : on génrer le fichier d'isodistance à partir du pmodule v.net.iso de grass
Je n'arrive pas à trouver les fonctions python pour réaliser ces étapes; j'ai réussi à ajouter une couche vecteur et même pas à la supprimer alors autant dire que je pars de loin :-( Malherursement, il n'y pas grand chose sur le net sur ces sujets
Auriez quelques pistes de travail au minimum pour pointer sur les objet grass ?
Merci par avance pour votre aide
gwen
Hors ligne
#2 Sat 26 July 2014 09:53
Re: QGIS & GRASS : programmation en python
Bonjour, il y a plusieurs aspects rédhibitoires dans vos questions
1) GRASS GIS n'est pas QGIS. Ce sont deux logiciels forts différents et ce, y compris dans les traitements en Python (grass.script et PyQGIS)
2) mais vous pouvez utiliser GRASS dans QGIS de 2 manières, Plugin et Traitements/Boîte à Outils. Cette dernière possibilité vous offre la possibilité d'utiliser PyQGIS pour traiter les commandes GRASS
3) malheureusement, si un module GRASS n'est pas implanté dans un algorithme de cette Boîte à outil (ce qui est le cas des commandes v.net...dans mon cas tout du moins), cela devient complexe, surtout si vous ne connaissez pas Python (il vous faut connaitre PyQGIS et le module Python processing + le détail des commandes GRASS)
Je n'arrive pas à trouver les fonctions python pour réaliser ces étapes;
Il n'y en a pas de toute faite pour le moment
Donc, à mon avis:
- soit vous restez dans GRASS GIS, que vous pouvez utiliser avec Python et le module grass.script (ou pyGRASS pour la version 7)
- soit vous utlisez PyQGIS et le module Network analysis http://docs.qgis.org/testing/en/docs/py … lysis.html
Code:
from qgis.networkanalysis import *
ou dans un script dans la Boîte à outil de Traitements comme illustré par Anita Graser dans https://github.com/anitagraser/QGIS-Pro … o_route.py, par exemple.
Dernière modification par gene (Sat 26 July 2014 13:13)
Hors ligne
#3 Tue 18 August 2015 11:20
- m3lanoo
- Participant occasionnel
- Date d'inscription: 15 May 2014
- Messages: 29
Re: QGIS & GRASS : programmation en python
J'ai quasiment le même problème, mais je ne trouve pas de solution.
Je dois également utilisé les commandes d'analyse de réseau de GRASS.
http://www.forumsig.org/showthread.php/ … ole-Python (Poste que j'ai créé avec plus de détails sur mon problème)
Merci pour vos réponses!
Hors ligne