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 Fri 25 November 2016 17:50

Lsam
Participant assidu
Date d'inscription: 27 Nov 2013
Messages: 157

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

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

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
Moderateur
Date d'inscription: 8 Aug 2013
Messages: 722

Re: QGIS: Code python pour export en PDF

Bonjour,

Lsam a écrit:

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

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

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

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

 

Pied de page des forums

Powered by FluxBB