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 :