GeometryValidator
Détecte des anomalies sélectionnées dans les entités d'entrée et, en option, répare les anomalies détectées. Chaque entité d'entrée est traitée individuellement.
GeometryValidator est un Transformer très complet, qui offre de multiples possibilités de traitement et s'avère en outre particulièrement utile pour les utilisateurs avancés. La rubrique d'aide se compose d'un certain nombre de sections de référence :
Dépendances d'entrée des anomalies
Dépendances de sortie des anomalies, en supposant que les dépendances d'entrée sont respectées
Ports d'entrée
Toutes les géométries d'entrée sont acceptées, mais toutes ne sont pas soumises à la détection des anomalies. Ces géométries ne seront supportées que « superficiellement » par le Transformer (lors de la détection d'anomalies sur des surfaces ou des solides par exemple, les points et lignes ne seront pas pris en compte par le Transformer).
Certaines géométries ne sont pas prises en charge actuellement. Si une entité consiste uniquement en des géométries actuellement non prises en charge, elle sera sortie sur le port Passed. Si une entité contient une géométrie qui n'est pas prise en charge actuellement, un message d'avertissement sera imprimé dans le journal une fois par session.
Note: Si une entité sortant par le port Passed vous semble invalide, vérifiez dans le log que celle-ci ne contient pas une géométrie non supportée.
Ports de sortie
Quand une entité ressort par le port Passed, cela signifie qu'aucune erreur n'y a été détectée.
Si une entité est produite par le port Failed, cela signifie que la détection de l'anomalie a échoué. Les entités sont émises par ce port pour trois raisons :
- Quand Tenter de réparer vaut Non, le port contient des entités dans lesquelles ont été détectés les types d'anomalies sélectionnés.
- Lorsque le paramètre Tenter de réparer est défini sur Oui, ce port contient des entités qui n'ont pas pu être entièrement réparées. On peut déterminer si une entité est entièrement réparée en observant l'attribut d'état de réparation associé aux anomalies signalées. Si une anomalies détectée est signalée comme n'étant pas entièrement réparée, alors l'entité sera, dans son ensemble, considérée comme n'étant pas entièrement réparée, et sera sortie via le port Failed.
- Lorsque le paramètre Tenter de réparer est défini sur Oui, ce port peut contenir des entités restantes. Par exemple, la réparation d'un polygone troué auto-intersecté peut produire une zone réparée et un certain nombre de zones restantes provenant de trous qui s'étendent au-delà de la coque extérieure.
Pour faire la distinction entre ces différents types de situations, s'assurer que le paramètre Nom de liste est bien spécifié.
Ce port n'est utilisé que lorsque l'option Tenter de réparer est définie sur Oui. Si une entité est émise sur le port Repaired, cela signifie qu'au moins une anomalies a été détecté et que tous les problèmes détectés ont été réparés.
Ce port produit des emplacements de points qui correspondent aux anomalies trouvées par les ports Failed et Repaired. Chaque emplacement aura des attributs expliquant à quelle anomalie il correspond, ainsi que les attributs de l'entité originale.
Ce port produit la ou les plus petites parties de la géométrie qui montrent les anomalies trouvées par les ports Failed et Repaired. Chaque partie aura des attributs expliquant à quelle anomalie elle correspond, ainsi que les attributs de l'entité originale.
Ce port produit des entités qui ne peuvent pas être traitées. Cela peut se produire si un paramètre numérique est défini pour prendre sa valeur à partir d'un attribut, mais que la valeur de l'attribut pour une entité est non numérique. Toute entité rejetée aura un attribut fme_rejection_code qui fournira plus de détails.
Paramètres
Note: Pour mieux appréhender l'utilisation des différents paramètres du Transformer et obtenir des informations plus détaillées, se référer aux autres sections de cette rubrique d'aide.
Validation
Utilisez ce paramètre pour sélectionner rapidement plusieurs anomalies liées. Lorsque vous sélectionnez un ensemble d'anomalies, les anomalies liées sont ajoutées à la table des anomalies . Vous pouvez également ajouter vos propres anomalies à la table, une ligne à la fois, en utilisant le bouton "+". Une fois qu'une ligne existe, l'"anomalie à détecter" peut être spécifiée en double-cliquant sur une entrée vide. En fonction de l'anomalie ajoutée, un paramètre spécifique à celle-ci peut apparaître dans la colonne "Paramètres". Si une anomalie a plus d'un paramètre associé, un bouton "Modifier..." apparaît dans la colonne "Paramètres". En cliquant sur ce bouton, une boîte de dialogue contenant tous les paramètres spécifiques à l'anomalie s'affiche. Pour plus d'informations sur la détection et la réparation des problèmes, voir Anomalies ci-dessous et Tableau des anomalies de GeometryValidator.
Nom de la colonne | Description |
---|---|
Anomalie | Sélectionnez les anomalies à détecter ou à réparer. Pour plus d'informations, voir la section Anomalies ci-dessous et le tableau des anomalies de GeometryValidator. |
Paramètres | Spécifie les paramètres spécifiques à chaque anomalie sélectionnée. |
Les problèmes sélectionnés sont détectés dans l'ordre indiqué dans la colonne Anomalies. L'ordre de détection des problèmes peut être modifié en mettant un problème en surbrillance, puis en cliquant sur les petites flèches haut/bas situées juste à côté du tableau des problèmes.
Détection d'anomalies et Réparer
Pour plus d'information sur la façon dont les anomalies sont détectées et/ou réparées, consulter la section Table des anomalies GeometryValidator.
La détection des anomalies ne se produit qu'au sein des géométries des entités (ce qui inclut ses propriétés géométriques comme par exemple la rotation du texte ou l'angle de courbure des arcs d’ellipse). Cela signifie que les attributs, les traits, les noms de géométrie et les autres propriétés non géométriques ne sont pas traités.
Les entités avec une géométrie inadaptée au test (telles que des entités linéaires pour un test évaluant l'orientation de polygones) transitent via le Transformer et aucune réparation n'est effectuée.
En général, les types de géométrie en entrée sont préservés, sauf en cas d'impossibilité.
Par exemple, un arc qui dégénère en un point ne peut pas rester un arc et être en même temps non dégénéré. Ainsi, lorsque la question Géométries dégénérées et corrompues est sélectionnée et que l'option Tenter de réparer est définie sur Oui, l'arc doit être réparé en un point.
En revanche, un polygone troué contenant une enveloppe non dégénérée, un trou dégénéré et un trou non dégénéré peut rester un polygone à trou après réparation (s'il perd son trou dégénéré). Le polygone troué laisse simplement tomber le trou dégénéré et reste un beignet.
Si une géométrie d'entrée contient plusieurs anomalies, mais que seul un sous-ensemble d'entre elles est détecté et réparé, attendez-vous à un comportement non défini. Par exemple, si un arc contenant un NaN (Not a Number) est réparé uniquement pour la dégénérescence et la corruption, le nombre de NaN dans cet arc pourrait augmenter. Autre exemple, si vous tentez de réparer des auto-intersections dans une géométrie dégénérée, celle-ci peut ressortir avec un type de géométrie différent et perdre ses coordonnées.
Dépendances d'entrée des anomalies
La détection et réparation des anomalies suivantes dépend de l’absence d’autres anomalies :
Géométries dégénérées ou corrompues | pas de NaN ou de valeurs infinies en entrée |
Astuce : pour éviter un comportement indéfini, sélectionner Géométries dégénérées ou corrompues et Contient des NaN ou infini avant de sélectionner Auto-Intersection en 2D. |
pas de NaN ou de valeurs infinies, de données dégénérées ou corrompues en entrée |
Surfaces non planes | pas de NaN ou de valeurs infinies en entrée |
Bordures de solide invalides ou Vides dans solide invalides | pas de NaN ou de valeurs infinies, de doublons, de données dégénérées, corrompues ou d'auto-intersections dans les faces individuelles en entrée. |
Vides dans solides invalides | pas de bordures de solide invalides |
Dépendances de sortie des anomalies, en supposant que les dépendances d'entrée sont respectées
Réparer les anomalies suivantes peut produire d’autres anomalies :
Contient des -0, NaN ou des valeurs infinies | peut produire en sortie une donnée dégénérée |
Géométries dégénérées ou corrompues | peut produire en sortie une donnée auto-intersectée |
Contient des parties géométriques nulles | peut produire en sortie une donnée dégénérée |
Points consécutifs dupliqués (doublons) | peut produire en sortie une donnée dégénérée |
Auto-intersections en 2D | peut produire en sortie une donnée dégénérée |
Bordures de solide invalides | peut produire des faces dégénérées en bordure du solide |
L'ordre recommandé des anomalies à détecter est intégré dans la colonne des anomalies. Si vous souhaitez un ordre différent, mettez une anomalie en surbrillance, puis cliquez sur les flèches vers le haut et vers le bas en bas du tableau des anomalies.
Astuce : L'ordre de détection et de réparation des anomalies peut modifier les géométries en sortie.
Anomalie à détecter
Si Traiter la mesure est sélectionné, les opérations suivantes tiendront également compte des mesures. Ne pas traiter la mesure est la valeur par défaut.
Si Tenter de réparer est mis à Non, les NaN et les valeurs infinies vont être détectées.
Si Tenter de réparer est mis à Oui, deux types de traitement peuvent être mis en place, selon la situation :
- S’il y a une information redondante (comme la présence de points en fin d’arcs d’ellipse), celle-ci sera utilisée pour extraire les valeurs à attribuer à la place des NaN.
- S’il n’y a pas d’information redondante, les NaN seront supprimés, ce qui pourra entraîner la suppression d’une coordonnée, ou la conversion de la géométrie en IFMENull.
Par exemple, lorsque l'option Tenter de réparer est définie sur Oui, un arc contenant une rotation NaN sera remplacé par un IFMENull car il n'y a pas d'informations redondantes pour recalculer la rotation. Autre exemple, un arc dont les points d'extrémité sont des NaN peut voir ses points d'extrémité recalculés sur la base du point central et des propriétés de l'arc.
Si le paramètre Tenter de réparer est réglé sur Non, les pièces IFMENull seront détectées. Notez qu'un IFMENull en lui-même n'est pas considéré comme une "partie". Seuls les IFMENulls qui sont les enfants d'un agrégat seront considérés comme des "parties".
Si Tenter de réparer vaut Oui, les parties IFMENull vont être supprimées.
Si Tenter de réparer vaut Non, les points consécutifs qui sont dans la tolérance spécifiée sont détectés.
Si Tenter de réparer vaut Oui, les points consécutifs qui sont dans la tolérance spécifiée sont supprimés.
Si Inclure les valeurs Z est mis à Non, la détection des entités dupliquées est réalisée en 2D.
Si Inclure les valeurs Z est mis à Oui, la détection des entités dupliquées est réalisée en 3D.
La valeur de Tolérance par défaut est 0, ce qui signifie que seuls les points consécutifs en double seront pris en compte.
Paramètres
En le visualisant en 2D (en ignorant le Z), un chemin (qui peut définir le bord d'un polygone) peut apparaître fermé tel que montré ci-dessous. Ce même chemin, vu en 3D, peut apparaître ouvert comme le montre la figure de droite ci-dessous.
Pour spécifier la façon (et si) dont le chemin doit être fermé en 3D, sélectionner une des méthodes suivantes.
Méthode | Description | Exemples |
---|---|---|
Etendue | La courbe est étendue de sorte à ce que tous les vertex sont laissés à leur emplacement d'origine. | |
Moyenne | Les vertex non connectés mais partageant un x et un y sont combinés en un vertex et sa valeur Z est la moyenne des deux valeurs d'origine. | |
Premier vertex | Les vertex non connectés mais partageant un x et un y sont combinés en un vertex et la valeur Z est prise à partir du premier vertex rencontré. | |
Dernier vertex | Les vertex non connectés mais partageant un x et un y sont combinés en un vertex dont la valeur Z est prise à partir du dernier vertex rencontré. | |
Ignorer | Les valeurs Z sont ignorées. Aucun changement n'est effectué sur la façon dont connecter les nœuds. |
Si elle est définie sur Auto, une valeur de tolérance sera automatiquement calculée pour chaque pièce géométrique, en fonction des propriétés de la pièce géométrique. Si le paramètre est défini sur Personnalisé, l'utilisateur peut spécifier un attribut ou une valeur fixe pour la tolérance.
Le paramètre Tolérance décrit la différence maximale, en unités terrestres, autorisée entre les points d'extrémité explicite et implicite d'un arc. Si la différence dépasse cette tolérance, un arc est signalé comme étant corrompu. Si la différence dépasse la tolérance mais est aussi exacte que possible dans les limites de la précision numérique, un arc ne sera pas considéré comme corrompu.
Si le paramètre Tenter de réparer est réglé sur Non, les dégénérescences et les corruptions seront détectées. Une géométrie dégénérée est une géométrie dont le type peut être simplifié. Par exemple, un polygone dont l'aire est nulle est dégénéré et peut être simplifié en une ligne, un point ou un IFMENull. Une géométrie corrompue, en revanche, contient des conflits dans la définition de la géométrie, comme un arc dont les angles et les extrémités ne concordent pas.
Si le paramètre Tenter de réparer est défini sur Oui, les dégénérescences et les corruptions sont réparées en même temps. Il ne serait pas utile de séparer cette anomalie en deux. Si une géométrie dégénérée est réparée en une géométrie corrompue, ou vice versa, la sortie pourrait être en plus mauvais état que l'entrée.
Par exemple, un polygone troué sera corrompu après que le trou dégénéré ait été réparé en un point en place. Si vous ne réparez pas ce trou ponctuel dans la définition du polygone troué, le résultat sera un polygone troué plus "malade" que l'entrée. L'action correcte est de supprimer le point troué du polygone troué.
Dans le cas des maillages, les parties contenant des indices invalides seront détectées. Dans le cas d'indices de normales de sommets ou de coordonnées de texture corrompus, seules ces informations seront supprimées de la partie corrompue lors de la réparation. Si les indices de vertex sont corrompus, la partie invalide sera supprimée du maillage réparé.
Deuxième exemple, un arc corrompu dont les angles et les extrémités ne correspondent pas peut être réparé en un arc dégénéré équivalent à un point. Si vous vous arrêtez là et produisez l'arc dégénéré, vous risquez d'avoir plus d'anomalies en aval que si vous ne répariez pas l'arc du tout. L'action correcte consiste à convertir l'arc en un point.
Attendez-vous à ce que les arcs dont la courbure est nulle soient remplacés par une ligne ou un point, ou qu'ils soient transformés en traits. Les arcs avec des points d'extrémité peuvent être soumis à des limitations de précision qui provoquent une dérive entre les points d'extrémité explicites et la définition implicite de l'arc. Les paramètres ci-dessous peuvent être utilisés pour contrôler la quantité de dérive des points d'extrémité qui est tolérée avant qu'un arc soit signalé comme étant corrompu.
Paramètres
Si cette option est définie sur Oui et si l'option Tenter de réparer est définie sur Oui, les polygones troués dont le trou touche la limite extérieure verront ce trou ajouté à la limite extérieure. Cela convertira la limite extérieure en un polygone de pincement. Cette option n'affecte que les trous des beignets qui touchent la limite extérieure d'origine. Les polygones troués qui ont été réparés peuvent devenir des polygones troués sans trous, et ainsi devenir dégénérés.
Exemples
L'exemple de diagramme ci-dessous illustre un polygone trouvé dont le trou touche sa limite extérieure sur la gauche (zone du polygone troué). Le trou est ajouté à la limite extérieure du polygone, comme indiqué à droite (zone du polygone). Les nœuds du polygone troué sont représentés dans la séquence numérotée rouge, tandis que le trou est représenté dans la séquence alphabétique bleue. |
|
En le visualisant en 2D (en ignorant le Z), un chemin (qui peut définir le bord d'un polygone) peut apparaître fermé tel que montré ci-dessous. Ce même chemin, vu en 3D, peut apparaître ouvert comme le montre la figure de droite ci-dessous.
Si vous utilisez le mode "Réparation", ce paramètre spécifie comment les valeurs Z ambiguës pour les emplacements d'auto-intersection sont choisies. Les valeurs Z ambiguës se produisent lorsque deux segments de ligne partagent une valeur X et Y, mais ont une valeur Z différente.
Mode | Description | Exemples |
---|---|---|
Etendue | La courbe est étendue de sorte à ce que tous les vertex sont laissés à leur emplacement d'origine. | |
Moyenne | Les vertex non connectés mais partageant un x et un y sont combinés en un vertex et sa valeur Z est la moyenne des deux valeurs d'origine. | |
Premier vertex | Les vertex non connectés mais partageant un x et un y sont combinés en un vertex et la valeur Z est prise à partir du premier vertex rencontré. | |
Dernier vertex | Les vertex non connectés mais partageant un x et un y sont combinés en un vertex dont la valeur Z est prise à partir du dernier vertex rencontré. | |
Ignorer | Les valeurs Z sont ignorées. Aucun changement n'est effectué sur la façon dont connecter les nœuds. |
La distance maximale, en unités terrestres, qui peut être considérée comme une auto-intersection. Si la distance entre les parties d'une géométrie est comprise dans la tolérance, la géométrie sera marquée comme auto-intersection. Si la tolérance est Aucune, la géométrie doit effectivement se croiser pour que l'auto-intersection soit détectée. Si la tolérance est Automatique, une tolérance sera automatiquement calculée en fonction des propriétés de la géométrie. En outre, une tolérance personnalisée peut être utilisée. Si la tolérance personnalisée n'est pas valide, la tolérance automatique sera utilisée à la place.
Spécifie s'il faut ou non vérifier les intersections entre les parties d'un multi. Non indique que l'auto-intersection de chaque partie doit être vérifiée, mais que l'intersection des parties entre elles ne sera pas vérifiée. Oui indique que l'auto-intersection de chaque partie sera vérifiée, et que l'intersection des parties entre elles sera également vérifiée.
Si Tenter de réparer est mis à Non, les points d’auto-intersection sont détectés.
Si le paramètre Tenter de réparer est défini sur Oui, une géométrie d'entrée comportant des auto-intersections sera divisée en un ensemble de parties géométriques ne comportant pas d'auto-intersections. Par exemple, un polygone en 8 dont le "tour de taille" est de 0 sera réparé en un IFMEMultiArea de deux polygones. Autre exemple, les mailles, les bandes de triangle et les éventails de triangle seront réparés en surfaces composites.
Les auto-intersections ne peuvent être détectées que selon x et y.
Les doublons (en x et y), sont considérés comme des auto-intersections, et sont rapportés en tant que telles. Les coordonnées consécutives dupliquées sont signalées comme un seul point d'auto-intersection.
Une rotation, selon le plan x-y, est appliquée aux différentes faces des entités, puis celles-ci sont auto-intersectées en x et y, avant de subir une rotation inverse.
Les arcs orientés sont vérifiés pour les auto-intersectons en respectant leur orientation qui est définie par leurs matrices de transformation.
Les agrégats, les surfaces composites, les maillages, les bandes triangulaires et les éventails triangulaires sont testés pour l'auto-intersection sur une base par partie (ou par face), mais les parties ne sont pas auto-intersectées les unes par rapport aux autres. Les polygones troués et les anneaux sont auto-intersectés les uns par rapport aux autres. Par exemple, si une surface composite a une face qui s'auto-intersecte, elle sera sortie via le port Failed ou Repaired. Si une surface composite possède deux faces qui se coupent l'une l'autre mais qui ne s'auto-intersectent pas toutes seules, la surface composite sera produite via le port Passed.
Les auto-intersections sont signalées par les traits .location.Quand des auto-intersections sont détectées, mais qu’il n’y a pas de points d’auto-intersection disponibles pour le rapport d’erreur, le Transformer fournit une localisation approchée.
Si Tenter de réparer est mis à Non, 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 plane n'a pas tous ses sommets sur le même plan dans l'espace 3D.
Si Tenter de réparer est mis à Oui, des faces et des parties de surface non planes vont être triangulées.
Vérifier aussi les entités surfaciques
Si elle est définie sur Non, cette vérification fera sortir toutes les zones par le port Passed. Si elle est définie sur Oui, cette vérification déterminera le port de sortie d'une zone en fonction de sa planéité.
Méthode de planarité
S'il est réglé sur Automatique, les valeurs d'épaisseur seront automatiquement calculées pour chaque pièce de la géométrie. S'il est réglé sur Personnalisé, l'utilisateur peut spécifier un attribut ou une valeur fixe pour l'épaisseur. S'il est réglé sur Ignorer, le contrôle de l'épaisseur sera ignoré.
Planarité
Le paramètre Epaisseur décrit l'"épaisseur" maximale qu'une face peut avoir avant d'être considérée comme non plane. Voir FaceReplacer.
Méthode de calcul de déviation
S'il est réglé sur Automatique, les valeurs déviation de normale de surface seront automatiquement calculées pour chaque pièce de la géométrie. S'il est réglé sur Personnalisé, l'utilisateur peut spécifier un attribut ou une valeur fixe pour la déviation de normale de surface. S'il est réglé sur Ignorer, le contrôle de l'épaisseur sera ignoré.
Déviation de surface normale (Degrés)
Le paramètre Déviation de normale de surface décrit l'écart maximal entre la normale moyenne à la surface d'une face et les normales à la surface résultant d'une triangulation de cette face, avant qu'elle ne soit considérée comme non plane. Voir FaceReplacer.
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
Si aucune anomalie n'est détectée, une géométrie solide sera sortie via le port Passed. De manière informelle, une bordure solide Passed est étanche, non auto-intersectée et correctement orientée.
Si Tenter de réparer est mis sur Non, les anomalies ci-dessus vont être détectées à l’intérieur de géométries de solides.
Si l'option Tenter de réparer est définie sur Oui, les géométries solides présentant des limites ouvertes, trop peu de faces, une orientation inversée ou des composants multiples seront réparées. Tous les solides d'entrée seront d'abord triangulés. Les limites de solides ouvertes et les limites avec trop peu de faces seront réparées en remplissant les régions déconnectées de la limite avec des triangles. Les orientations incorrectes seront corrigées en inversant la normale à la surface de toutes les faces qui composent le solide. Si l'option Inverser les apparences est sélectionnée, les apparences de chaque face changeront également de côté, sinon les apparences ne bougeront pas. Une bordure avec plusieurs composants connectés sera réparée en supprimant tous les composants sauf celui qui a le plus de faces.
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 une limite extérieure et un certain nombre de limites intérieures.
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
Si aucune anomalie n'est détectée, la géométrie du solide sera sortie via le port Passed. Pour un solide sortant par Passed, les bordures internes sont complètement à l’intérieur de la limite externe et les bordures ne s’intersectent pas.
Astuce : Les auto-intersections dans les limites ne sont pas détectées. Pour détecter et réparer les auto-intersections dans les limites, sélectionnez Limites de solides invalides.
Si Tenter de réparer est mis sur Non, les anomalies ci-dessus vont être détectées à l’intérieur de géométries de solides.
Si la valeur Tenter de réparer est définie sur Oui, une géométrie solide présentant ces anomalies sera réparée en soustrayant les vides de la limite extérieure. Si le solide réparé est l'ensemble vide, le solide original sera envoyé sur le port Failed et obtiendra un .repair_state de Not Fully Repaired.
Une géométrie est "conforme à l'OGC" si elle peut être représentée sans perte dans le modèle géométrique défini par l'OGC.
Voir http://www.opengeospatial.org/standards/sfa pour plus de détails sur les géométries qui peuvent être représentées dans le modèle géométrique Simple Feature Access de l'OGC .
Le paramètreOGC Version spécifie la version de la norme à utiliser.
Si une géométrie est déterminée comme étant OGC Compliant, la sortie se fera par l'intermédiaire du portPassed. Dans le cas contraire, elle sera émise via le port Failed.
"Simple" est une propriété de certaines entités du modèle Simple Feature Access de l'OGC (http://www.opengeospatial.org/standards/sfa). Le terme est explicitement défini pour les géométries dans le modèle géométrique de l'OGC. On suppose que toutes les géométries dont on vérifie la conformité à l'OGC sont déjà conformes à l'OGC. Si ce n'est pas le cas, les résultats de cette vérification sont indéfinis.
Si une géométrie conforme à l'OGC est déterminée comme étant OGC Simple, elle sera émise via le port Passed. Dans le cas contraire, elle sera émise via le port Failed. Une géométrie non conforme à l'OGC n'est pas une entrée valide pour cette règle, et peut arbitrairement sortir par le port Passed ou Failed.
Note: OGC Compliant et OGC Simple traitent les IFMEAggregates comme des GeometryCollections de l'OGC, et les IFMEMultis comme des Multis de l'OGC.
Si Tenter de réparer est défini sur Non, les géométries contenant une mélange de parties 2D et 3D seront détectées.
Si Tenter de réparer est mis à Oui, deux types de traitement peuvent être mis en place, selon la situation :
- Si Forcer la dimension est défini sur 2D, toutes les parties de géométries 3D seront forcées en 2D.
- Si Forcer la dimension est défini sur 3D, toutes les parties de géométries 2d seront forcées en 3d et leurs valeur z sera définie sur la Valeur Z par défaut.
Les géométries vectorielles, telles que les points, les courbes et les surfaces, peuvent avoir des mesures et des élévations. Si un sommet d'une instance unique d'une de ces géométries possède une valeur pour une mesure ou une élévation, alors tous les autres sommets de cette géométrie doivent également posséder une valeur pour cette même mesure (ou élévation). Cette règle est utilisée pour s'assurer qu'aucune de ces valeurs n'est "NaN". Si l'une d'entre elles l'est, cette règle peut être utilisée pour remplacer la valeur par une autre. Si toutes les valeurs sont "NaN", cette règle supprimera la mesure (ou l'élévation), quel que soit le mode de conflit Mesures/Z spécifié.
Mode de conflit Mesures/Z : spécifie comment ces valeurs doivent être traitées. Utiliser la valeur par défaut : les valeurs NaN seront remplacées par la valeur spécifiée dans le paramètre Valeur par défaut. Drop supprimera toutes les mesures (ou élévations) pour cette géométrie si des valeurs NaN sont présentes. Calculer calcule une nouvelle valeur basée sur les valeurs voisines. Les autres paramètres ne sont utilisés que pour ce mode.
Traiter les mesures comme : spécifie si les mesures sont discrètes et doivent être égales à l'une de leurs valeurs voisines (par exemple, les numéros d'arrêt de bus, les adresses de maison), ou si elles sont continues et peuvent être une valeur entre leurs valeurs voisines (par exemple, la distance le long d'une ligne).
Dimension de longueur : spécifie si les distances 2D ou 3D doivent être utilisées lors du calcul de nouvelles valeurs de mesures.
Certaines géométries, telles que les maillages et les faces, prennent en charge les apparences. Ces géométries peuvent faire partie de surfaces et de solides complexes. Dans certains cas, ces apparences peuvent être associées à des textures rasters. Si c'est le cas, il est également nécessaire que les géométries correspondantes aient des coordonnées de texture. Sans coordonnées de texture, il n'y a pas assez d'informations sur la façon de rendre la texture sur la géométrie lors de sa visualisation, par exemple.
Les coordonnées de texture manquantes sont détectées et signalées en vrac. Autrement dit, quel que soit le nombre de sommets dont les coordonnées de texture sont manquantes, un seul sommet de ce type est signalé par géométrie.
Si Tenter de réparer est mis à Non, les coordonnées de texture manquantes sont détectées.
Si le paramètre Tenter de réparer est défini sur Oui, toutes les coordonnées de texture de chaque géométrie dont au moins une est manquante seront recalculées. Les géométries pour lesquelles il ne manque aucune coordonnée de texture ne sont pas modifiées. Par exemple, si un solide possède 6 faces, dont une à laquelle il manque des coordonnées de texture, 5 des 6 faces ne seront pas modifiées, et 1 des 6 aura ses coordonnées de texture recalculées. Lors du calcul des coordonnées de texture manquantes, la texture entière est drapée sur la géométrie, et la texture est drapée dans la direction de la normale à la surface de la géométrie.
Les sommets sans normales sont détectés et signalés en vrac. C'est-à-dire que, quel que soit le nombre de sommets avec des normales manquantes, un seul sommet de ce type est signalé par géométrie.
Si Tenter de réparer est mis à Non, les normales de vertex manquantes sont détectées.
Si Tenter de réparer vaut Oui, toutes les normales de chaque géométrie à laquelle il manque au moins une normale seront recalculées. Chaque normale de sommet calculée est équivalente à la normale de la face à laquelle le sommet appartient. Pour les maillages, les normales nouvellement calculées seront stockées dans leurs pools de normales. Pour les autres surfaces, les mesures nommées fme_vertex_normal_x, fme_vertex_normal_y, et fme_vertex_normal_z, seront utilisées pour stocker les normales des sommets. Les faces des rectangles seront réparées en faces. Les bandes de triangles et les éventails de triangles seront réparés en faces composites.
Les zones, telles que les polygones, les ellipses et les polygones troués, ont une orientation. Leur orientation peut être soit gauchère, soit droitière, soit invalide. Une orientation à gauche signifie que les sommets de la limite extérieure de la zone sont disposés dans le sens inverse des aiguilles d'une montre et que les sommets des trous sont disposés dans le sens des aiguilles d'une montre. Dans le cas d'une orientation à droite, les sommets de la limite extérieure de la zone sont disposés dans le sens des aiguilles d'une montre, et les trous ont leurs sommets dans le sens inverse des aiguilles d'une montre. Un exemple de zone non valide serait un polygone troué dont les anneaux intérieurs et extérieurs sont tous à droite ou à gauche.
Si l'option Tenter de réparer vaut sur Non, l'orientation de toutes les zones sera vérifiée. Si vous sélectionnez le mode Gauche, vous vérifiez que toutes les zones suivent la règle de la gauche. Si vous sélectionnez le mode Droite, vous vérifierez que toutes les zones sont orientées vers la droite. En sélectionnant Valide, vous vérifiez que chaque zone est soit gauchère, soit droitière.
Cette vérification ne produit pas des résultats significatifs pour les entités dégénérés dont l'orientation est ambiguë telle qu'une figue-8 limites ou un polygone sans coordonnée.
Si Tenter de réparer vaut Oui, toutes les surfaces seront converties selon le mode spécifié.
Les solides, tels que les boîtes, les solides BRep, les solides CSG, les extrusions et les solides composites, ont une orientation. Cette orientation est considérée comme non valide par le GeometryValidator si les normales des coques extérieures ne sont pas tournées vers l'extérieur ou si les normales des coques intérieures ne sont pas tournées vers l'intérieur. Leur orientation est également invalide si elles sont incohérentes.
Si Tenter de réparer vaut Non, l'orientation de tous les solides est vérifiée.
Si Tenter de réparer vaut Oui, les solides qui ont une orientation invalide seront réorientées pour que toutes les normales des surfaces externes et internes
Les surfaces ont des orientations. Les faces, les surfaces composites et les maillages peuvent avoir des orientations non valides. Les faces peuvent avoir une orientation non valide si elles présentent une zone polygone trouée où la normale de toute limite intérieure a la même direction que la normale de la limite extérieure. Les maillages et les surfaces composites peuvent avoir une orientation non valide s'ils ont deux parties qui partagent un bord et que ces parties ne sont pas orientées de manière cohérente l'une par rapport à l'autre.
Si l'option Tenter de réparer est définie sur Non, l'orientation de toutes les surfaces sera vérifiée. Cette vérification ne produira pas de résultats significatifs pour les surfaces qui ne sont pas correctement orientées.
Si Tenter de réparer vaut Oui, toutes les surfaces seront forcées d'être consistantes.
Output
Les anomalies détectées seront signalées dans les listes d'attributs et de traits. Ces listes auront le même nom, qui est la valeur de ce paramètre. Si ce nom de liste est laissé vide, aucune anomalie détectée ne sera signalée.
Les attributs et les traits des anomalies ne s'accumulent pas entre plusieurs GeometryValidator. En fait, la première opération effectuée par GeometryValidator est de supprimer les attributs et les traits d'anomalie existants qui entrent en collision avec le nom de la liste d'anomalies détectées spécifié. Cette suppression a lieu même si aucune anomalie n'est sélectionnée.
Note: Les attributs de liste ne sont pas accessibles à partir du schéma de sortie dans Workbench, sauf s'ils sont d'abord traités à l'aide d'un Transformer qui opère sur eux, comme ListExploder ou ListConcatenator. Il est également possible d'utiliser AttributeExposer.
Note: Pour éviter d’effacer les listes et attributs rapportés par un GeomtryValidator, modifier le Nom de liste de l’anomalie détectée.
Si ce paramètre vaut Oui, les erreurs détectées vont être soit entièrement réparées, auquel cas l'entité ressortira par le port Repaired, soit partiellement réparées, et l'entité ressortira alors par le port Failed (l'attribut Tenter de réparer aura pour valeur Partiellement réparé Failed).
Si une seule anomalie est sélectionnée pour être réparée, on peut s'attendre à ce que l'entité de sortie primaire (par opposition à l'entité restante) ait toutes les occurrences de l'anomalie sélectionnée réparées, ou qu'elle obtienne un .repair_state de Not Fully Repaired. Par exemple, si l'auto-intersection en 2D est sélectionnée et que la Tenter de réparer est réglée sur Oui, on peut s'attendre à ce que l'entité de sortie primaire soit exempte d'auto-intersections.
Si ce paramètre vaut Non, les anomalies détectées ne seront pas réparées et les entités dans lesquelles des anomalies ont été détectées ressortiront par le port Failed.
Note: Vous pouvez prévisualiser la réparation d'une anomalie en définissant Tenter de réparer sur Non. Toutefois, cet aperçu ne correspondra à la réparation réelle que si vous sélectionnez une seule anomalie à détecter ou si vous sélectionnez un ensemble d'anomalies indépendantes.
Lorsque le paramètre Tenter de réparer est défini sur Oui, il est possible qu'une partie géométrique devienne incompatible avec sa géométrie de conteneur après réparation. Dans certains cas, ces éléments géométriques sont supprimés ou édités en tant que vestiges. Dans d'autres cas, ces pièces géométriques sont conservées et les géométries de leur conteneur changent de type géométrique, de sorte que les pièces et le conteneur redeviennent compatibles.
Voici une liste de conteneurs de géométrie dont les parties incompatibles sont supprimées ou ressorties en tant que résidus :
- IFMEDonut
- IFMEBRepSolid
- IFMEPath
- IFMEMesh
- IFMECompositeSurface
- IFMECompositeSolid
Dans la liste suivante sont énumérés les conteneurs de géométrie qui vont subir une modification pour conserver une cohérence avec leurs parties incompatibles :
- IFMEMultiArea
- IFMEMultiCurve
- IFMEMultiPoint
- IFMEMultiSurface
- IFMEMultiSolid
- IFMEMultiText
- IFMETriangleStrip
- IFMETriangleFan
- IFMEMesh
Il existe une exception à la première liste de géométries de conteneur lorsque l'option Géométries dégénérées ou corrompues est sélectionnée et que l'option Tenter de réparer est définie sur Oui. Dans ce cas, si une géométrie de conteneur devient vide après la suppression de toutes les dégénérescences et corruptions, l'une des parties réparées de manière incompatible sera produite en tant qu'entité sortant par le port Repaired.
Consulter la section FME Geometry Model pour plus d'information sur ces types de géométrie.
Si le type de résumé choisi est Détaillé alors l'information sera reportée jusqu'au niveau des traits et des attributs.
Au niveau du Trait, 6 types d'information sont reportés :
Information | Requis/Optionnel | Description |
---|---|---|
.count | Requis | Reporte le nombre d’occurrences de l'anomalie. |
.issue_found | Requis | Reporte l'anomalie détectée. |
.repair_state | Optionnel |
Fait la distinction entre les entités et géométries restantes et celles qui ne sont pas entièrement réparées. Si une entité ou une géométrie passe la détection d'anomalie ou est entièrement réparée, cet attribut ou ce trait n'est pas défini, car le définir dans ces cas fournirait des informations en double qui encombrent inutilement les rapports. |
.location_sample | Optionnel | Reporte l'emplacement où l'anomalie est détectée. |
.supplementary_info | Optionnel | Reporte des informations complémentaires à propos de l'anomalie. |
.supplementary_info{0..n} | Requis |
Signale des informations supplémentaires sur des occurrences spécifiques de l'anomalie. Il peut signaler trois éléments d'information : .count (facultatif) : indique le nombre d'incidents dans une occurrence spécifique de l'anomalie. Par exemple, cela peut être utilisé pour signaler le nombre de points dupliqués à un endroit spécifique. .details (obligatoire) : indique le sous-cas de l'anomalie pour une occurrence spécifique. S'il n'y a pas de cas secondaire pour une anomalie, la valeur par défaut est Divers. .location (optionnel) : reporte l'emplacement de l'occurrence de l'anomalie. |
Niveau de l'attribut
Au niveau des attributs, 5 types d'information sont reportés :
Information | Requis/Optionnel | Description |
---|---|---|
.count | Requis | Reporte le nombre total d'occurrences de l'anomalie le long de toutes les parties de la géométrie. |
.issue_found | Requis | Reporte l'anomalie détectée. |
.repair_state | Optionnel |
Fait la distinction entre les entités et géométries restantes et celles qui ne sont pas entièrement réparées. Si une entité ou une géométrie passe la détection d'anomalie ou est entièrement réparée, cet attribut ou ce trait n'est pas défini, car le définir dans ces cas fournirait des informations en double qui encombrent inutilement les rapports. |
.location_sample | Optionnel | Reporte l'emplacement où l'anomalie est détectée. |
.supplementary_info{0..n} | Requis |
Rapporte des informations sur les sous-cas uniques de l'anomalie. Il peut rapporter trois éléments d'information : .count (requis) : reporte le nombre total d'occurrences des sous-anomalies le long de la géométrie. .details (obligatoire) : indique le sous-cas de l'anomalie pour une occurrence spécifique. S'il n'y a pas de cas secondaire pour une anomalie, la valeur par défaut est Divers. .location_sample (optional) : reporte un emplacement où supplementary_info est détecté. |
La liste des niveaux d'attributs est conçue comme un résumé des listes de niveaux de traits. Étant donné que les géométries dégénérées peuvent être supprimées lors de la réparation, la liste des niveaux d'attributs peut parfois contenir plus d'informations que celles présentes dans les traits des géométries finales.
Si le type choisi est Résumé, aucune anomalie n'est rapportée au niveau des traits et aucune information supplémentaire ne sera rapportée au niveau des attributs.
Si type de résumé vaut Aucun, rien ne sera rapporté.
Éditer les paramètres des Transformers
À l'aide d'un ensemble d'options de menu, les paramètres du Transformer peuvent être attribués en faisant référence à d'autres éléments du traitement. Des fonctions plus avancées, telles qu'un éditeur avancé et un éditeur arithmétique, sont également disponibles dans certains Transformers. Pour accéder à un menu de ces options, cliquez sur à côté du paramètre applicable. Pour plus d'informations, voir Options de menus et paramètres de Transformer.
Définir les valeurs
Il existe plusieurs façons de définir une valeur à utiliser dans un Transformer. La plus simple est de simplement taper une valeur ou une chaîne de caractères, qui peut inclure des fonctions de différents types comme des références d'attributs, des fonctions mathématiques et de chaînes de caractères, et des paramètres d'espace de travail. Il existe un certain nombre d'outils et de raccourcis qui peuvent aider à construire des valeurs, généralement disponibles dans le menu contextuel déroulant adjacent au champ de valeur.
Utilisation de l'éditeur de texte
L'éditeur de texte fournit un moyen efficace de construire des chaînes de textes (dont les expressions régulières) à partir de données source diverses, telles que des attributs, des paramètres et des constantes, et le résultat est directement utilisé dans le paramètre.
Utilisation de l'éditeur arithmétique
L'éditeur arithmétique fournit un moyen simple de construire des expressions mathématiques à partir de plusieurs données source, telles que des attributs et des fonctions, et le résultat est directement utilisé dans un paramètre.
Valeur conditionnelle
Définit des valeurs selon un ou plusieurs tests.
Fenêtre de définition de conditions
Contenu
Les expressions et chaînes de caractères peuvent inclure des fonctions, caractères, paramètres et plus.
Lors du paramétrage des valeurs - qu'elles soient entrées directement dans un paramètre ou construites en utilisant l'un des éditeurs - les chaînes de caractères et les expressions contenant des fonctions Chaîne de caractères, Math, Date et heure ou Entité FME auront ces fonctions évaluées. Par conséquent, les noms de ces fonctions (sous la forme @<nom_de_fonction>) ne doivent pas être utilisés comme valeurs littérales de chaîne de caractères.
Ces fonctions manipulent les chaînes de caractères. | |
Caractères spéciaux |
Un ensemble de caractères de contrôle est disponible dans l'éditeur de texte. |
Plusieurs fonctions sont disponibles dans les deux éditeurs. | |
Fonctions Date/heure | Les fonctions de dates et heures sont disponibles dans l'Editeur texte. |
Ces opérateur sont disponibles dans l'éditeur arithmétique. | |
Elles retournent des valeurs spécifiques aux entités. | |
Les paramètres FME et spécifiques au projet peuvent être utilisés. | |
Créer et modifier un paramètre publié | Créer ses propres paramètres éditables. |
Options - Tables
Les Transformers avec des paramètres de style table possèdent des outils additionnels pour remplir et manipuler des valeurs.
Réordonner
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
|
Couper, Copier et Coller
|
Activé une fois que vous avez cliqué sur un élément de ligne. Les choix comprennent :
Copier, copier et coller peuvent être utilisés au sein d'un Transformer ou entre Transfromers. |
Filtre
|
Commencez à taper une chaîne de caractères, et la matrice n'affichera que les lignes correspondant à ces caractères. Recherche dans toutes les colonnes. Cela n'affecte que l'affichage des attributs dans le Transformer - cela ne change pas les attributs qui sont sortis. |
Importer
|
Le bouton d'import remplit la table avec un jeu de nouveaux attributs lus depuis un jeu de données. L'application spécifique varie selon les Transformers. |
Réinitialiser/Rafraîchir
|
Réinitialise la table à son état initial, et peut fournir des options additionnelles pour supprimer des entrées invalides. Le comportement varie d'un Transformer à l'autre. |
Note : Tous les outils ne sont pas disponibles dans tous les Transformers.
FME Community
FME Community iest l'endroit où trouver des démos, des tutoriaux, des articles, des FAQ et bien plus encore. Obtenez des réponses à vos questions, apprenez des autres utilisateurs et suggérez, votez et commentez de nouvelles entités.
Rechercher des exemples et informations à propos de ce Transformer dans FME Community.
Mots clefs : GeometryRepairer GeometryCleaner Mender Fixer NaNRemover InfinityRemover NullRemover IFMENullRemover GeometryTypeRepairer DegenerateGeometryRepairer CorruptGeometryRepairer MeshNormalRepairer FeatureValidator FeatureRepairer FeatureCleaner OGC-simple OGC-valid Duplicated Corrupted self intersected damaged erroneous error data repair fix bad data