#1 Fri 25 November 2016 17:50
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
QGIS: Code python pour export en PDF
Bonjour,
Je souhaite produire un atlas de cartes à partir de chaque valeur d'une couche. C'est-à-dire que je dispose d'une couche avec un champ X, contenant plusieurs objets de valeur A, d'autres de valeur B, etc. Je souhaite filtrer le champ X avec la valeur A puis exporter la carte, filtrer le champ X avec la valeur B puis exporter la carte, etc.
J'utilise habituellement l'excellent script UV_export_2.py disponible à http://www.portailsig.org/content/qgis- … eur-unique
Ça marche bien sauf que les images sont exportées en PNG.
Je souhaiterais plutôt exporter en PDF non rastérisé, mais mes connaissances en Python sont lacunaires.
À la ligne 17 est indiqué :
Code:
format = "png" # Autorisés unqiuement les formats raster. Pas de pdf ni de svg pour l'instant
Est-ce que quelqu'un pourrait m'aider à adapter ce script. Ça m'éviterait de refaire 200 exports manuellement dans le composeur.
Merci par avance !
Hors ligne
#2 Sun 27 November 2016 12:02
- laurent00
- Participant assidu
- Date d'inscription: 6 Aug 2007
- Messages: 411
Re: QGIS: Code python pour export en PDF
voici l'atlas ce que je fais avec l'atlas du composeur
http://ressources.ingall-niger.org/docu … ssants.pdf
dans cet exemple j'exporte toutes les données en les classant par type F Fp, etc contenu dans un champ
cela fait un pdf unique, il est possible de filter sur un seul type à partir du constructeur de requpete de ta couche ...
est-ce que cela répond à ton souhait ?
LJ
Hors ligne
#3 Tue 29 November 2016 18:25
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: QGIS: Code python pour export en PDF
Bonjour,
En fait ce n'est pas tout à fait ça. Déjà je travaille à échelle et emprise fixes.
Je veux simplement filtrer ma couche successivement selon les valeurs présentes dans une couche, et exporter en PDF à chaque filtrage.
Mais plusieurs objets peuvent avoir la même valeur, d'où l'impossibilité à mon avis d'utiliser l'atlas du composeur. C'est pourquoi j'utilise un script que je souhaiterais adapter.
Merci en tous cas.
Hors ligne
#4 Thu 01 December 2016 09:14
- JD
- Membre
- Date d'inscription: 8 Aug 2013
- Messages: 726
Re: QGIS: Code python pour export en PDF
Bonjour,
Mais plusieurs objets peuvent avoir la même valeur, d'où l'impossibilité à mon avis d'utiliser l'atlas du composeur
vous sous-estimez la puissance de l'atlas à mon avis :-).
Il est possible de passer en couche de couverture une table attributaire seule.
Votre table serait donc la table contenant le champs X avec vos valeurs uniques A, B... (non répété)
Après dans les propriétés de votre couche (celle qui contient les objets géométriques), il faut juste faire une règle d'affichage pour afficher ou non selon l'entité en cours de l'atlas en matchant par rapport au champs X.
La règle d'affichage serait quelque chose dans le genre :
Code:
"champs_X" = attribute(@atlas_feature, 'champs_x')
Et comme Mathieu BOSSAERT vient de poster un lien sur la méthode, je lui pique son lien http://si.cenlr.org/QGIS_atlas_avec_cou … n_spatiale
Cordialement,
Dernière modification par lejedi76 (Thu 01 December 2016 09:15)
Hors ligne
#5 Wed 07 December 2016 14:36
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: QGIS: Code python pour export en PDF
Bonjour,
Merci beaucoup pour votre réponse fort utile et désolé d'avoir sous-estimer l'atlas ! ;-)
Effectivement en créant une couche de couverture avec mon champ X contenant les valeurs uniques A, B, etc., j'obtiens un superbe atlas. C'est vraiment puissant même si ça paraît peu intuitif au départ.
Sinon il me reste un problème gênant. Ma légende contient le décompte du nombre d'entités, mais de dernier n'est pas mis à jour lorsque je change d'entités dans l'atlas. Y a-t-il une autre méthode pour compter les entités via l'atlas ?
Merci
Hors ligne
#6 Wed 07 December 2016 15:10
- SANTANNA
- Moderateur
- Lieu: Angers
- Date d'inscription: 18 Jan 2008
- Messages: 4058
Re: QGIS: Code python pour export en PDF
Bonjour,
Sinon il me reste un problème gênant. Ma légende contient le décompte du nombre d'entités, mais de dernier n'est pas mis à jour lorsque je change d'entités dans l'atlas. Y a-t-il une autre méthode pour compter les entités via l'atlas ?
Peut-être une piste à http://georezo.net/forum/viewtopic.php? … +entit%E9s en adaptant la formule. Un exemple d'agrégation avec atlas est dans http://qgis.org/fr/site/forusers/visual … xpressions
Hors ligne
#7 Wed 07 December 2016 18:29
- Lsam
- Participant assidu
- Date d'inscription: 27 Nov 2013
- Messages: 159
Re: QGIS: Code python pour export en PDF
Merci,
J'avance à grands pas avec la fonction aggregate.
Par contre j'ai l'impression que les expressions dans les étiquettes du composeur sont limitées (en nombre de caractères ?) car mes longues expressions ne sont pas interprétées alors que les courtes affichent bien les résultats. J'ouvre un nouveau fil au besoin.
Encore merci pour votre aide précieuse.
Hors ligne