Accueil
QUELQUES EXEMPLES DE TRAITEMENTS DES DONNÉES CADASTRALES AVEC QGIS, version ESSEN 2.14

Depuis la mise à disposition du plugin cadastre dans le logiciel QGIS, cet outil est un moyen facile, rapide et gratuit d'exploiter les données cadastrales. Son principal avantage à mes yeux réside dans l'association des données graphiques (EDIGEO) et des données informatives (MAJIC). En revanche, il n'est pas simple pour un non géomaticien d'exploiter les possibilités du logiciel. Ce qui suit n'est en aucun cas une documentation. Il s'agit plus modestement de donner quelques exemples d'utilisation qui, une fois qu'ils seront compris, permettront de tirer le maximum des outils à disposition.

Il faut d'abord que QGIS et le plugin cadastre soient installés. Il faut également disposer d'un jeu complet de données cadastrales pour une Commune. Le chargement des données étant bien documenté, ce point n'est pas abordé ici. Dans notre exemple, la base de données cadadstrale a été créée en SQLite-SPACIALite. Dernier point du préambule, les données MAJIC sont très nombreuses et disponibles dans des champs (colonnes) dont l'acronyme est peu parlant. Le CERTU publie un guide complet pour exploiter ces informations. Le choix architectural de la base de données fait par les développeurs du plugin complique encore les choses puisqu'ils ont créé plus de tables que de fichiers MAJIC. Les débutants vont devoir aller "à la peche aux informations" pour retrouver ces variables. C'est expliqué dans la première requête ci-dessous.

Tous nos exemples utilisent des requêtes SQL. Il faut donc se rendre dans l'interface idoine : Aller sur le menu
base de données=>Gestionnaire de base de données=>Gestionnaire de base de données.
Sélectionner la base de données (fichier SQLite). Cliquer sur l'icone "Fenêtre SQL". Saisissez ici vos commandes SQL ou collez les exemples suivants :


Quelques requêtes pour se faire la main :

Pour rechercher les tables ayant une variable commune nommée DNUPRO, collez la ligne suivante dans la fenêtre de requête :
select * from sqlite_master where type='table' and sql like '%DNUPRO%'

Pour obtenir la surface totale des bois :
select sum(dcntsf) from suf where dsgrpf='BR' or dsgrpf='BT'

rechercher les propriétaires de logements vacants :
select dprnlp as prenom,dnomlp as nom from proprietaire where dnupro in (select dnupro from local10 where dnatlc='V')

rechercher les parcelles dont le logement est vacant :
select parcelle from local10 where dnatlc='V'

Créer une couche graphique à partir de la précédente requête :
select geom from geo_parcelle where geo_parcelle in (select parcelle from local10 where dnatlc='V')
en bas à gauche de l'écran de requête, cocher "charger en temps que nouvelle couche" ; dans "nom de la couche", mettre un nom quelconque, exemple "verger", puis cliquer sur Charger. La nouvelle couche est maintenant visible dans QGIS.

Créer une table graphique avec les valeurs locatives :
select geo_parcelle.geom, pev.dvlpera,local10.parcelle
from geo_parcelle,local10,pev
where geo_parcelle.geo_parcelle=local10.parcelle
and local10.invar=pev.invar
and (local10.cconlc='MA' or local10.cconlc='AP')
Lorsque cette nouvelle table est chargée dans QGIS, on peut colorier les polygones selon un gradient. Il devient alors facile de repérer les immeubles à forte valeur locative ainsi que les plus faibles valeurs.

Construire une couche graphique avec les parcelles, les noms des propriétaires, l'adresse de chaque parcelle et la date de la dernière mutation.
select geo_parcelle.idu,geo_parcelle.supf,geo_parcelle.geom,parcelle.jdatat,parcelle.ccosec,
     parcelle.dnupla,parcelle.dnupro,parcelle.dnvoiri,parcelle.cconvo,parcelle.dvoilib,proprietaire.ddenom,
          proprietaire.dlign3,proprietaire.dlign4,proprietaire.dlign6
               from geo_parcelle,parcelle,proprietaire
                    where geo_parcelle.geo_parcelle=parcelle.parcelle and parcelle.dnupro=proprietaire.dnupro

On peut procéder autrement : supprimer la variable "geo_parcelle.geom" de la requête précédente et lorsque le résultat est inséré dans QGIS, établir une jointure entre la couche "parcelle" et la nouvelle couche. Il faut cliquer-droit sur la couche parcelle puis propriétés puis jointure


La requête la plus importante :

Pour tirer un maximum d'information des données cadastrales, il faut établir des jointures entre les tables qui nous intéressent. On utilise pour cela des variables communes à plusieures tables mais n'existe pas de "lien naturel" dans cette base de données.
Il y a trois noms de colonnes qui permettent ces liaisons. Ce sont les numéros de parcelles pour les tables "non bâti" , la variable "INVAR" pour les données du bâti qui est un numéro unique pour chaque bâtiment et la variable "DNUPRO" pour l'identifiant des propriétaires.
On va donc créer une table contenant ces trois variables, l'insérer dans le projet QGIS et sauvegarder ce dernier. Ainsi, on pourra faire toutes les requêtes imaginables depuis cette table puisqu'elle contient au moins une variable commune aux autres tables :
select parcelle, dnupro,invar
   from
      (
      select * from parcelle
      left outer join local10 on parcelle.parcelle=local10.parcelle
      )



Le programme VBA-Excel de traitement des fichiers MAJIC n'est plus en téléchargement car il m'est devenu très dificile de le mettre à jour.