Créer un Rapport

Cette section vous aidera à configurer un rapport dans QGIS.

Qu’est-ce que c’est ?

Par définition, un rapport SIG est un document contenant des informations organisées de manière narrative, contenant des cartes, du texte, des graphiques, des tableaux, etc. Un rapport peut être préparé ad hoc, périodique, récurrent, régulier ou selon les besoins. Les rapports peuvent faire référence à des périodes, événements, événements, sujets ou lieux spécifiques.

Dans QGIS, un Rapport est une extension d’une MIse en page.

Les rapports permettent aux utilisateurs de produire des sorties de leurs projets SIG de manière simple, rapide et structurée.

Un rapport peut être créé avec Projet -> Nouveau Rapport ou via Projet -> Gestionnaire de Mise en page.

Note

Les cartes dans les rapports QGIS se comportent de la même manière que les cartes dans les mises en page et atlas imprimés. Nous nous concentrerons sur les spécificités des rapports QGIS. Pour plus de détails sur la gestion des cartes, consultez les sections mises en page et atlas.

Se lancer

Dans la fenêtre du Gestionnaire de mise en page, un rapport peut être créé via Nouveau depuis un modèle en sélectionnant l’option Rapport vide dans la liste déroulante et en cliquant sur le bouton Créer….

Pour cet exemple, nous utilisons des limites administratives, des lieux peuplés, des ports et des aéroports du jeu de données Natural Earth <https://www.naturalearthdata.com/downloads/> _ (1: 10M).

../../../_images/project-1.png

En utilisant la commande Projet -> Nouveau Rapport, nous créons un rapport vierge. Au départ, il n’y a pas grand-chose à regarder - la fenêtre qui s’affiche ressemble beaucoup au concepteur de mise en page, à l’exception du panneau Éditeur de rapport à gauche :

../../../_images/report-2.png

Espace de travail de mise en page du rapport

Les rapports QGIS peuvent se composer de plusieurs sections imbriquées. Dans notre nouveau rapport vierge, nous n’avons initialement que la section principale du rapport. Les seules options pour cette section de rapport sont Inclure l’en-tête du rapport et Inclure le pied de page du rapport. Si nous activons ces options, un en-tête sera inclus sur la première (s) page (s) (les parties individuelles des rapports peuvent être multipages si vous le souhaitez) dans le rapport, et un pied de page sur les dernières pages. Activez l’en-tête (Inclure l’en-tête du rapport) et appuyez sur le bouton: guilabel:Éditer à côté :

../../../_images/report_header.png

En conséquence, certaines choses se produisent. Tout d’abord, un crayon d’édition est affiché à côté de Rapport dans Éditeur de rapport, indiquant que la section du rapport est actuellement en cours d’édition dans le concepteur. Nous voyons également une nouvelle page avec un petit titre d”En-tête de rapport. La page a une orientation paysage par défaut, mais cela (et d’autres propriétés de la page) peut être modifié en cliquant avec le bouton droit sur la page et en choisissant Propriétés de la page…. Cela fera apparaître l’onglet Propriétés de l’objet pour la page, et la Taille, la Largeur, la Hauteur de la page, et plus peuvent être spécifiés.

Dans les rapports QGIS, chaque composant du rapport dispose d’un agencement individuel. Ils peuvent être créés et modifiés à l’aide des mêmes outils que pour les mises en page standard - vous pouvez donc utiliser n’importe quelle combinaison d’étiquettes, d’images, de cartes, de tableaux, etc. Ajoutons quelques éléments à notre en-tête de rapport pour démontrer :

../../../_images/header.png

Nous allons également créer un pied de page simple pour le rapport en cochant l’option Inclure le pied de page du rapport et en appuyant sur Éditer.

../../../_images/footer.png

Avant de poursuivre, exportons ce rapport et voyons ce que nous obtenons. L’exportation se fait à partir du menu Rapport - dans ce cas, nous sélectionnons Exporter le rapport au format PDF … pour rendre le rapport entier dans un fichier PDF. Voici le résultat pas très impressionnant - un PDF de deux pages composé de notre en-tête et pied de page :

../../../_images/headerfooter.png

Rendons les choses plus intéressantes. En cliquant sur le bouton signPlus Ajouter une section dans Éditeur de rapport, nous avons le choix entre de nouvelles sections à ajouter à notre rapport.

../../../_images/add_section.png

Il existe deux options : Section de mise en page statique et Section de groupe de champs.

Ajouter une section de mise en page statique est une mise en page statique de corps unique. Cela peut être utilisé pour incorporer des mises en page statiques au milieu d’un rapport.

La section groupe de champs répète sa mise en page pour chaque entité d’une couche. Les entités sont triées selon la fonction de regroupement sélectionnée (avec une option pour le tri croissant / décroissant). Si une section de groupe de champs a des sections enfants (par exemple, une autre section de groupe de champs avec un champ différent), seules les entités avec des valeurs uniques pour l’entité de groupe sont itérées. Cela permet des rapports imbriqués.

Pour l’instant, nous ajouterons une section de groupe de champ à notre rapport. À son niveau le plus élémentaire, vous pouvez considérer une section de groupe de champ comme l’équivalent d’un atlas imprimé : vous sélectionnez une couche sur laquelle itérer et le rapport insérera une section pour chaque entité trouvée. La sélection de la nouvelle section de groupe de champ révèle un certain nombre de nouveaux paramètres associés :

../../../_images/field_group.png

Dans ce cas, nous avons configuré notre groupe de champs de sorte que nous itérions sur tous les états de la couche Admin Level 1, en utilisant les valeurs du champ adm1name. Les mêmes options pour inclure l’en-tête et le pied de page sont présentes, ainsi qu’une nouvelle option pour inclure un corps pour cette section. Nous allons le faire et éditer le corps :

../../../_images/edit_group_body.png

Our body now consists of a map and a label showing the name of the state. To include the name of the state, we selected Add Item ‣ Add Label and data defined the text under Main Properties with the help of Insert an Expression….

Le résultat a été l’expression suivante (name est le nom de l’attribut dans la couche Admin Level 1 qui contient le nom de l’état) :

[% "name" %]

La carte est configurée pour suivre l’entité de rapport actuelle (activée en vérifiant Contrôlé par le rapport - tout comme un objet carte dans un atlas suivra l’entité de l’atlas actuelle lorsque Contrôlé par l’atlas est coché) :

../../../_images/controlledbyreport.png

Si nous avancions et exportions notre rapport, à ce stade, nous obtiendrions quelque chose comme ceci :

../../../_images/report1.png

L’en-tête du rapport, une page pour chaque état et le pied de page du rapport.

Donc plus ou moins un atlas, mais avec une page d’en-tête et de pied de page.

Rendons les choses plus intéressantes en ajoutant une sous-section à notre groupe d’État. Pour ce faire, nous sélectionnons d’abord le groupe de champs Admin Level 1 dans l’éditeur, puis en cliquant sur le bouton signPlus Ajouter un champ et ajout d’une nouvelle Section du groupe de champs :

../../../_images/subsection.png

Lors de l’itération sur les entités d’une Section de groupe de champs, les entités seront filtrées pour correspondre au champ de définition de son groupe parent (adm1name dans ce cas). Ici, la sous-section que nous avons ajoutée itérera sur une couche Lieux peuplés, y compris une section de corps pour chaque lieu rencontré. La magie ici est que la couche Lieux peuplés a un attribut avec le même nom que le champ de définition dans la couche parent, adm1name, en marquant chaque lieu avec l’état dans lequel il est contenu (si par chance vos données sont déjà structurées comme ceci - sinon, exécutez l’algorithme de traitement Joindre les attributs par localisation et créez votre propre champ). Lorsque nous exportons ce rapport, QGIS récupérera le premier état de la couche Admin Level 1, puis itérera sur tous les Lieux peuplés avec la valeur correspondante de adm1name. Voici ce que nous obtenons :

../../../_images/report3.png

Ici, nous avons créé un corps de base pour le groupe Lieux peuplés, y compris une carte du lieu et un tableau de certains attributs de lieu. Ainsi, notre rapport correspond maintenant à un en-tête de rapport, une page pour le premier état, suivie d’une page pour chaque lieu habité dans cet état, puis le reste des États avec leurs lieux habités, et enfin le pied de page du rapport. Si nous devions ajouter un en-tête pour le groupe Lieux peuplés, il serait inclus juste avant de répertorier les lieux peuplés pour chaque état, comme indiqué dans l’illustration ci-dessous.

De même, un pied de page pour le groupe Lieux peuplés serait inséré après le lieu final de chaque état.

Outre les sous-sections imbriquées, les sous-sections d’un rapport peuvent également être incluses consécutivement. Si nous ajoutons une deuxième sous-section au groupe Admin Niveau 1 pour Airports (si la couche Airports a un attribut adm1name qui peut le lier au groupe parent), notre rapport répertorie d’abord TOUS les endroits peuplés de chaque État, suivi de tous les aéroports de cet État, avant de passer à l’État suivant.

../../../_images/report_consec.png

Le point clé ici est que notre groupe d’aéroports est une sous-section de Admin Level 1 group - pas le groupe de lieux peuplés.

Dans ce cas, notre rapport serait structuré comme ceci (notez que des drapeaux d’état ont également été inclus - la procédure pour ajouter des images spécifiques à une entité de cette manière est décrite ci-dessous) :

../../../_images/report_all_img.png

Inclure des images dans un rapport

Les images peuvent être très utiles dans les rapports et QGIS autorise les images dans les parties statiques et dynamiques d’un rapport. Les images sont ajoutées de la même manière que pour les mises en page standard et pour les parties de rapport statiques (et les images statiques dans les parties dynamiques).

But if you want illustrations that are tailored to the report features, your layer must have an attribute that can be used to define the picture to include.

QGIS dépend des noms de fichiers absolus pour les images dans les rapports.

Pour les images dynamiques, vous ajoutez d’abord une image à la partie du corps du groupe, comme d’habitude. Dans Propriétés de l’objet de l’image, vous définissez la Source de l’image à l’aide du bouton dataDefined Valeur définie par les données, et sélectionnez un attribut contenant le chemin absolu des images ou Éditer… (pour saisir une expression qui génère le chemin absolu de l’image).

Voici un exemple d’expression qui utilise la concaténation de chaînes pour spécifier le chemin absolu vers les images, en utilisant le répertoire où se trouve le fichier de projet @project_path) et un attribut (adm1name) à partir duquel le nom de fichier est généré (dans ce cas en transformant la chaîne de l’attribut adm1name en majuscule et en ajoutant _flag.png) :

concat(@project_folder, '/naturalearth/pictures/' ,
       upper("adm1name"), '_flag.png')

Cela signifie que les images se trouvent dans le sous-répertoire naturalearth/pictures du répertoire du fichier de projet.

../../../_images/report_dynamic_picture.png

Mettre en surbrillance l’entité actuelle du rapport dans une carte

Dans le rapport ci-dessus, les entités du rapport sont mises en évidence dans les cartes à l’aide de la surbrillance (état) et des cercles (lieux habités). Pour souligner les entités du rapport dans les cartes (en plus de les placer au centre des cartes), vous devez définir le style via les données à l’aide d’une comparaison entre son @id et le @atlas_featureid, comme pour les atlas.

Par exemple, si vous souhaitez utiliser une ligne / bordure plus épaisse pour l’entité du rapport que pour les autres entités, vous pouvez définir la largeur de la ligne :

if($id=@atlas_featureid, 2.0, 0.1)

The report feature will get a 2 units wide polygon outline, while all other features will get a 0.1 units wide line. It is also possible to data define the colour (non-transparent dark magenta for the report feature and semi-transparent light gray for the other features):

if($id=@atlas_featureid, '#FF880088', '#88CCCCCC')

Plus de groupes de niveau 1

La combinaison de sections imbriquées et consécutives, ainsi que des en-têtes et pieds de page de section permet une grande flexibilité. Par exemple, dans le rapport ci-dessous, nous ajoutons un autre groupe de champs en tant qu’enfant du rapport principal pour la couche Ports. Maintenant, après avoir répertorié les États ainsi que leurs lieux peuplés et aéroports, nous obtiendrons une liste récapitulative de tous les ports de la région :

../../../_images/report_flex.png

Il en résulte que la dernière partie de notre rapport est exportée sous la forme :

../../../_images/ports.png

Paramètres d’export

When you export a report (Report ‣ Export Report as Images… / SVG… / PDF…), you will be asked for a file name, and then you get the opportunity to tune the export settings to get the most appropriate output.

Comme vous le voyez, les rapports dans QGIS sont extrêmement puissants et flexibles !

Note

Les informations actuelles ont été adaptées d’un blog de North Road, `Exploring Reports in QGIS 3.0 - the Ultimate Guide! <https://north-road.com/2018/01/23/exploring-reports-in-qgis-3-0-the-ultimate-guide> `_