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

Printemps des cartes 2024

#1 Mon 10 July 2017 12:58

Cec_78
Participant actif
Lieu: Fontenay-le-Fleury (78)
Date d'inscription: 10 Feb 2013
Messages: 56

QGIS 2.14: Aide pour script

Bonjour,

Je vais commencer ma question en précisant que je n'ai jamais élaboré de script pour QGIS.

Voici ma problématique:

Dans le cadre d'un SIG ouvert sur le web, dont les données sont contenues dans une base de données PostGIS et sont amenées à être régulièrement mises à jour, dont le serveur cartographique est QGIS server 2.14, je souhaiterais savoir si les manips suivantes dans la constitution du projet QGIS peuvent être facilement automatisées via un script Python et si oui comment faire.

Dans QGIS Desktop, pour créer mon projet, j'appelle une vue Postgis (qui se met à jour lorsque les tables dont elle est issue sont mises à jour).
Cette vue représente des points hôpitaux, avec comme attributs le nombre de publications scientifiques et la spécialité. Il y a un point par couple hôpital spécialité. Je souhaite produire une carte avec une représentation des points en symboles gradués en fonction du nombre de publication. Une couche par spécialité (voir un exemple de ce qui est attendu en PJ).
Je souhaite un script qui automatise la création d'une couche par spécialité avec le même style appliqué aux points (style que j'ai enregistré dans un répertoire) car:
- les données étant dynamiques, les spécialités et leur nombre changent
- Il y a, avec les données actuelles, un quarantaine de spécialités et je ne veux pas tout faire à la main.
En gros, les étapes sont:
- Appeler la vue PostGIS
- Filtrer sur la 1ère spécialité rencontrée et appliquer le style pré-enregistré
- renommer la couche du nom de la spécialité
Cela crée la 1ère couche
- Réimporter la vue ou dupliquer la 1ère couche
- Filtrer sur la 2ème spécialité rencontrée et appliquer le style pré-enregistré
- renommer la couche du nom de la spécialité
Cela crée la 2ème couche
- et ainsi de suite jusqu'à la dernière spécialité.

J'imagine qu'il doit falloir passer par une sorte de boucle mais je suis incapable de mettre en pratique mes maigres connaissances en Python sur ce cas d'application.

Je vous remercie donc par avance pour votre aide et vos conseils.

Céc.

Dernière modification par Cec_78 (Mon 10 July 2017 13:08)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Tue 11 July 2017 11:39

Cec_78
Participant actif
Lieu: Fontenay-le-Fleury (78)
Date d'inscription: 10 Feb 2013
Messages: 56

Re: QGIS 2.14: Aide pour script

Bonjour, bonjour,

Je vois que du monde a regardé mon post :-)
Un petit début d'aide?

Céc.

Hors ligne

 

#3 Tue 11 July 2017 11:54

YoLecomte
Participant assidu
Lieu: Epinal
Date d'inscription: 7 Jul 2015
Messages: 239

Re: QGIS 2.14: Aide pour script

Bonjour,

Pour ajouter une couche de postgis dans QGIS (changer les paramètre pour correspondre a votre cas...):

Code:

sql = "put here your_filter"
uri = QgsDataSourceURI()
uri.setConnection("host", "port", "database", "username", "password")
uri.setDataSource("schema", "table_name", "geom_column", sql, "primary_key_column")
vlayer = QgsVectorLayer(uri.uri(), "layer_name", "postgres")
QgsMapLayerRegistry.instance().addMapLayer(vlayer)

pour charger un style sur une couche le mieux (à mon avis) est d'avoir un .qml quelque part qui contient le style désiré et de l'affecter à la couche en la chargeant:

Code:

layer.loadNamedStyle(chemin_vers_le_qml)

en intégrant ces deux bouts de code dans une boucle vous devriez vous en sortir.

Si vous ne connaissez pas python, il faut commencer par l'apprendre, sinon ça va être compliqué...

Hors ligne

 

#4 Tue 11 July 2017 12:10

Cec_78
Participant actif
Lieu: Fontenay-le-Fleury (78)
Date d'inscription: 10 Feb 2013
Messages: 56

Re: QGIS 2.14: Aide pour script

OK, merci pour ce bon début!

Hors ligne

 

Pied de page des forums

Powered by FluxBB