Télécharger le fichier pdf d’un mémoire de fin d’études
Analyse des outils existants
Dans cette partie nous allons référencer tous les soucis techniques rencontrés lors de l’utilisation des différents outils créés ou utilisés lors des précédents TFE. Notamment concernant les problèmes de vectorisation et de géoréférencement.
• Programme Python : Vectorisation par Transformée de Hough dite probabiliste
Plusieurs facteurs vont influer sur la vectorisation : marques de pliures, déchirures, tâches (eau, encre), traits de construction, papier jauni avec le temps. Tous ces facteurs vont nécessiter des post-traitements plus poussés, et augmenter le temps passé pour vectoriser une planche.
Un autre problème qui peut être résolu en amont de la vectorisation est la présence du carroyage. Il peut être supprimé à l’aide de masques. Seulement cela soulève un autre problème, en enlevant le carroyage, on va créer des discontinuités dans les limites de parcelles qui devront être reconnectées (voir partie GRASS en infra).
Tous les problèmes liés à l’état de conservation des planches de cadastre (voir supra) vont influencer sur la vectorisation. En effet lorsque l’on vectorise, le programme va détecter les lignes de contours à des endroits où il n’y en a pas (ex : pliures, tâches…). Pour limiter ces « fausses alarmes » nous avons restreint la vectorisation au contour de la feuille avec un masque et supprimé les petits objets dont la taille est inférieure à un certain seuil grâce au programme Python.
Un problème qui apparaît et qui est lié au fonctionnement de la transformée de Hough probabiliste, est le rendu en sortie du programme. Au lieu de ne générer qu’une seule ligne par contour de parcelle, le programme retourne une multitude de lignes (voir figure 4).
En sortie de programme, les vecteurs (au format shapefile) créés possèdent trois colonnes : ID, n° parcelle, section. Or, pour pouvoir géoréférencer ces derniers, le programme de transformation ridge par noyau Gaussien demande en entrée des données vectorielles avec cinq colonnes dans la table attributaire (ID, n° Parcelle, Commune, Section, n° Feuille). Il ne s’agit pas réellement d’un problème, mais plutôt d’un détail d’implémentation. Ici nous aurons rajouté des champs avec des valeurs arbitraires à l’aide d’un tableur. Pour corriger ce problème il suffit tout simplement de modifier le programme de labellisation pour avoir non pas trois, mais cinq colonnes dans la table attributaire des données vectorisées.
• Outil GRASS : vectorisation par suivi de chemin :
La vectorisation sur GRASS demande en entrée une image binaire (noir ou blanc (0 ou 1)) générée ici par un programme Python utilisant la bibliothèque scikit-image. Il est possible de nettoyer cette image afin de supprimer les plus gros objets qui n’ont pas été effacés par la fonction « remove small object » de python, puis d’enlever les plus gros reliquats à l’aide d’un logiciel de retouche d’images comme Gimp. Cela permettra de faciliter le traitement effectué sous GRASS. Cette opération de nettoyage peut également être réalisée avec les outils de GRASS avant la labellisation puis la transformation en polygone de chaque parcelle, ou bien directement sous QGIS avec le format vecteur ligne des parcelles en passant la couche en édition et en supprimant les erreurs manuellement.
D’autres problèmes ont été remarqués dans cette méthode de vectorisation par suivi de chemin, notamment lors de l’étape de nettoyage (post-traitement), pour le choix des seuils de la boite à outils v.clean de GRASS. En effet nous pouvons nommer la fonction snap, qui permet de raccorder deux segments, s’ils sont à une distance inférieure à un seuil donné. Si nous lui choisissons un seuil trop haut, certaines lignes vont faire des « zig-zag », cela impacte surtout les petits éléments comme les bâtiments ou les parcelles fines ou de petite taille. Lorsque l’on utilise un seuil trop petit, les limites de parcelles coupées ne vont pas se connecter entre elles. Il faut donc trouver le bon compromis entre un seuil trop haut et un seuil trop bas.
Un souci de géométrie apparaît également à certaines intersections. Il semblerait que ce problème survienne au moment de la squelettisation de l’image. En effet, sur les planches « papier » là où les lignes s’intersectent, il y aura un trait plus épais, la squelettisation aura ainsi plus de difficultés à s’effectuer. Il s’agit ici que d’un soucis d’ordre visuel et géométrique, cela n’affecte pas la topologie de nos parcelles.
Un autre problème a rencontré suite à la vectorisation semi-automatique par suivi de chemin. Le repère de la couche vectorisée et le repère de l’image raster ne sont pas orientés de la même façon. En effet, pour la couche vectorielle, l’axe Y est orienté vers le haut alors que pour la couche raster il est orienté vers le bas. Pour corriger cela il faut modifier la couche vecteur manuellement pour superposer le vecteur sur le raster. Si l’on ne corrige pas ce problème, nous aurons un décalage des coordonnées de la donnée géoréférencée égale à cette différence de repère. Pour solutionner ce problème nous avons utilisé le module « Affine » disponible sous QGIS pour applique une translation verticale de distance égale à la hauteur de l’image. Figure 7 Différence de repères pour le vecteur et le raster
• Programme Python : Labellisation
Il peut arriver, qu’il y ait un polygone à l’intérieur d’un autre polygone (bâtiment dans une parcelle ou une parcelle enclavée dans une autre), et lors de la vectorisation de l’image labélisée, GRASS va avoir du mal à l’interpréter, et va créer le contour du polygone mais il va également continuer le contour autour du polygone qu’il contient. La seule solution que nous ayons pu mettre en place est de supprimer manuellement les nœuds en trop.
Les produits en sortie de la chaîne de traitement de vectorisation ne sont pas parfaits. En effet, de petits objets comme des bâtiments n’ont pas été vectorisés, des parcelles peuvent être incomplètes car elles ne sont pas cadastrées précisément (lignes en tireté non détectées) et certaines lignes de contour n’ont pas été décelées. Cela concerne tant bien les résultats du programme Python basé sur la transformée de Hough, que de l’outil de suivi de chemin de GRASS.
Enfin, les routes ne sont pas représentées, ce qui forme des trous entre les parcelles. Cela est dû à la labellisation qui nécessite des contours fermés pour créer des polygones. Or les routes sont représentées par des lignes non fermées. Il faudra donc mettre en place un post-traitement pour récupérer les linéaires des routes (partie III.3 Mosaïquage).
• Programme Python : Géoréférencement par transformation ridge par noyau Gaussien
Pour les planches les plus anciennes, sur certaines zones, le parcellaire a énormément changé. Des lotissements, des aménagements, du remembrement ont été réalisés, si bien qu’il est difficile de trouver des points d’amer pour débuter le géoréférencement. Le manque de points d’amers va réduire la qualité du géoréférencement et nous allons observer des décalages entre la donnée vectorisée et la donnée de référence.
Aspects théoriques
Topologie
Les relations topologiques
Afin de mieux comprendre le mosaïquage, il est bon de s’intéresser aux relations des différentes entités, les unes par rapport aux autres. On peut distinguer 3 types de relations spatiales : topologique, métrique et d’orientation. Randell et al. (1992), définit dans son article Region Connection Calculus huit types de relations topologiques (figure 9). Pour notre étude, nous allons nous intéresser aux relations topologiques.
Les outils de correction topologique
ArcGis est connu comme étant l’un des meilleurs logiciels permettant la manipulation de fichier de forme, mais il n’est pas le seul à proposer des solutions de corrections topologiques. En effet J. Martinez-Llario et al (2017) fait l’état de l’art de nombreux logiciels proposant également des outils de corrections topologiques. Il définit tout de même ArcGis comme étant « [l’outil] ayant les meilleures solutions ». L’article classifie également les différents outils suivant leurs capacités à corriger les erreurs topologiques et leur disponibilité (Open Source ou propriétaire).
Nous allons distinguer les règles topologiques qui correspondent à des critères que doivent suivre les polygones (pas de nœuds en doublons, pas de polygones superposés, pas de trous dans un polygone…), des erreurs topologiques qui sont dues au non-respect des règles topologiques et qui seront corrigées à l’aide d’outils topologiques.
Le tableau 2 nous décrit brièvement les différents logiciels qui existent en matière de correction topologiques. Pour ne citer que les plus connus, il existe le logiciel ArcGIS qui dispose de 32 règles de topologies aidant à la correction. Il existe également le logiciel GRASS que nous avons pu utiliser dans la vectorisation de nos planches avec l’outil de « suivi de chemin ». Ce logiciel est quant à lui davantage destiné à un nettoyage des données (accrochage de segments, suppressions de petites aires…). Vient ensuite QGIS qui est un logiciel de SIG Open Source que nous allons utiliser tout au long de notre étude. QGIS dispose de moins de 15 règles topologiques mais elles restent suffisantes pour des applications courantes et peuvent être combinées pour aboutir à des chaines de traitement de corrections. Enfin PostGIS est plus axé sur l’aspect gestion de base de données, mais grâce à des requêtes SQL il permet d’effectuer des manipulations des géométries.
Le logiciel développé et présenté par les auteurs apparaît comme celui proposant le meilleur choix avec non pas moins de 64 règles topologiques proposées pour aider à la correction des différentes erreurs.
La théorie des graphes
Histoire des graphes
Commençons par un bref historique ainsi qu’une définition des graphes. L’origine des graphes remonterait à un article présenté par le mathématicien Leonhard Euler qui a souhaité résoudre le problème des « Sept ponts de Königsberg » (Costes B. 2016). Le principe est simple, il souhaitait savoir s’il était possible de faire le tour de la ville en ne passant qu’une seule fois par chacun des ponts traversant la ville. Pour cela il a représenté les différentes parties de la ville par des nœuds reliés par des arêtes représentant les ponts, et il prouva que c’était impossible. Un autre problème qui a tenté d’être résolu au moyen de graphes est le problème du « cavalier ». Le but de l’opération était de savoir s’il était possible de déplacer un cavalier sur un échiquier en ne passant qu’une seule et unique fois sur chaque case. Cette fois-ci ce fut un succès, la démarche était possible. « Les graphes constituent certainement l’outil théorique le plus utilisé pour les modélisations et la recherche des propriétés d’ensembles structurés. Ils interviennent chaque fois que l’on veut représenter et étudier un ensemble de liaison (orientées ou non) entre les éléments d’un ensemble fini d’objets » (Beauquier et al. (1992)). Ainsi, le modèle de graphe permet de représenter un réseau par un ensemble de nœuds (ou sommets) et d’arêtes lorsque les nœuds sont liés géographiquement. Dans notre cas, lorsque deux parcelles seront contiguës, les nœuds les représentants seront reliés par une arête.
Définition
Un graphe G = (V, E) est constitué :
– d’un ensemble V = {v1, v2, …, vn} dont les éléments sont appelés sommets ou encore nœuds,
– d’un ensemble E = {e1, e2, …, en} dont les éléments sont appelés arcs ou encore arêtes.
Un arc e ∈ E relie deux sommets x et y de V et on note généralement a = (x,y) ou encore a = xy. (B. Costes (2016)).
Un graphe se compose d’un graphe principal et d’un graphe dual. En théorie des graphes, le graphe dual d’un graphe est défini à l’aide des composantes de son complémentaire, lesquelles sont reliées entre elles en traversant les arêtes du graphe de départ (Wikipédia, l’encyclopédie libre 2018)
Projets utilisant la théorie des graphes
Un projet proposé par l’Agence Nationale de Recherche et l’Université Toulouse 2, nommé ModelSpace, et Architerre son successeur, se sont donnés pour mission de retracer l’historique du parcellaire de certains départements au moyen de registres terriers et de 20 compoix4. Les terriers et compoix se présentent sous la forme de registres accompagnés parfois de plans permettant d’illustrer le parcellaire. Ces registres vont consigner le nom et la profession du propriétaire, parfois le nom de l’exploitant, mais surtout et très souvent la superficie, une localisation par un microtoponyme, les noms des propriétaires des parcelles adjacentes (Le Couédic et al. (2012)). Ainsi, en recoupant toutes les données fournies par les registres et en s’aidant des plans terriers lorsqu’ils sont disponibles ou à défaut du cadastre napoléonien, il est possible de cartographier le parcellaire de l’époque. Le modèle qui a été utilisé est donc le modèle des graphes d’adjacence décrit plus haut, les parcelles sont réduites à un point et deux parcelles voisines correspondent à deux sommets voisins dans le graphe.
Des questions en rapport avec les différents éléments appelés linéaires (cours d’eau, routes…), qui sont en réalité représentés par des polygones dans le plan cadastral, ont rapidement été soulevées. Plusieurs possibilités ont été formulées pour la prise en compte de ces linéaires :
• les linéaires seront représentés par un unique point, ce qui représentait le mieux la description fournie par les terriers et compoix ;
• enlever les linéaires et les laisser vides, le graphe sera alors déconnecté ;
• décomposer le linéaire en autant de segments qu’il y a de parcelles adjacentes ;
• décomposer le linéaire en autant de segments qu’il y a de parcelles adjacentes mais suivant sa longueur cette fois-ci ;
• supprimer les linéaires en les intégrant aux parcelles.
C’est cette dernière solution qui est retenue pour la construction des graphes dans le projet ModelSpace.
Nous avons pu également nous entretenir avec Kamaldeep Singh Oberoi doctorant dont le sujet de thèse repose sur la théorie des graphes. En effet, celle-ci traite de l’analyse des entités interagissant avec une route (piétons, véhicules, signalisation, trottoirs…). Grâce aux graphes, il est possible de savoir à un instant t où se situe n’importe quelle entité, dans quel sens elle se dirige et avec quelle autre entité elle possède des liens topologiques. Son travail introduit également la notion de granularité. Le fait d’avoir un nœud d’un graphe contenant plusieurs entités (une planche contenant des sections puis des feuilles et enfin les parcelles) se nomme graphe granulaire. Dans son cas, il réduit l’ensemble des piétons, des trottoirs et des véhicules d’un côté de la route à un nœud et il en fait de même pour l’autre côté. Ainsi il n’aura plus que deux entités à étudier.
Dans sa thèse « un modèle de graphe spatio-temporel pour représenter l’évolution d’entités géographiques », G. Del Mondo nous introduit notamment la relation entre le raisonnement spatial et temporel et la théorie des graphes pour nous mener aux graphes temporels. Elle se sert des graphes spatio-temporels pour modéliser l’évolution des entités à travers le temps. Cette théorie est intéressante à étudier puisque à la fin de notre étude nous disposerons de plusieurs graphes partageant une même zone géographique sur 3 époques différentes. Il nous faudra trouver un moyen de mettre en relation nos différents graphes afin de les comparer et de définir l’évolution qu’il y a pu avoir entre ces derniers. Dans son cas, elle montre également l’analyse de l’évolution d’un parcellaire en matérialisant les liens de filiations (division, fusion) à l’aide de graphes sur différentes périodes.
Le modèle des graphes sera donc intéressant à étudier lors de ce TFE, d’une part pour analyser la qualité du mosaïquage, d’autre part pour l’analyse de l’évolution du parcellaire.
Outils d’analyse
Dans cette partie seront décrits quelques outils utiles à la correction topologique. Nous ne développerons pas tout l’aspect technique des outils mais seulement leurs fonctions principales et les résultats qu’ils fournissent (Article : Description des outils d’analyse spatiale).
La triangulation de Delaunay
La triangulation de Delaunay a été inventée par la mathématicien Boris Delaunay. La triangulation de Delaunay d’un ensemble P de points du plan est unetriangulation DT(P) telle qu’aucun point de P n’est à l’intérieur du triangle circonscrit d’un des triangles de DT(P) (d’après la définition donnée par le site Wikipédia). La triangulation de Delaunay peut également être contrainte à l’aide de ligne de ruptures et ainsi suivre des formes imposées par l’opérateur. Figure 11 Triangulation de Delaunay, d’après Hervé Lehning
• L’enveloppe convexe
La triangulation de Delaunay, si elle n’est pas contrainte, est à la base de la création de l’enveloppe convexe. L’enveloppe convexe est générée à l’aide des points les plus extérieur de l’ensemble de points. Nous pouvons faire l’analogie avec un élastique que nous viendrions placer autour de l’ensemble de points. Ainsi, la forme donnée par l’élastique formera l’enveloppe convexe.
• Union
L’outil d’union de QGIS permet de fusionner deux couches de forme en une seule. La nouvelle table attributaire créée après union, contiendra les champs des deux couches mères. Là où les planches s’intersectent il y aura la création d’un nouveau polygone qui prendra dans sa table attributaire les attributs des deux couches mères.
• Intersection
L’outil d’intersection de QGIS permet d’extraire la ou les forme(s) créé(es) par la superposition de plusieurs couche. La nouvelle forme prendra les attributs des planches mères tout comme pour l’outil d’union.
Nous pouvons voir dans la figure 15 un exemple d’union de table attributaires. En haut à gauche la table attributaire de la couche 1, haut à droite la table attributaire de la couche 2 et enfin en bas, le résultat de l’union des tables attributaires. Les champs prendront une nouvelle nomenclature avec l’indice de la couche d’origine du champ.
Méthodologie
Notions de relations entre les différentes entités
Dans la mesure où nous allons raisonner sur un problème concernant des relations topologiques, il est bon de s’intéresser aux relations pouvant lier les différentes entités que nous pouvons rencontrer sur les différentes planches. Les relations seront établies suivant le formalisme défini précédemment par le RCC8 de Randell et al.. Par la suite nous définirons les différents types d’entités, en relation avec notre travail, comme suit :
• Parcelle (P) (Polygone)
• Route (R) (Polygone)
• Cours d’eau (CdE) (Polygone)
• Bâtiment (B) (Polygone)
• Ecriture (E) (Polyligne)
• Limite de parcelle (L) (Polyligne)
Suppression des chevauchements
Ici nous allons nous occuper de corriger les problèmes de chevauchements entres les différentes sections.
Tout d’abord commençons par quelques définitions des couches qui seront utilisées et créées :
– Planches : il s’agit des feuilles (ex : K2, J3…) définies dans la partie 1.2.2
– L’enveloppe : il s’agit ici d’une triangulation de Delaunay ayant les mêmes caractéristiques qu’une enveloppe convexe, mais dont certains triangles ont été supprimés pour coller au mieux à la forme des planches (voir définition triangulation de Delaunay partie II.3)
– Trous et réseaux : les trous correspondent aux espaces vides entre les planches là où elles devraient normalement se toucher. Les réseaux correspondent aux espaces non cadastrés tels que les routes et rivières. Ils seront matérialisés tout deux par des polygones (pour plus de détails voir partie III.1).
La figure ci-contre montre les planches géoréférencées sans aucune correction topologique. Nous pouvons donc apercevoir les trous et recouvrement entre les deux planches ici en bleu et rose. Cette étape est primordiale pour éviter des erreurs avec les outils QGIS pour les étapes suivantes. Elle se réalise avec l’outil Vecteur/Outils de géométrie/Vérifier la validité. Après cette étape il faut corriger les géométries invalides si nécessaire. La plupart des erreurs relevées par cet outil sont dues à un mauvais nettoyage de la vectorisation automatique (sommets en double…) et peuvent être corrigées automatiquement à l’aide d’outils QGIS 3.0.
Etape 2 : Intersection des planches
Ici nous allons récupérer les intersections des planches entre elles en créant une nouvelle couche de polygones issus de cette intersection. Cette couche nous servira par la suite pour effectuer une requête spatiale et détecter les chevauchements. Pour effectuer cette opération il faut utiliser l’outil Vecteur/Outils de géotraitement/Intersection. L’opération est à répéter autant de fois qu’il y a de planches qui s’intersectent. Par la suite nous allons réunir toutes les intersections dans une même couche avec l’outils Vecteur/Outils de géotraitement/Union. Il est possible que certaines géométries soient des multi-polygones alors qu’ils devraient être uniques, il faut donc utiliser l’outil Vecteur/Outils de géométrie/De morceaux multiples à morceaux uniques pour avoir un seul polygone par géométrie et ne pas avoir de multi-polygones. La sortie de cet outil est susceptible de contenir des doublons, c’est pourquoi il faut utiliser l’outil Supprimer les géométries dupliquées.
Etape 3 : Recherche des superpositions
Par la suite, il faut unir toutes les planches de la même année entre elles avec l’outil Union utilisé précédemment. La couche en sortie est de nouveau susceptible de contenir des géométries en double, il faut donc les supprimer avec l’outil Supprimer les géométries dupliquées. Ensuite, il faut effectuer une requête spatiale où l’union des planches contient, est égal ou est à l’intérieur des superpositions. Nous choisissons tous ces critères pour ne pas oublier de polygones, en effet normalement, le critère d’égalité devrait suffire à lui seul, mais à cause des différentes manipulations effectuées en amont, il y a des micro-erreurs qui se sont glissées dans nos polygones. C’est pourquoi nous choisissons ces 3 critères.
Etape 4 : Suppression des trous
Une fois les superpositions sélectionnées grâce à la requête spatiale, nous pouvons les fusionner avec un polygone voisin (plusieurs options sont proposées pour la fusion : avec le polygone le plus grand, avec le polygone le plus petit, avec le polygone ayant la plus grande frontière en commun) avec l’outil Vecteur/Outils de géotraitement/Supprimer les débordements (2.18) ou Supprimer les polygones sélectionnés (3.0)
Ici nous retrouvons le résultat de la première partie de la chaîne de traitement. Les chevauchements ont été corrigés. A la sortie de cette partie, il est possible d’avoir des parcelles en double, il faudra alors les nettoyer manuellement (voir partie IV, analyse des résultats). Il ne reste plus que les trous entre les planches.
Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.
|
Table des matières
TABLE DES MATIERES
INTRODUCTION
I CONTEXTE ET DONNEES
I.1 LA CHAINE DE TRAITEMENT ELABOREE PAR LE LABORATOIRE GEF
I.2 LES DONNEES
I.2.1 Aspects généraux
I.2.2 Les données utilisées
I.3 ANALYSE DES OUTILS EXISTANTS
II ASPECTS THEORIQUES
II.1 TOPOLOGIE
II.1.1 Les relations topologiques
II.1.2 Les outils de correction topologique
II.2 LA THEORIE DES GRAPHES
II.2.1 Histoire des graphes
II.2.2 Définition
II.2.3 Projets utilisant la théorie des graphes
II.3 OUTILS D’ANALYSE
III METHODOLOGIE
III.1 NOTIONS DE RELATIONS ENTRE LES DIFFERENTES ENTITES
III.2 MOSAÏQUAGE
III.2.1 Présentation du traitement
III.2.2 Suppression des chevauchements
III.2.3 Suppression des trous
III.3 APPLICATION DE LA THEORIE DES GRAPHES
III.3.1 Différents types de graphes
III.3.2 Traitement d’une planche
III.3.3 Graphe de plusieurs planches
IV PRESENTATION DES RESULTATS
IV.1 LES RESULTATS DU MOSAÏQUAGE
IV.1.1 Année 1813
IV.1.2 Année 1850
IV.1.3 Années 1972-1974
IV.2 LES RESULTATS DES GRAPHES
IV.2.1 Année 1813
IV.2.2 Année 1850
IV.2.3 Année 1973
IV.3 LIENS ENTRE MOSAÏQUAGE ET THEORIE DES GRAPHES
CONCLUSION ET PERSPECTIVES
BIBLIOGRAPHIE
Télécharger le rapport complet