Skip to main content
Hi There,

 

 

I am using the UpdateDetector to update an ArcGIS Online feature service that is part of our open data catalogue. My workbench is fairly simple and just reads a dataset out of SDE runs it through some transformers to reproject it and then rename/drop some fields. It writes this dataset to a staging file geodatabase as an archive. Using this archive as the 'Original' input in the UpdateDetector and the features from SDE as the 'Revised', everything gets sent throught the 'Updated' port despite no changes occuring. I poked around with the parameters and found if I removed the geometry matching condition things got sent through the 'Unchanged' port as I would have expected.

 

 

Would anyone be able to enlighten me as to why this is happening?

 

 

Warren
Hi

 

 

For issues like this, I normally try to isolate one single feature from both datasets and only work with these to try and understand what is going on. You can e.g. use a Tester on the ObjectId from each dataset and send the Original and Revised feature to the Data Inspector. Using the Feature Information pane, carefully analyze and compare the following between the two features
  • Coordinate system
  • Dimension (2D/3D)
  • Number of vertices
  • Extents
  • The attributes "fme_geometry" and "fme_type"
  • For multipart geometries, the number of parts
  • The all of the above are completely identical, you will have to analyze the difference coordinate by coordinate.
In particular, you should look out for rounding differences introduced by saving and re-reading features from SDE, as the coordinates might have changed very slightly by the tolerance, precision and extents settings of your feature classes (the so-called "snapping grid"). To fix this, first make sure that your feature classes in SDE and your file geodatabase have exactly the same definitions (check with ArcCatalog), alternatively use the ArcSDEGridSnapper in FME on both datasets before the UpdateDetector to align them to the same grid before comparing.

 

 

David

 

 
Hi David,

 

 

Thanks for replying. You are correct, it's something to do with the coordinates they are slightly different and when they get compared this slight difference is flagged as updates. I've attempted to use the ArcSDEGridSnapper as you've suggested but I haven't been having much much luck. I still can't get the coordinates to line up just right. Do you have any other suggestions on how to get them to match or some other work around?

 

 

Warren
Hi David,

 

 

Thanks for replying. You are correct, it's something to do with the coordinates they are slightly different and when they get compared this slight difference is flagged as updates. I've attempted to use the ArcSDEGridSnapper as you've suggested but I haven't been having much much luck. I still can't get the coordinates to line up just right. Do you have any other suggestions on how to get them to match or some other work around?

 

 

Warren
Hi @warren156, I am experiencing the same issue as you. Did you ever have any luck solving this?

 


Hello @kirstynalex

 

 

I would suggest taking a look at the CoordinateRounder. That seems to be the common place where 'changes' will show up when you are not expecting any between features. Depending on the level of precision you are hoping to maintain. Rounding to 4-6 decimal places may achieve the similarity that would allow features not to be displayed as 'updates'.

 

 

Hope that helps.
Hi @warren156, I am experiencing the same issue as you. Did you ever have any luck solving this?

 

Hello @kirstynalex

 

 

I would suggest taking a look at the CoordinateRounder. That seems to be the common place where 'changes' will show up when you are not expecting any between features. Depending on the level of precision you are hoping to maintain. Rounding to 4-6 decimal places may achieve the similarity that would allow features not to be displayed as 'updates'.

 

 

Hope that helps.
Hello @kirstynalex

 

 

I would suggest taking a look at the CoordinateRounder. That seems to be the common place where 'changes' will show up when you are not expecting any between features. Depending on the level of precision you are hoping to maintain. Rounding to 4-6 decimal places may achieve the similarity that would allow features not to be displayed as 'updates'.

 

 

Hope that helps.
Thanks @trentatsafe, that worked beautifully! :)

 


Reply