Validation de la géométrie

Qualigéo permet la spécification et le contrôle de la géométrie des types d’entité. Ce contrôle est basé sur l’utilisation du Transformer GeometryValidator de FME. Ce dernier effectue les contrôles de validité selon les spécifications de l’OGC (simple ou valide), et/ ou selon des critères géométriques sélectionnés en paramètres.

Critères de validation de la géométrie

Critère de validation Définition Chaîne WKT Exemple de géométrie
Géométries corrompues ou dégénérées Les dégénérescences et
corruptions vont être détectées. Une géométrie dégénérée est une
géométrie dont le type de géométrie peut être simplifié. Un polygone
avec une surface nulle, par exemple, est dégénéré, et peut être
simplifié en une ligne, un point ou un IFMENull. Une géométrie
corrompue, quant à elle, contient des éléments conflictuels dans la
définition de sa géométrie (ex : un arc dont les angles et les points
finals sont incohérents).
POLYGON ((15 35))
Auto intersection Les points d’auto-intersection sont détectés.
POLYGON ((0 11,0 20,10 20,10 11,0 11),(0 15,2 16,0 17,0 15))
Points consécutifs dupliqués en 3D La détection des entités dupliquées est réalisée en 3D.
LINESTRING Z (0 0 10,0 0 10,1 1 10,2 2 10)
Points consécutifs dupliqués en 2D La détection des entités dupliquées est réalisée en 2D.
LINESTRING (0 0,0 0,1 1,2 0)
Contient des valeurs NaN ou infinies Les NaN (Not a Number) et les valeurs infinies vont être détectées.
POINT (0 nan)
Contient des parties de géométries nulles Les IFMENull vont être
détectés. Noter qu’un IFMENull n’est considéré comme une « partie » que
s’il provient d’un agrégat. Seuls les IFMNull enfants de certains
agrégats sont considérés comme des « parties ».
GEOMETRYCOLLECTION (POLYGON ((0 0,1 0,1 1,0 1,0 0)),POLYGON ((3 0,4 0,4 4,3 4,0 4,3 0)),GEOMETRYCOLLECTION EMPTY)
Vertex "normaux" manquants Les vertex sans normale et les coordonnées de texture manquantes sont détectés (un vertex est rapporté par géométrie).
MULTILINESTRING Z ((1 5 0,1 5 0),(1 5 0,2 3 4),(2 3 4,1 5 0))
Surface non plane Les faces et parties de
surfaces non planes, comme par exemple des parties de mailles ou des
parties de surfaces composées, vont être détectées. Une face ou une
partie de surface non planaire n’a pas tous les vertex dans le même plan
de l’espace.
Limites de solides invalides Les types d’anomalies suivants peuvent être détectés :
- vertex non utilisés,
- pas assez de faces,
- mauvaise orientation de face,
- géométrie 2-Manifold invalide,
- surface auto-intersectée,
- surface non fermée,
- mauvaise orientation de surface,
- plusieurs composants connectés.
Vides de solides invalides Un vide est une cavité, ou une région vide à l’intérieur d’un solide et est définie par sa bordure interne. Un solide est défini par sa bordure externe et une ou plusieurs bordures internes. Les types d’anomalies suivants peuvent être détectés :
- dupliquer les enveloppes,
- intersection des enveloppes,
- coquille interne à l’extérieur de coquille externe,
- intérieur de coquille non connecté,
- bordures de solide invalides.
MULTILINESTRING Z ((0 0 0,10 0 0),(10 0 0,10 0 10),(10 0 10,0 0 10),(0 0 10,0 0
0),(10 0 0,10 10 0),(10 10 0,10 10 10),(10 10 10,10 0 10),(10 0 10,10 0 0),(0 0
0,0 10 0),(0 10 0,10 10 0),(10 10 0,10 0 0),(10 0 0,0 0 0),(0 0 0,0 0 10),(0 0
10,0 10 10),(0 10 10,0 10 0),(0 10 0,0 0 0),(0 0 10,10 0 10),(10 0 10,10 10
10),(10 10 10,0 10 10),(0 10 10,0 0 10),(0 10 0,0 10 10),(0 10 10,10 10 10),(10
10 10,10 10 0),(10 10 0,0 10 0),(2 2 2,2 2 5),(2 2 5,5 2 5),(5 2 5,5 2 2),(5 2
2,2 2 2),(2 2 2,5 2 2),(5 2 2,5 5 2),(5 5 2,2 5 2),(2 5 2,2 2 2),(5 2 2,5 2
5),(5 2 5,5 5 5),(5 5 5,5 5 2),(5 5 2,5 2 2),(2 2 2,2 5 2),(2 5 2,2 5 5),(2 5
5,2 2 5),(2 2 5,2 2 2),(2 2 5,2 5 5),(2 5 5,5 5 5),(5 5 5,5 2 5),(5 2 5,2 2
5),(2 5 2,5 5 2),(5 5 2,5 5 5),(5 5 5,2 5 5),(2 5 5,2 5 2),(5 5 5,5 7 5),(5 7
5,5 7 7),(5 7 7,5 5 7),(5 5 7,5 5 5),(5 5 5,7 5 5),(7 5 5,7 7 5),(7 7 5,5 7
5),(5 7 5,5 5 5),(5 5 5,5 5 7),(5 5 7,7 5 7),(7 5 7,7 5 5),(7 5 5,5 5 5),(5 5
7,5 7 7),(5 7 7,7 7 7),(7 7 7,7 5 7),(7 5 7,5 5 7),(5 7 5,7 7 5),(7 7 5,7 7
7),(7 7 7,5 7 7),(5 7 7,5 7 5),(7 5 5,7 5 7),(7 5 7,7 7 7),(7 7 7,7 7 5),(7 7
5,7 5 5))
Toutes les erreurs OGC simples La contrainte OGC simple regroupe les trois contraintes :
- auto Intersection,
- point répété,
- géométrie corrompue.
Toutes les erreurs OGC valides La contrainte OGC valide regroupes les contraintes :
- trou à l’extérieur,
- trous imbriqués,
- intérieur déconnecté,
- anneau auto intersecté,
- enveloppes complémentaires,
- anneaux dupliqués,
- pas assez de points,
- coordonnée invalide,
- anneau non fermé,
- géométrie corrompue.
Coordonnées de texture manquantes Certaines géométries,
comme les mailles et les faces, supportent les apparences. Ces
géométries peuvent être incluses dans des surfaces complexes ou de
solides. Parfois, les apparences ont des textures associées, en raster.
Si c’est le cas, il est nécessaire que les géométries correspondantes
disposent des coordonnées de texture. Sans celles-ci, il ne sera par
exemple pas possible, lors de la visualisation, de faire le lien entre
la texture et la géométrie correspondante.
Orientation surfacique invalide Les surfaces telles que
les polygones, ellipses et polygones troués ont une orientation. Cette
orientation peut suivre la règle de la main droite, de la main gauche ou
être invalide. Une orientation de type règle de main gauche signifie
qu'une limite extérieure a ses vertex ordonnés dans le sens inverse des
aiguilles d'une montre et les trous ont leurs vertex ordonnés dans le
sens des aiguilles d'une montre. Avec une orientation de type règle de
la main droite, la limite externe d'un polygone a ses vertex ordonnés
dans le sens horaire, et les trous ont leurs vertex ordonnés dans le
sens inverse. Un exemple de polygone invalide pourrait être un polygone
troué dont les limites externes et les limites de trous orientées dans
le même sens.
POLYGON ((31 21,31 30,40 30,40 21,31 21),(35 25,35 27,36 27,36 25,35 25))

Exemple de polygones et contraintes OGC

Type de validation OGC Critère OGC
Chaîne WKT Exemple de géométrie
OGC Valide Auto intersection POLYGON ((0 11,0 20,10 20,10 11,0 11),(0 15,2 16,0 17,0 15))
OGC Valide Géométries corrompues ou dégénérées POLYGON ((41 11,50 11,50 20,41 20,41 12,41 11),(45 12))
OGC Valide Auto intersection POLYGON ((21 0,21 10,30 10,30 0,21 0),(27 9,29 9,28 11,27 9))
OGC Valide Intérieur déconnecté POLYGON ((11 11,11 20,20 20,20 11,11 11),(18 11,20 12,18 12,18 11))
OGC Valide Trou à l'extérieur de l'enveloppe POLYGON ((41 0,50 0,50 10,41 10,41 0),(51 1,52 1,52 3,51 3,51 1))
OGC Valide Trous imbriqués POLYGON ((21 21,21 30,30 30,30 21,21 21),(22 23,26 23,26 28,22 28,22 23),(23 24,25 24,25 27,23 27,23 24))
OGC Valide Auto intersection POLYGON ((11 21,11 30,20 30,20 21,11 21),(15 23,17 23,17 25,15 25,15 23),(16 24,18 24,18 26,16 26,16 24))
OGC Valide Géométries corrompues ou dégénérées POLYGON ((15 35))
OGC Valide Anneaux dupliqués POLYGON ((31 21,40 21,40 30,31 30,31 21),(35 25,36 25,36 27,35 27,35 25),(35 25,36 25,36 27,35 27,35 25))
OGC Valide Coordonnée invalide POINT (0 nan)
OGC Valide Enveloppes complémentaires MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)),((0
0, 10 0, 10 10, 0 10, 0 0)))
OGC Valide Anneaux dupliqués MULTIPOLYGON(((0 0, 10 0, 10 10, 0 10, 0 0)),((0 0, 10 0, 10 10, 0 10, 0 0)))
OGC Valide Anneau non fermé POLYGON((0 0, 0 10, 10 10, 10 0))
OGC Simple Géométries corrompues ou dégénérées LINESTRING (0 0,0 0)
OGC Simple Auto intersection POLYGON ((5 0,10 0,10 10,0 10,0 0,5 0,3 3,5 6,7 3,5 0))

Cas de figure de lignes valides/invalides :

Cas de figure de multi-polygones valides/invalides :

Cas de figure de multi-lignes valides/invalides :