#1 Tue 18 July 2017 20:46
- manuCheve
- Juste Inscrit !
- Date d'inscription: 11 Apr 2014
- Messages: 6
QGIS: Charger une table Postgre dans le model builder
Bonjour à tous,
Je crée ce post car je suis confronté à un soucis que je n'arrive pas à résoudre et pour lequel je n'ai rien trouvé sur georezo ou ailleurs.
J'ai créé un traitement sur le model builder de QGIS (v2.14) qui a besoin d'une couche de polygones disponible dans une base postgis.
Si j'ajoute une entrée à mon traitement de type Layer et que j'ai chargé ma couche depuis ma base de données dans QGIS, cela fonctionne mais il faut, lorsque j’exécute le traitement, que je choisisse ma couche parmi celle chargée dans QGIS.
L'objectif de mon traitement étant d'être executé en "traitement par lot" cela impose de réaliser ce choix de couche pour toutes les occurrences de mon traitement par lot alors que c'est toujours la même couche.
Je cherche donc un moyen de remplacer cette entrée de type Layer par un chargement de ma couche directement depuis la base (ou depuis QGIS si c'est le seul moyen) mais qui évite, en tout cas, de devoir saisir à chaque fois pour le traitement par lot.
J'ai tenté de mettre une valeur par défaut à l'entrée, mais cela n'est pas possible sur une entrée de type Layer.
J'ai tenté de charger ma couche via une requête SQL en utilisant les briques "execute SQL" ou "POSTGIS execute SQL",avec une requête simple :
SELECT *
FROM public."PARCEL"
mais je n'arrive pas à faire fonctionner ces outils (soit il me manque un moyen de configurer sur quelle base je veux exécuter ma requête, soit il me manque un moyen de récupérer le résultat).
Quelque chose m'échappe et je ne vois pas comment réaliser cela, tout simplement.
Merci d'avance pour vos retours.
Manuel
Dernière modification par manuCheve (Wed 19 July 2017 09:07)
Hors ligne
#2 Wed 19 July 2017 16:04
- manuCheve
- Juste Inscrit !
- Date d'inscription: 11 Apr 2014
- Messages: 6
Re: QGIS: Charger une table Postgre dans le model builder
Bonjour à tous,
J'ai finalement trouvé une solution à mon problème.
QGIS permet d'importer des scripts Python déjà existants depuis une bibliothèque et ainsi de pouvoir les exploiter dans ses propres chaines de traitements.
Cela se fait dans QGIS : "Boite à outils de traitements" > "Scripts" > "Obtenir des scripts depuis la collection en ligne".
Le script en question s'appelle "Create_vector_layer_from_Postgis_table".
Une fois installé, il est utilisable dans une chaine de traitement via l'onglet "Algorithmes" > "Scripts" > "Database".
Il suffit ensuite de renseigner les bons paramètres et d'utiliser la sortie de ce script dans les traitements nécessitant les données de cette couches.
Hors ligne
#3 Thu 20 July 2017 09:29
- naman10
- Participant actif
- Date d'inscription: 7 Nov 2007
- Messages: 118
Re: QGIS: Charger une table Postgre dans le model builder
Bonjour,
j'étais aussi dans le même cas que vous et ce script pourrait m'aider grandement.
Cependant, je n'arrive pas à comprendre le formatage attendu dans la clause where (elle est marquée comme optionnelle, mais si je la laisse vide il y a un message d'erreur).
J'ai essayé de reprendre le formalisme de qgis "mon_champ"='valeur' mais ça ne marche pas.
Pouvez vous me dire comment vous avez formaté votre clause where?
cordialement,
Hors ligne
#4 Thu 21 September 2017 21:38
- manuCheve
- Juste Inscrit !
- Date d'inscription: 11 Apr 2014
- Messages: 6
Re: QGIS: Charger une table Postgre dans le model builder
Bonjour,
Tout d'abord j'suis vraiment désolé de ne pas avoir répondu plus tôt, je n'ai pas reçu de notification de votre message, une option que je n'ai pas du cocher quelques part. Du coup, j'espère que vous avez trouvé une solution à votre problème par ailleurs.
Dans mon cas, il n'y a pas de clause where donc je n'ai pas testé ce point.
Avez-vous testé en reprenant le formalisme complet avec le nom de la table ?
Par exemple : "table"."mon_champ"='valeur'
Hors ligne
#5 Fri 22 September 2017 10:07
- naman10
- Participant actif
- Date d'inscription: 7 Nov 2007
- Messages: 118
Re: QGIS: Charger une table Postgre dans le model builder
Bonjour,
oui c'est bon j'ai réussi a utiliser le script c'était du côté de l'output que ça posait soucis.
Cordialement,
Hors ligne
#6 Fri 22 September 2017 10:10
- manuCheve
- Juste Inscrit !
- Date d'inscription: 11 Apr 2014
- Messages: 6
Re: QGIS: Charger une table Postgre dans le model builder
Parfait, alors !
Encore désolé de ne pas avoir vu votre réponse plus tôt.
Cordialement.
Hors ligne