Skip to main content
Solved

Why my UpdateDetector does not work?

  • January 7, 2016
  • 5 replies
  • 63 views

aguan
Supporter
Forum|alt.badge.img+11

This is my 1st time to use UPDATEDETECTOR to compare the changes in an Oracle SDE feature class and update it accordingly. Very simple process. The same SDE feature class is both the original and the writer. The feature class is initially empty. The first run works correctly to insert 75 features. I would expect the 2nd run to do nothing, but it still finds 75 updates and writes to the feature class. I have only have 2 attributes to match against, the key attribute, and a number attribute. I also tried on a Date attribute to match against, the same result. See attached. Anything I did wrong?

Best answer by erik_jan

Have you tried rounding the coordinates of both datasets before comparing the geometries? You can use the CoordinateRounder to do so (e.g. round to 3 decimals). The Reader and or Writer can add decimals up to 10 digits behind the decimal point caused by number conversions.

This post is closed to further activity.
It may be an old question, an answered question, an implemented idea, or a notification-only post.
Please check post dates before relying on any information in a question or answer.
For follow-up or related questions, please post a new question or idea.
If there is a genuine update to be made, please contact us and request that the post is reopened.

5 replies

takashi
Celebrity
  • January 8, 2016

The ArcSDE writer may slightly change the coordinates of geometries when writing according to the ArcSDE system specification. Such slight change could cause the unexpected behavior which you have observed, if the Revised features came from other format dataset.

Pick a few sample features, and check if the coordinates of the features from ArcSDE exactly match the coordinates of the Revised features, using Data Inspector.

See also the ArcSDEGridSnapper transformer.


takashi
Celebrity
  • January 8, 2016

The ArcSDE writer may slightly change the coordinates of geometries when writing according to the ArcSDE system specification. Such slight change could cause the unexpected behavior which you have observed, if the Revised features came from other format dataset.

Pick a few sample features, and check if the coordinates of the features from ArcSDE exactly match the coordinates of the Revised features, using Data Inspector.

See also the ArcSDEGridSnapper transformer.

Hi @MitaAtSafe, cc: @DeWetAtSafe, maybe the "questions belonging to sub categories are not displayed in the All Questions page" problem has occurred again. Can you find this question in the "All Questions" page?


aguan
Supporter
Forum|alt.badge.img+11
  • Author
  • Supporter
  • January 12, 2016

I thought I replied yesterday, but did not see it today. I could not see my question in All Questions. Yes, the issue is with the geometry. The Data Inspector shows the geometry matches exactly but the UpdateDetector interprets them as different . If I exclude the geometry from change detection and only do attributes in UpdateDetector, it does the update correctly (meaning no updates). I also used CRCCalculator. With geometry included, it gives different CRC value. Using attributes only, the CRC value is the same. The target and source feature classes are in different SDE databases and both feature classes use st_geometry and high-precision. I tried ArcSDEGridSnapper, does not seem to help.


erik_jan
Contributor
Forum|alt.badge.img+23
  • Contributor
  • Best Answer
  • January 12, 2016

Have you tried rounding the coordinates of both datasets before comparing the geometries? You can use the CoordinateRounder to do so (e.g. round to 3 decimals). The Reader and or Writer can add decimals up to 10 digits behind the decimal point caused by number conversions.


aguan
Supporter
Forum|alt.badge.img+11
  • Author
  • Supporter
  • January 13, 2016

Erik, CoordinateRounder works. I got the same CRC value for the same key attribute. Thanks a lot.