Solved

Populating the Snapping Tolerance field on Snapper transformer

  • 26 October 2017
  • 6 replies
  • 5 views

Badge +10

Hi,

Background

FME 2017.1

I'm cutting impervious cover data at parcels and i'm getting an error on write. Error: The number of points is less than required for feature. Two causes are listed on ESRI's website

- A polyline feature with two vertices that are both located at the same location

- A polygon feature with less than three vertices.

I took a closer look at the features i'm writing and counted the vertices using NumCoords() FME Feature Function - all had 3 or more vertices

I also took a look at the vertex coordinates for each feature and found that they had duplicate coordinates. This seems to be the problem.

Question 1

Is there a good way to remove duplicate vertices?

 

I tried Geometry validator with the Duplicate Consecutive Points checked, but the write still failed with the same error.

I've also tried Geometry Refiner with no luck.

 

 

Question 2

Running the polygons through the Snapper transformer is working, but i'd like to do my best to change the data as little as possible.

I'm attempting to find the best value to use for the Snapper transformer's Snapping Tolerance field. Using ESRI Geodatabase polygon data, it seems like using the XY Resolution that is set on the data would be the best value to use, but i'm also not sure if XY Tolerance would be better. Thoughts?

 

 

Thank you very much

 

icon

Best answer by takashi 27 October 2017, 16:33

View original

6 replies

Userlevel 2
Badge +17

Hi @carmijo, did you try the ArcSDEGridSnapper transformer?

Badge +10

Hi @carmijo, did you try the ArcSDEGridSnapper transformer?

Hi @takashi, thanks for your help.

 

 

I did try it but I was a bit unsure about the config fields.

 

 

I used the dataset's min y and mix x in the corresponding fields, but was unsure about the Scale field.

 

 

From the transformers documentation - ScaleA scale factor to convert to integers for x- and y-values. It corresponds to the inverse of the XY Resolution Feature Class property in ArcGIS. Together with Minumum X and Minimum Y and Spatial reference precision, this is used to calculate the domain of the spatial reference.

 

 

What value should be used for the Scale config field?

 

 

 

Userlevel 2
Badge +17

Hi @carmijo, did you try the ArcSDEGridSnapper transformer?

If you would simulate the Feature Class Properties, set the inverse of the XY Resolution 0.000625 (i.e. 1/0.000625 = 1600) to the Scale factor.

 

Badge +10
If you would simulate the Feature Class Properties, set the inverse of the XY Resolution 0.000625 (i.e. 1/0.000625 = 1600) to the Scale factor.

 

That allowed me to write my data. Thank you

 

 

However, I am getting a good amount of warnings - "Came across an invalid polygon with fewer than 3 vertices. Skipping the polygon"

 

 

These problematic polygons are coming from my clipper transformer where i clip the impervious cover data at the blocks. I think i'm getting slivers at this point because this data's been clipped at the blocks in the past using Esri GP tools - and FME's clipping tolerance is a bit different. Any ideas to get around this?

 

 

 

 

Userlevel 2
Badge +17
If you would simulate the Feature Class Properties, set the inverse of the XY Resolution 0.000625 (i.e. 1/0.000625 = 1600) to the Scale factor.

 

The GeometryValidator (Issue: Degenerate or Corrupt Geometries) might help you to filter out the slivers (invalid polygons).

 

Alternatively, the CoordinateCounter and Tester (TEST: 3 < coordcount) could also be a workaround.

 

 

Badge +10
The GeometryValidator (Issue: Degenerate or Corrupt Geometries) might help you to filter out the slivers (invalid polygons).

 

Alternatively, the CoordinateCounter and Tester (TEST: 3 < coordcount) could also be a workaround.

 

 

I'm still getting the same count of 'invalid polygon with fewer than 3 vertices' warnings after running the features through the geometry validator. What's weird is that the coord counter is counting > 3 for all features.

 

 

If I were to use Snapper instead of ArcSDEGridSnapper, is it best to use XY Res or XY Tolerance for the Snapping Tolerance field?

Reply