You are here: Geometric OperatorsGeometryValidator

GeometryValidator

Detects selected issues in input features, and optionally repairs detected issues. Each input feature is processed individually.

The GeometryValidator is a very powerful transformer, suitable for advanced users. The help topic consists of a number of reference sections:

Input Dependencies for Issues

Output Dependencies for Issues, Assuming Input Dependencies Respected

Input Ports

Output Ports

Parameters

Note: To fully understand the choices and information in these parameters, please refer to other sections of this help topic.

Issue Detection and Repair

For more information about the issues that are detected and/or repaired, see GeometryValidator Issues Table.

Issue detection only occurs within geometries, including geometric properties such as text rotation and arc sweep angle. That means attributes, traits, geometry names, and other non-geometric properties are not processed.

Features with a geometry unsuited to a test (like line features in a test for area orientation) count as a pass and no repair is attempted.

In general, input geometry types are preserved unless they cannot be.

For example, an arc that degenerates into a point cannot remain an arc and at the same time be non-degenerate. So, when the issue Degenerate and Corrupt Geometries is selected, and Attempt Repair is set to Yes, the arc should be repaired into a point.

As another example, a donut that contains a non-degenerate outer shell, a degenerate hole, and a non-degenerate hole can remain a donut after degeneracy repair. The donut simply drops the degenerate hole, and remains a donut.

If an input geometry contains multiple issues, but only a subset of them is being detected and repaired, expect undefined behavior. For example, if an arc containing a NaN (Not a Number) is being repaired only for degeneracy and corruption, the number of NaNs in that arc could increase. As another example, if you attempt to repair self-intersections in a degenerate geometry, it may come out with a different geometry type and lose its coordinates.

In general, the detection and repair of some issues depends on the absence of other issues. Further, during the repair of a particular issue, other issues may be created. In some cases, it may be necessary to use multiple GeometryValidator transformers to remove all issues of interest. If input issue dependencies are respected, it should be expected that the output of an issue repair operation should no longer contain that issue.

Input Dependencies for Issues

The detection and repair of the following issues depends on the absence of other issues:

Degenerate or Corrupt Geometries no NaNs or infinities in input

Self-Intersections in 2D

Tip: To avoid undefined behavior, select Degenerate or Corrupt Geometries and Contains NaN (Not a Number) or Infinity before selecting Self-Intersections in 2D.

no NaNs, infinities, degeneracies, or corruptions in input
Non-Planar Surfaces no NaNs or infinities in input
Invalid Solid Boundaries or Invalid Solid Voids no NaNs or infinities, duplicate consecutive coordinates, degeneracies or corruptions, or self-intersections within individual faces in input
Invalid Solid Voids no invalid solid boundaries

Output Dependencies for Issues, Assuming Input Dependencies Respected

Repairing the following issues can produce other issues:

Contains NaN (Not a Number) or Infinity can produce degenerate output
Degenerate or Corrupt Geometries can produce self-intersecting output
Contains Null Geometry Parts can produce degenerate output
Duplicate Consecutive Points can produce degenerate output
Self-Intersections in 2D can produce degenerate output
Invalid Solid Boundaries can produce degenerate faces in the boundary

The recommended ordering of issues to detect is built into the Issue column. If a different ordering is desired, highlight an issue, then click the up and down arrows on the right side of the issues table.

Tip: Different orderings of issues to detect and repair may cause output geometries to change.

Editing Transformer Parameters

Using a set of menu options, transformer parameters can be assigned by referencing other elements in the workspace. More advanced functions, such as an advanced editor and an arithmetic editor, are also available in some transformers. To access a menu of these options, click beside the applicable parameter. For more information, see Transformer Parameter Menu Options.

Transformer Categories

Geometric Operators

FME Licensing Level

FME Desktop edition and above

Search FME Knowledge Center

Search for samples and information about this transformer on the FME Knowledge Center.

Tags Keywords: GeometryRepairer GeometryCleaner Mender Fixer NaNRemover InfinityRemover NullRemover IFMENullRemover GeometryTypeRepairer DegenerateGeometryRepairer CorruptGeometryRepairer MeshNormalRepairer FeatureValidator FeatureRepairer FeatureCleaner GeometryOGCValidator DuplicateCoordinateRemover SelfIntersector OGC-simple OGC-valid Duplicated Corrupted self intersected damaged erroneous error data repair fix bad data