FME Transformers: 2025.1 BETA

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 labels, 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 a geometry is split into multiple pieces as a result of repair, those pieces will be grouped into an appropriate composite or multi geometry. If the original geometry was itself a part of a collection, that collection may be changed to an aggregate as a result.

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

OGC SFA Simple

OGC SFA Compliant

Self-Intersections in 2D

no NaNs, infinities, degeneracies, or corruptions in input

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

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.

Reference

Processing Behavior

Feature-Based

Feature Holding

No

Dependencies None
Aliases GeometryOGCValidator DuplicateCoordinateRemover SelfIntersector
History  

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.

 

Examples may contain information licensed under the Open Government Licence – Vancouver, Open Government Licence - British Columbia, and/or Open Government Licence – Canada.