Sommaire
1. Présentation générale 2. Installer 3. Configurer 4. Paramétrer & administrer
Gestion des données
Dans
Alias
Style
Mots-clefs
Groupe
Bloc
Cluster
Stats
Ordre
Journal des tâches
Maintenance
5. Utiliser
Croisement dynamique
Options du plugin
Rendu cluster
Tampon
Simplifier
Inversibilité croisement
Découper
Correction à la volée
Décompte des entités
Liste compact
Arborescence en bloc
Animation
Explications
Aide en ligne
Administration
Filtre sur aléas
Statistiques
6. Approfondir
Les styles
Les images
Le paramétrage
Les requêtes SQL
 
RDI Croisement dynamique
Notice d’utilisation
version 1.13
1. Présentation générale

Le plugin Qgis RDI croisement dynamique est un outil qui permet de réaliser simplement et rapidement des croisements spatiaux d’entités géométriques, comme extraire les enjeux inclus dans une zone inondable.
Tout en restant dans un environnement de Qgis (affichage et toutes les fonctionnalités de l’application qui vont avec), le plugin s’appuie sur la puissance de traitement d’un serveur Postgis en parallélisant les requêtes multiples en tâche de fond pour ne pas freiner l’utilisateur dans son exploration du territoire.
Tout est entièrement en « clic bouton » et ne nécessite aucune compétence particulière en langage SQL.

En résumé, le plugin fabrique dynamiquement la requête adaptée aux différentes options choisies et affiche en retour le résultat dans la symbologie pré-paramétrée. Un petit module de statistiques permet ensuite de travailler sur les valeurs contenues dans les champs (somme, moyenne, etc) en les regroupant par l’agrégation spatiale choisie.



Pré-requis:

  • Qgis version 3 minimum
  • Postgis version 2 minimum
  • 2. Installer

    Le plugin est distribué sur le dépôt de la DDT67 : http://piece-jointe-carto.developpement-durable.gouv.fr/DEPT067A/QGIS/plugins/plugins.xml
    qu’il suffit d’ajouter à la liste de vos dépôts dans le menu d’extension pour pouvoir le télécharger et bénéficier de ses mises à jour


    Une fois installée, vous pouvez accéder aux deux modules disponibles par le menu général :


    Analyser : module principal du plugin, est également accessible par sa petite icône qui s’installe aussi dans la barre de raccourcis des extensions et sera décrit plus précisément dans les chapitres 4.paramétrer & administrer et 5.Utiliser


    Configurer : module de paramétrage de la connexion à Postgres/Postgis, sera également proposé via le module principal lorsque la connexion échoue (ou à la première utilisation), décrit au chapitre 3.Configurer


    A propos : Lien vers le manuel d'utilisation que vous êtes en train de lire

    3. Configurer

    La première chose à faire est de définir la connexion à la base de donnée Postgis souhaitée, ces paramètres sont ensuite stockés dans le fichier de configuration parameter.ini du plugin et ne seront pas redemandés.

    Liste déroulante qui contient toutes les connexions déjà enregistrées dans Qgis
    Adresse IP du serveur
    Port de connexion (généralement 5432)
    Login et mot de passe associé
    Nom de la base de données ciblée

    Une fois la connexion établie, il faut spécifier le (ou les) schéma(s) où le plugin ira travailler et le nom des tables qui servent à son fonctionnement. Pour bénéficier d’un environnement partagé entre les différents utilisateurs, il conviendra de bien spécifier les mêmes noms de tables. Ces tables seront créées automatiquement par le plugin à l’aide du bouton Générer si elles n’existent pas déjà ou si leur structure ne correspond pas à celle attendue.



    Le schéma d’exécution
    Il doit impérativement être accessible en lecture / écriture à tous les utilisateurs. C’est un prérequis sans lequel le plugin ne pourra pas fonctionner car tous les résultats de croisements spatiaux sont stockés dans des tables temporaires. La table définie dans Execution y est générée ainsi que toutes les tables de stockage temporaire du résultat des requêtes. Le plugin ne monte pas de processus de nettoyage automatique intégré à la base de données, mais ces tables peuvent être toutes supprimées en un clic via l’interface.

    Astuce: Un ADL peut facilement envisager la mise en place d’une routine automatique via une tâche planifiée (par exemple avec pg_agent), toutes ces tables temporaires commencent par un même préfixe :« _tmp_ »

    Le schéma d’administration
    Il peut être identique au schéma d’exécution (comportement par défaut si laissé vide) ou spécifié différent pour restreindre les utilisateurs qui pourront effectuer le paramétrage du plugin (décrit dans le chapitre 4.paramétrer & administrer).
    La table définie dans Administration y est générée. C’est celle qui permet d’administrer le plugin en enregistrant la liste des couches qui seront présentées et utilisées dans le plugin, ainsi que des métadonnées associées pour permettre une personnalisation et une fluidification de l’utilisation.

    La base peut contenir d’autres schémas, uniquement accessible en lecture, qui contiennent déjà des couches SIG pouvant être référencées et utilisées par le plugin, sans que les utilstateurs puissent risquer de les modifier ou les supprimer.

    ⇒ La gestion des droits d’accès est donc intégralement dépendante de celle définie dans Postgres, et directement liée au login utilisé pour se connecter. Aucun droit spécifique n’est géré par le plugin lui-même.

    Une fois les choix effectués et les tables générées… il n’y a plus qu’à Lancer l’application !

    4. Paramétrer & administrer

    Ce chapitre décrit l’utilisation des 3 onglets

    Par défaut les trois onglets d’administration ne sont pas visibles, pour les activer il suffit de cocher, dans l’onglet des « Options du plugin » , la case « Administration »


    A la toute première utilisation dans votre environnement Postgis, la table d’administration est générée vide, il est donc nécessaire d’y référencer les couches SIG qui vont servir aux croisements spatiaux. Le paramétrage associé est stocké en base de données, cela signifie qu’il est commun à tous les utilisateurs.



    Gestion des données

    Filtre pour limiter le nombre de couches présentées
    Bascule en mode modification par lots
    Sélection de la couche à paramétrer au moyen de la liste déroulante ou de celle présentée en dessous lorsqu'aucune couche n'est sélectionnée.
    Les deux listes sont automatiquement mises à jour en fonction du filtre

    L’ajout de nouvelles couches se fait à l’aide du bouton
    Il y a trois façons d’ajouter une nouvelle couche

  • Si la couche est déjà présente dans la base de donnée Postgis
  • Il suffit alors de cibler le schéma et la table désirés
  • Si la couche n’existe pas encore dans la base de données, l’insertion peur se faire soit depuis des couches chargées dans Qgis, soit depuis un Fichier
  • Liste déroulante avec les couches vectorielles chargées dans Qgis
    Cocher la case pour inclure celles venant d'une autre base Postgis
    Choisir le schéma où insérer la couche (droits d’écriture nécessaire)
    et le nom de la table souhaité
    Ouvre l'explorateur de fichiers
    Choisir le schéma où insérer la couche (droits d’écriture nécessaire)
    et le nom de la table souhaité

    En cliquant sur Ajouter l’écran bascule alors sur le paramétrage de la couche (qui pourra ensuite être repris ultérieurement en la sélectionnant dans la liste)

    Nom complet en base de données (avec icône indiquant le type de géométrie)
    Nom présenté à l'affichage (composé du grupe et de l'alias)
    Choix de la fonction pour la couche
     
    * Alias pour renommer la couche
     
    * Paramétrage d’un style par défaut
     
    * Mots clefs utilisés dans les barres de filtre
     
    * Choix d'un groupe existant ou le créer
     
    * Choix d'un bloc existant ou le créer
     
    * Préréglage pour le rendu cluster
     
    * Préréglage pour les statistiques
     
    * Ordre de la couche
     
    ⇒ Les paramètres précédés d'une * sont facultatifs

    Détail des paramètres :
    « Dans »

    Définit la fonctionnalité de la couche, et surtout les endroits où elle sera présentée. La modification de ce paramètre sera gelée si la couche est associée à un groupe (les couches d'un même groupe devant être nécessairement de même type). Il y a trois sortes de couches possibles :

  • Enjeux : la couche sera présentée dans le bloc du même nom du module principal et représente des données dont on veut extraire celles qui sont à l’intérieur (ou extérieur) d’un polygone. Cette couche peut être de n’importe quel type (point, ligne, polygone)
    Exemple : Des points représentant la population sur le territoire
  • Aléas : la couche sera présentée dans le bloc du même nom du module principal et représente les polygones qui servent à intersecter les « enjeux ». Il n’y a pas de verrou physique sur le type, mais il sera peu utile d’y mettre des points ou des lignes (à moins d’activer l’option de tampon)
    Exemple : un polygone représentant une emprise de zone inondable
  • Statistiques : la couche servira à discrétiser les regroupements spatiaux utiliser avec les opérateurs d’agrégation, elle sera présentée dans le module « statistiques »
    Exemple : le périmètre des communes, pour sommer la population en zone inondable commune par commune
  • « Alias »

    Permet d’avoir un nom affiché pour la couche plus humain que celui, parfois un peu barbare, utilisé pour le stockage en base de donnée qui respecte une convention précise. Permet aussi de ne préciser que la sous-partie spécifique à la couche lorsque celle-ci est rattachée à un groupe. Le nom affiché sera :
    - le nom de la table si rien n’est spécifié
    - le nom de l’alias si spécifié
    - le nom du groupe suivi de l’alias si rattachée

    Exemple : Le groupe « Kogenheim » contient 4 zones inondables associées à des hauteurs d’eau différentes pour cette station de mesure. Il suffit de renommer l’alias de chaque occurrence avec la seule hauteur « 2m88 » pour obtenir en affichage synthétique le nom complet : « Kogenheim (2m88) ».

    « Style »

    Permet d’enregistrer pour chaque couche un style par défaut qui sera automatiquement utilisé lors de l’affichage d’une couche. La liste de styles proposés variera en fonction du type de géométrie de la couche.

  • Il y aura toujours :
    Auto : Laissera Qgis utilisé son style par défaut
    Simple : Choix d’une couleur et d’une taille
    Personnalisé : Enregistrement du style préfabriqué depuis une couche chargée dans Qgis ou un fichier QML
    Texte brut : Édite le contenu du champ
  • Pour des points ou multipoints :
    Image : Choix d’une image SVG et d’une taille
  • Et tous les styles issus d'un fichier  :
    Il y en a 2 pré-paramétrés, mais il et possible d'en rajouter en respectant le format JSON
    ZIP : remplissage simple avec une couleur unie
    ZICH : remplissage simple avec un dégradé de bleu selon la hauteur
  • « Mots-clefs »

    Sont utilisés par les filtres (en plus du nom de la table, de son alias et des noms de groupe et de bloc si renseignés) pour effectuer la recherche de correspondance et réduire le nombre de couches présentées dans les différents blocs.

    « Groupe »

    Sert à regrouper toutes les couches d’un même périmètre géographique sous un même item. Lorsque l’option Liste compacte est activée, ces couches seront présentées en liste déroulante d’une même case à cocher et l’affichage de l’une remplacera automatiquement celle de l’autre sans faire de superposition sur la cartographie.
    Une fois créé, le groupe est une entité (presque) comme les autres couches sur lequel on peut affecter (presque tous) les paramètres de ce chapitre qui s'appliqueront en cascade sur toutes les couches enfantes lorsque l'option Liste compacte est activée.

    Exemple : On regroupe sous le nom de la station limnimétrique « Kogenheim » toutes les zones inondables associées à différentes occurrence de crue.

    « Bloc »

    Sert à rassembler toutes les couches d’une même thématique sous un même item. Lorsque l’option Arborescence en blocs est activée, ces couches pourront être affichées ou masquées sur simple clic du nom du bloc.
    Contrairement au groupe, le bloc n'est qu'un dossier sans aucune propriété à part son nom. La pemière liste déroulante ne concerne que l'affectation de l'objet en cours. Ainsi, modifier le nom d'un bloc dans cette liste créera un nouveau groupe sans affecter le rattachement des autres couches ciblant le même bloc. Pour modifier le libellé d'un groupe en cascade sur tous les objets qui lui sont rattachés, il faut passer par la petite icône .

    Exemple : On crée un bloc PPRi pour gagner en compacité dans la présentation des couches disponibles.

    « Cluster »

    Ce paramètre est accessible uniquement pour les couches ponctuelles (point ou multipoint).
    Lorsque l’affichage est activé en mode cluster il est possible de choisir le champ sur lequel faire une somme au lieu de simplement compter le nombre d’entités. Il s’agit d’un préréglage par défaut, chaque utilisateur pourra toujours choisir de le modifier via l’onglet de croisement dynamique.

    Exemple : Sur la couche population où chaque point représente un nombre d’habitants, en choisissant la bonne colonne à sommer on pourra reporter directement la population regroupée dans le cluster sur l’affichage cartographique.

    « Stats »

    Permet d’enregistrer les statistiques qui sont souvent utilisées sur une couche donnée, opération et champ cible (cf onglet des Statistiques). Il s’agit d’un préréglage par défaut, chaque utilisateur pourra toujours choisir de le modifier via l’onglet de statistiques.

    « Ordre »

    Permet de forcer l'odre de renvoi des couches avec un indice numérique (par défaut c'est l'ordre alphabétique de l'alias qui prime).

    Exemple : On affecte les valeurs d'ordre [1, 2, 3, 4] respectivement aux occurences [Q10, Q30, Q50, Q100] de façon à les avoir dans l'ordre de fréquence et non alphabétique (ie: [Q10, Q100, Q30, Q50])


    Pour éviter les manipulations répétitives et fastidieuses, il est possible d'affecter en un clic une même propriété à un ensemble de couches. Accessible au moyen du petit bouton ce mode permet d'une part de sélectionner les couches souhaitées, puis d'affecter la valeur de propriété voulue.
    Seuls les paramètres Style & Bloc peuvent être ainsi affectés, les autres étant trop spécifiques à chaque couche ou nécessitant un contrôle de cohérence.



    Journal des tâches
    Liste de toutes les requêtes construites dynamiquement par l’action de l’utilisateur et qui sont en cours ou en attente de traitement. Un rappel de la charge de travail est également reporté sur l’onglet principal de travail ( croisement dynamique) au moyen d’une barre qui se colore selon le nombre de tâches en traitement (vert-jaune-orange-rouge).
    Si trop de tâches sont lancées simultanément, il est conseillé de calmer l’utilisation pour éviter de provoquer un plantage de Qgis.
    Enfin, un petit bouton d’arrêt permet d’essayer d’annuler des tâches qui mettraient trop de temps à s’exécuter (action globale sur toutes les tâches en cours)



    Maintenance
    Le premier bloc donne quelques informations générales (version du plugin, connexion à la base de données, etc). Cela peut être utile si vous basculez l'utilisation du plugin entre des environnements différents, pour vérifier ce sur quoi vous travaillez. La petite icône en bas à droite de ce bloc permet de sauvegarder une copie de tout le fichier parameter.ini en cours pour une bascule plus rapide entre les connexions, au moyen d'une liste déroulante qui apparaîtra lorsqu'au moins une configuration aura été sauvegardée (sous le bloc décrit ici et en en cas d'échec de connexion du plugin).
    L'icône du bouton de connexion sera rappelée devant chaque élément de la liste déroulante dont les éléments de connexion sont identiques à celle en cours.

    Viennent ensuite une série de boutons qui permettent un contrôle plus avancé :

  • Purger stockage temporaire : supprime toutes les tables temporaires qui sont créées pour forcer la ré-exécution des requêtes SQL
  • : ouvre le module de configuration (identique à l'action du menu général Configurer)
  • : réinitialise le plugin (relance la connexion et supprime toutes les couches chargées)
  • Pour accèder aux fichiers du plugin
  • Dossier : ouvre l'explorateur à la racine du plugin
  • parameter.ini : ouvre le fichier de paramétrage dans l'éditeur de texte par défaut
  • Pour ne pas perdre la personnalisation de sa configuration lors d'une mise à jour
  • Enregistrer : sauvegarde toute la paramétrisation locale (styles, images, etc)
  • Restaurer : restaure une paramétrisation précédemment sauvegardée
  • 5. Utiliser
    Ce chapitre décrit l’utilisation des 4 onglets

    Ce sont les onglets de simple utilisation, aucune action dedans ne créera de modification dans la base Postgres hormis la création des tables temporaires issues des différentes requêtes effectuées.



    Croisement dynamique
    Il s’agit de l’onglet principal de travail, il propose la liste des couches paramétrées en Enjeux et Aléas avec des petites barres de filtre dynamique permettant de limiter l’affichage et de retrouver plus facilement une couche ciblée.


    Sur chaque ligne, on retrouve le libellé avec une case à cocher indiquant si elle est sélectionnées ou non, a laquelle peut s'ajouter :
  • Le symbole en début de ligne, qui indique que les entités croisées sont à l'extérieur des aléas cochés
    La bascule entre le mode normal et inversé se fait avec un clic droit sur la ligne ciblée si l'option Inversibilté du croisement est activée
    Fonctionnalité active pour les enjeux uniquement
  • Le symbole en fin de ligne, qui indique que le style a été manuellement modifié (via interface de Qgis)
    Il suffit de cliquer dessus pour retrouver le style par défaut
  • Le symbole ou sa représentation déployée juste après le libellé
    Qui permet de choisir le champ à sommer pour le libellé de la représentation cluster
    Fonctionnalité active pour les couches ponctuelles (point ou multipoint) des enjeux uniquement

  • Exemple :


    A chaque activation / désactivation d’une couche, le plugin génère automatiquement toutes les requêtes nécessaires pour calculer les aléas et les enjeux croisés selon l’ensemble des options choisies.
    Les couches résultats sont alors directement chargées dans Qgis.



    Options du plugin
    Regroupe toutes les options qui permettent de personnaliser le travail de chaque utilisateur. Il y a les options de géométrie qui agissent sur le croisement des données et le rendu des couches et les options d’affichage qui agissent sur l’interface du plugin. Toutes les options sont interactives et la modification d’un paramètre va, si nécessaire, générer le re-calcul de toutes les couches affichées.
    Tous les choix sont mémorisés dans le fichier parameter.ini et seront conservés à la prochaine utilisation du plugin.

    Géométrie
    Rendu cluster
    Fonctionne uniquement sur les couches ponctuelles (point ou multipoint). La création du style utilisera la fonction de « groupe de points » du moteur de symbologie pour n’afficher qu’un seul symbole avec un libellé indiquant le nombre d’entités regroupées.
    En activant Somme sur attribut, il est alors possible de choisir le champs sur lequel effectuer une somme et l’afficher dans le libellé à la place du comptage des entités. La liste des champs est proposée à côté de chaque couche dans l’onglet de croisement dynamique.
    Si aucun champ n’est choisi, le libellé affichera le nombre d’entités regroupées.
    En activant Points en fond, le rendu affichera en dessous la même couche non regroupée en légère opacité (pratique pour mieux voir la dispersion des points).
    Tampon
    Permet de rajouter un tampon de valeur variable sur les couches d’aléas. Les bornes du tampon peuvent être modifiées dans le fichier parameter.ini : bufferMin & bufferMax.
    Simplifier
    Permet de simplifier la géométrie des aléas (diminution du nombre de points des polygones) et d’accélérer le temps de traitement. La valeur maximale de la simplification peut être modifiée dans le fichier parameter.ini : simplifyMax.
    Inversibilité croisement
    Permet d’inverser le croisement des enjeux (compris dans l’emprise ou en dehors de l’emprise) avec un clic droit sur la couche. Les couches ayant été inversées sont alors identifiables par l’icône devant son libellé.
    Si cette option n’est pas activée le clic droit n’aura aucun effet.
    Découper résultat
    Fonctionne uniquement sur les couches linéaires ou surfaciques (ligne ou multiligne et polygone ou multipolygone). Découpe la géométrie issu du croisement pour afficher un résultat strictement inclus dans l’emprise souhaitée.
    Correction à la volée
    Rajoute des fonctions de correction de géométrie dans chaque requête de croisement d’enjeux. Cela permet parfois de réussir un croisement qui a échoué, mais la systématisation des corrections au préalable peut augmenter sensiblement le temps d’exécution des traitements.
    Décompte des entités
    Ajoute, dans le libellé des couches d'enjeux, le nombre d'entités présentes dans le résultat du croisement spatial.

    Affichage
    Liste compacte
    Bascule entre l’affichage à plat de toutes les couches ou leur regroupement en liste déroulante selon le paramétrage effectué dans l’onglet de Gestion des données.
    Arborescence en blocs
    Bascule entre l’affichage de toutes les couches en un seul bloc ou la séparation par les blocs définis dans l’onglet de Gestion des données.
    En activant Tout déplier, les blocs seront présentés dépliés à l'ouverture de l'interface
    Animation
    Pour désactiver les petits points qui défilent à côté de chaque couche d’enjeu en attendant la fin du traitement Postgis.
    Explications
    Pour masquer les explications détaillées dans l’interface et la rendre plus compacte (les explications resteront disponibles en infobulle au survol de la souris).
    Aide en ligne
    Pour masquer les renvois à l'aide en ligne dans l’interface et la rendre plus compacte.
    Lorsque activé, les envois sont intégrés au plus proche de l'objet cible. Le renvoi vers la description de l'onglets est en bas à gauche du plugin (ou toujours disponible en double cliquant sur l'icone de l'onglet)
    Administration
    Pour afficher les onglets d’administration (décrits dans le chapitre 4.paramétrer & administrer).



    Filtre sur aléas
    Permet de limiter les entités d'aléas à partir desquelles le croisement des enjeux est effectué.

  • Légende

    Toutes les couches qui utilisent le style «Fichier» peuvent bénéficier de cette fonctionnalité. Il suffit de décocher un item de la légende pour que les enjeux ne soient pas croisés avec.

    Exemple avec le style ZICH
  • Sélection

    Relancera le croisement des enjeux à partir des entités d'aléas sélectionnées dans QGis.

  • Visible

    Relancera le croisement des enjeux à partir des entités d'aléas visibles dans QGis.



  • Statistiques
    Permet de lancer des calcul d’agrégation spatiale sur les enjeux croisés. Les fonctions disponibles sont « somme », « moyenne », « minimum » et « maximum ».
    Pour chaque enjeu, il est possible de rajouter autant d’opération souhaitée sur les champs de la couche (« somme & moyenne » ne proposeront que les champs numériques, « minimum & maximum » travailleront avec l’ordre alphabétique des champs textes).
    Les entités sont systématiquement comptées sans qu’il soit nécessaire le paramétrer. De la même manière, si la couche est linéaire (ligne ou multiligne) la longueur totale sera calculée, et si la couche est surfacique (polygne ou multipolygone) la surface totale sera calculée.



    Il est possible de discrétiser les statistiques au moyen d’une couche de poygones (ex : celle des communes), les agrégations seront alors réalisées pour chaque entité. En choisissant une clef de regroupement non unique (ex : la colonne des intercommunalités) l’agrégation sera réalisée sur la fusion des entités ayant la même valeur.

    6. Approfondir

    Cette section est loin d'être indispensable pour utiliser le plugin, mais permet de mieux comprendre certains mécanismes et de personnaliser son utilisation au-delà des possibilités prévues par l'interface.


    Les styles
    Outre les possibilités de symbologie natives au plugin, il est possible d'en définir de nouvelles au moyen de fichiers JSON à placer dans le répertoire styles à la racine du dossier du plugin. Il est possible de modifier, enlever ou rajouter autant de fichiers JSON souhaités, mais si les fichiers ne sont pas propagés à l'ensemble des utilisateurs d'un même environnement de travail (ie: base, schéma et nom de table d'administration identique), le style défini ne pourra pas être utilisé et le plugin réutilisera le style par défaut de QGis.
    Chaque style est un fichier texte qui doit obligatoirement avoir l'extension .json et respecter strictement le format JSON (il existe des valideurs en ligne pour vérifier et corriger la validité du format si nécessaire), sans quoi ils seront ignorés par le plugin.
    Enfin, il est possible de désactiver un style sans le supprimer en ajoutant un second fichier vide de même nom en changeant seulement l'extension .json en .freeze. Cela aura pour effet de ne plus proposer le style dans la liste déroulante, mais il continuera à pouvoir être utilisé pour les couches où il a été paramétré.


    A chaque nouvelle mise à jour du plugin, le répertoire styles reprendra intégralement sa configuration par défaut.
    Pour conserver les fichiers ajoutés, il faudra bien penser à réaliser une sauvegarde avant de procéder à la mise à jour, puis la restaurer (voir onglet
    Maintenance).

    Chaque fichier est un dictionnaire qui peut comporter les attributs suivants :
  • name (texte)
    Libellé qui sera utilisé pour représenter le style (le nom du fichier sera utilisé si non défini)
    Veillez à bien encoder votre fichier en UTF-8 pour une bonne compréhension des caractères spéciaux
  • target (texte)
    Restriction possible sur le type de couches cibles : point, line ou polygon
  • *style* : un ou plusieurs champs décrivant la symbologie
    Il est possible d'utiliser tous les champs de symbologie simple reconnu par la classe QgsProperties
    La liste ci-dessous présente les principaux mais n'est pas exhaustive
  • color (texte) : couleur, au format hexadécimal (#RGB)
  • size (numérique) : taille, en millimètres
  • outline_color (texte) : couleur du contour, au format hexadécimal (#RGB)
  • outline_width (numérique) : taille du contour, en millimètres
  • vars (dictionnaire)
    Décrit vos variables. Chaque élément, dénommé par le nom de variable souhaité, est à nouveau un dictionnaire
  • label (texte) : libellé utilisé dans l'interface
  • default (texte ou numérique) : valeur par défaut de la colonne des couches (utile lorsque plusieurs couches sont au même format de données)
  • coeff (dictionnaire) : pour ajouter un coefficient multiplicateur (ne pas utiliser si la colonne à traiter est du texte)
  • default (numérique) : valeur par défaut
  • unit (texte) : référence à une liste de valeur pour une saisie rapide sous forme de liste de choix, sinon la saisie sera sous forme de champ numérique
  • list (liste)
    Décrit vos règles. Chaque élément est à nouveau un dictionnaire
  • nom de variable : (dictionnaire) décrit la plage de valeurs correspondantes à la règle pour cette variable, au moyen d'une ou plusieurs conditions
  • min (numérique) : la valeur doit être supérieure ou égal (>=)
  • max (numérique) : la valeur doit être strictement inférieure (<)
  • val (texte ou numérique) : la valeur doit être identique (=)
  • label (texte) : libellé utilisé dans la légende
  • *style* : un ou plusieurs champs décrivant la symbologie (reprendre ceux marqués d'une )



  • Les images
    Toutes les images utilisables par le moteur de rendu Qgis pour représenter les entités doivent être au format SVG.
    Le plugin s'appuie à la fois sur la bibliothèque d'images native à Qgis, ainsi que toutes les images qui sont placées dans le répertoire svg situé à la racine du dossier du plugin: il est possible d'en rajouter autant que souhaité, elles seront automatiquement proposés par la paramétrisation du style, mais si les fichiers ne sont pas propagés à l'ensemble des utilisateurs d'un même environnement de travail (ie: base, schéma et nom de table d'administration identique), l'image ne pourra pas être chargée et QGis affichera un point d'interrogation à la place.

    A chaque nouvelle mise à jour du plugin, le répertoire images reprendra intégralement sa configuration par défaut.
    Pour conserver les fichiers ajoutés, il faudra bien penser à réaliser une sauvegarde avant de procéder à la mise à jour, puis la restaurer (voir onglet
    Maintenance).



    Le paramétrage
    Il y a le paramétrage général des couches (voir onglet Gestion des données) qui est stocké en base de données : cela permet de le partager entre plusieurs utilisateurs et de conserver les données lors de la mise à jour du plugin.

    Tout le reste est propre à chaque utilisateur et est mémorisé dans le fichier parameter.ini qui se trouve à la racine du dossier du plugin (peut être édité via l'onglet Maintenance). La plupart des paramètres sont directement modifiables par l'interface du plugin (notamment via l'onglet Options du plugin) mais il est possible d'en modifier directement certains pour mieux personnaliser son utilisation.
    En cas de modification manuelle, il faut veiller à respecter strictement le nom des variables et leur section de rattachement (mais l'ordre importe peu). Si le paramètre est manquant, il sera réinitialisé à sa valeur par défaut, mais si sa valeur ne correspond pas à un format attendu par le plugin, cela peut provoquer des dysfonctionnements.

    Le contenu du fichier parameter.ini est également conservé dans les paramères généraux de Qgis.
    Ainsi, vos paramètres ne seront pas perdus lors de la mise à jour du plugin.

    Le fichier parameter.ini comporte 4 sections :
    (les paramètres marqués d'une sont modifiables via l'interface)

  • [CONN]
    Contient les informations de connexion à la base de données : 3. Configurer
  • host : adresse IP du serveur
  • port : port d'écoute (généralement Postgres utilise le 5432)
  • user : nom d'utilisateur
  • password : mot de passe
  • savePassword : mémorisation du mot de passe
  • db : base de données
  • schema : schéma d'exécution
  • [ADMIN]
    Contient les informations d'écriture en base de données : 3. Configurer
  • schema : schéma d'administration
  • tableAdmin : table d'administration des couches du plugin
  • tableTmp : table de stockage des couches temporaires
  • tmpPrefixe : préfixe utilisé pour marquer les tables temporaires
  • manualInsertion : pour utiliser un algorithme local lors de l'insertion des couches Qgis dans postgres au lieu de la fonction native de Qgis
  • [EXE]
    Contient les informations propre à l'exécution générale
  • root : Libellé utilisé pour representer le groupe global dans l'explorateur Qgis
  • alea : Libellé utilisé pour representer le groupe des Aléas
  • enjeu : Libellé utilisé pour representer le groupe des Enjeux
  • stats : Libellé utilisé pour representer le groupe des Statistiques
  • buff : Libellé utilisé pour representer le groupe des couches de tampon
  • enjeuLight : Libellé utilisé pour representer le groupe des couches de Points en fond
  • admin : paramétrage de l'option Administration
  • cbCompact : paramétrage de l'option Liste compacte
  • blocDrop :paramétrage de l'option Arborescence en bloc
  • blocDropExpand :paramétrage de l'option Tout déplier
  • animation : paramétrage de l'option Animation
  • help : paramétrage de l'option Aide en ligne
  • info : paramétrage de l'option Explications
  • cluster : paramétrage de l'option Rendu cluster
  • clusterField : paramétrage de l'option Somme sur attribut
  • clusterPrecision : précision utilisée pour sommer les attributs
  • clusterRound : arrondi la somme sur attribut à l'entier le plus proche
  • clusterBack : paramétrage de l'option Points en fond
  • buffer : paramétrage de l'option Tampon
  • bufferMin : valeur maximale autorisée pour le tampon
  • bufferMax : valeur minimale autorisée pour le tampon
  • simplify : paramétrage de l'option Simplifier
  • simplifyMax : valeur maximale autorisée pour la simplification
  • inversion : paramétrage de l'option Inversibilité croisement
  • cutting : paramétrage de l'option Découper
  • correction : paramétrage de l'option Correction à la volée
  • logs : permet l'activation d'un fichier de traces de toutes les requêtes asynchrones
  • queryTimeout : délai (en seconde) d'attente pour relancer une requête non achevée
  • stockTimeout : délai (en seconde) de validité d'une table temporaire (au delà la requête sera systématiquement exécutée à nouveau)
  • baseAdmin : permet de modifier la référence en base des couches (nom de table & schéma de stockage), en cliquant sur l'icône du type de géométrie
  • backMap : inutilisé
  • [PAINT]
    Contient les informations de dessin
  • strokeUnit : unité du trait des couches linéaires
  • strokeWidth : taille du trait des couches linéaires (la taille paramétrée dans l'interface sera un coefficient multiplicatif de cette valeur)
  • aleaOpacity : opacité appliquée à toutes les couches d'aléa
  • bufferFill : couleur de remplissage des couches Tampon
  • bufferStroke : couleur de trait des couches Tampon
  • bufferPen : style de trait des couches Tampon
  • bufferWidth : taille du trait des couches Tampon
  • statFill : couleur de remplissage des couches résultats des Statistiques
  • statStroke : couleur de trait des couches résultats des Statistiques
  • statPen : style de trait des couches résultats des Statistiques
  • statWidth : taille du trait des couches résultats des Statistiques
  • rendererTag : nom de la balise de symbologie dans le QML de Qgis
  • rendererUnit : unité des symboles des couches ponctuelles
  • rendererTolerance : taille des symboles des couches ponctuelles (la taille paramétrée dans l'interface sera un coefficient multiplicatif de cette valeur)


  • Les requêtes SQL
    Cette section n'est pas un cours sur le langage SQL, mais vise à décrire les mécanismes du plugin et les fonctions Postgis associées. Il n'est pas possible d'implémenter de nouvelles fonctionnalités SQL dans le plugin sans passer par de la reprise du code. Néanmoins, une meilleure compréhension de ces mécanismes peut permettre de mieux appréhender les résultats obtenus, voire pour les néophytes, de se familiariser un peu au croisement spatial dans Postgis.

    Le coeur de l'application repose sur l'utilisation de la fonction ST_Intersects() qui permet de savoir si deux géométries se superposent au moins un peu. C'est donc cette fonction qui est systématiquement utilisée dans une clause WHERE pour croiser les enjeux inclus dans les aléas. A noter que cette fonction récupère également les géométries qui sont jointives (sur le trait).
    Pour ne pas récupérer la totalité de la géométrie mais uniquement la partie qui se superpose (activation de l'option Découper), la requête SELECT se combine avec la fonction ST_Intersection() appliquée à la colonne de géométrie des enjeux.
    A l'inverse, pour récupérer les enjeux qui ne sont pas inclus dans l'aléa (activation de l'option Inversibilité croisement) la requête SELECT se combine avec la fonction ST_Difference().

    Pour optimiser l'exécution des requêtes SQL, chaque croisement enjeu/aléa est réalisé de façon unitaire, puis le résultat est ensuite combiné (utilisation de UNION) pour avoir une couche unique par enjeu. Ainsi lorsque que la liste d'aléas cochés est modifiée (un de plus ou un de moins), il n'est pas nécessaire de relancer le croisement sur l'ensemble des combinaisons aléa/enjeu déjà traitées.
    Cette recombinaison n'est néanmoins pas toujours possible, notamment si on active Découper, car la géométrie d'une même entité issue de plusieurs croisement ne va plus être identique du fait de son découpage, et la réunion des croisements unitaires peut conduire à récupérer des entités en double (ou manquante dans le cas de l'inversion). Dans ce cas le plugin lancera un croisement unique sur la réunion des aléas sélectionnés.

    Ensuite, la requête SQL se complexifie en fonction des différentes options qui sont activées. Par exemple, on va combiner sur l'aléa en plus du ST_Union() de base (qui permet de réunir les entités), un ST_SimplifyPreserveTopology() pour Simplifier la géométrie, un ST_Buffer() pour ajouter un Tampon, et des mécanismes de Correction à la volée avec ST_MakeValid() (plus un tampon à 0 sur les polygones).
    Lors de l'application de fonctions qui modifient la géométrie, il est possible que certaines entités voient leur typologie changer, et pour être correctement affichée dans Qgis il est important de bien garder toutes les entités d'une couche dans un type unique. Les fonctions ST_Dump() & ST_Multi() permettent de forcer la passage à des géométries simples ou multiples. La fonction ST_CollectionExtract() permet de ne conserver que les entités point, ligne ou polygone selon le type d'origine de la couche (détection avec geometryType()).

    Enfin, bien qu'il soit préférable de travailler avec toutes les couches dans un système unique de projection, des mécanismes de reprojection avec ST_Transform() seront appliqués si les systèmes de coordonnées aléa/enjeu diffèrent (détection avec ST_Srid()).

    NB: pour contourner l'impossibilité via Qgis3 d'afficher dans son rendu "Groupe de points" une statistique d'attribut sur les points regroupés, le plugin va démultiplier avec generate_series() autant que nécessaire chaque entité pour que le nombre d'entités corresponde à la valeur de l'attribut ciblé (modulo la précision souhaitée). C'est pourquoi l'option somme sur attribut du Rendu cluster peut être très coûteuse en temps, à la fois en génération de la couche mais surtout en transfert de données du serveur vers Qgis.


    Liste des principales fonctions Postgis utilisées par ordre alphabétique :
    generate_series()
    geometryType()
    ST_Buffer()
    ST_CollectionExtract()
    ST_ConvexHull()
    ST_Difference()
    ST_Dump()
    ST_Intersection()
    ST_Intersects()
    ST_IsValid()
    ST_MakeValid()
    ST_Multi()
    ST_SimplifyPreserveTopology()
    ST_Srid()
    ST_Transform()
    ST_Union()

    RDI - Croisement dynamique




    Une goutte de simplicité
    dans une analyse complexe