Skip to main content
Question

ChangeDetector output different result after FGDB topology dataset?


Hi, everyone, I've got two versions of a FGDB polygon feature class(original and revised), I'd like to use ChangeDetector two find the differences between them. But the output result was very odd, some added or deleted polygons looked exactly and had seem attributes. I only created a topology dataset to fix overlaps and gaps in revised data, I figureed this is issue. Then I tried the same workflow with my backup data. As expected, I got less output through added and deleted port, and most odd results were not there any more.

I browsed FME Knowledge Center about ChangeDetector and I find this question is most likely the reason caused my problem. But all my data are stored in FGDB not SDE. And all FGDBs have same parameters which are default.

Further more, my data is stored in longitude and latitude, if a CoordinteRounder is needed I'm not sure how to set the precision parameter.

4 replies

david_r
Celebrity
  • October 4, 2018

The issue is that FME compares the geometries using full precision floating point arithmetric, meaning that if a coordinate had a slight change at the 9th decimal, it will be flagged as modified.

FME 2018 and onwards has a tolerance settingon several transformers that can help in these cases, but it's a very common issue.


  • Author
  • October 4, 2018
david_r wrote:

The issue is that FME compares the geometries using full precision floating point arithmetric, meaning that if a coordinate had a slight change at the 9th decimal, it will be flagged as modified.

FME 2018 and onwards has a tolerance settingon several transformers that can help in these cases, but it's a very common issue.

I see, so does this mean after going through ArcGIS topology check, my data have been slightly changed at 9th decimal, all I need to do is to set CoodinatorRound parameter to 8?

 

Most transformers have tolerance parameters are overlayer transformers, I'm not sure these transformers will help me on this case.

 


david_r
Celebrity
  • October 4, 2018
bobo wrote:
I see, so does this mean after going through ArcGIS topology check, my data have been slightly changed at 9th decimal, all I need to do is to set CoodinatorRound parameter to 8?

 

Most transformers have tolerance parameters are overlayer transformers, I'm not sure these transformers will help me on this case.

 

That would be my first suggestion, yes.

 

Another option would be to use the AnchoredSnapper with a similar tolerance.

  • Author
  • October 11, 2018
david_r wrote:

The issue is that FME compares the geometries using full precision floating point arithmetric, meaning that if a coordinate had a slight change at the 9th decimal, it will be flagged as modified.

FME 2018 and onwards has a tolerance settingon several transformers that can help in these cases, but it's a very common issue.

I found out what caused the problem, like I said, topology dataset changed some polygons by adding vertices to their boundaries' intersections. Pictures below is an example:

 

Polygons in the left pictrues each has 4 vertices before they went through Arcgis topology check, and after Arcgis topology check, even though there was no rules set, each polygon has 5 vertices.

 

I tried Extra Vertex Tolerance parameter in the ChangeDetector, but I'm not sure what number I should enter, my data is much more complex than the example. If I set 1 or 2, I still I get a lot wrong output. If I set 10 or bigger, some changed polygons will go through Unchanged port.

 

Is there any way to rule out this situation?

 


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings