PostGIS : Nettoyage et Validation de données géographiques

Vive le partage des données! Vive l’Open Data! On ne peut qu’être satisfaits de l’ouverture des jeux de données mais en matière de données géographiques, on peut vite « déchanter » en téléchargeant des fichiers (shapefile, GeoJSON, etc) corrompus. Vous savez quand vous vous lancez dans des géotraitements sur QGIS et que vous obtenez une multitude d’erreurs pour intersecter des entités vectorielles par exemple (figure 1).

Figure 1 : Erreur lors d’une intersection de deux entités vectorielles dans QGIS

L’erreur signalée par QGIS est ici « Invalid geometries », ce qui -comme vous le savez déjà- signifie que la géométrie spatiale de l’entité géographique concernée comporte une erreur. Cette dernière peut être causée par plusieurs incohérences géométriques tels une duplication des nœuds, un polygone avec moins de trois nœuds, des auto-intersections, une géométrie inexistante, etc.  Alors comment valider et nettoyer l’ensemble des géométries des vecteurs?

En faisant quelques recherches sur internet, on s’aperçoit qu’il existe plusieurs méthodes et outils pour répondre à cette problématique. Ainsi, on peut se référer aux articles de François Atilio qui décrit certaines étapes de validation des données géographiques notamment à partir d’une base spatialite. Anita Graser utilise le logiciel libre GRASS pour corriger les erreurs géométriques des données après les avoir détecter dans QGIS. Cette détection est possible grâce à l’outil « vérifier la validité » disponible par le chemin :

Vecteur > Outils de géométrie > Vérifier la Validité

Ici, je ne m’attarde pas sur ce procédé car dans la majorité des cas, je n’utilise QGIS que pour visualiser les couches SIG et je réalise les corrections géométriques directement dans PostgreSQL / PostGIS. L’idée reste identique puisqu’on s’assure dans un premier temps de la validité des données puis on les modifie dans la table spatiale.

Après le chargement de votre couche SIG dans le SGBD PostgreSQL avec votre outil préféré (shp2pgsql, ogr2ogr, etc), on utilise quelques requêtes SQL permettant de corriger géométriquement des données SIG dans PostGIS. On imagine une table « A » (de type MULTIPOLYGON) ayant pour identifiant « gid » (clé primaire) et pour colonne géométrique « geom ».

Veuillez vous Connecter pour consulter ce contenu. S'Inscrire Gratuitement ››

En conclusion, l’extension spatiale PostGIS permet de traiter de manière approfondie les données géographiques par l’implémentation de multiples fonctions. Ici, on a utilisé plusieurs d’entre elles dans l’objectif de corriger les géométries non valides d’entités vectorielles. Par extension, après cette validation, on pourra se consacrer à différents géotraitements comme les intersections de vecteurs. Pour aller plus loin, PostGIS met à disposition une documentation pour la gestion des bases de données géographiques.

 

 

Taggé , .Mettre en favori le Permaliens.

A propos Florian Delahaye

Fondateur et Administrateur de Geomatick. Consultant en Géomatique. Docteur en Géographie, Spécialités en SIG et Télédétection.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *