Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#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: 116

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: 116

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

 

Pied de page des forums

Powered by FluxBB