FME Transformers: 2024.2

Categories
Data Quality

GeometryValidator

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

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. 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 -0, NaN, 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 bottom of the issues table.

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

Configuration

Input Ports

Output Ports

Parameters

Editing Transformer Parameters

Transformer parameters can be set by directly entering values, using expressions, or referencing other elements in the workspace such as attribute values or user parameters. Various editors and context menus are available to assist. To see what is available, click beside the applicable parameter.

For more information, see Transformer Parameter Menu Options.

FME Community

The FME Community has a wealth of FME knowledge with over 20,000 active members worldwide. Get help with FME, share knowledge, and connect with users globally.

Search for all results about the GeometryValidator on the FME Community.

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