Skip to main content

I am trying to find line geometry that has been changed between two dataset.

I know there are minor and major changes (Tolerance set to 0 at the moment). But the result does not make sense to me. Nothing comes out the Updated channel. Just Intersted and Deleted. Does the Change detection transformer work on lines?

All the Deleted features come from Original stream. All Reviced come as Inserted.

Is it something to do with datatypes?

I just did a test and took a feature from the Delete stream and it does exist in both original and reviced dataset.

I am matching on a UUID key example: A53B8017-9987-4636-B941-737AF58C5F08

 

EDIT: Since I am matching on UUID i was not sure FME handel them as strings. But I did a AttributeValidation on Type String and that came out possitive.

 

EDIT: This is the WKT of the objekt with same id, from two different sources.

The result is going to Deleted. But as you can see the WKT is identical. Just to be clear: I created a WKT attribute to double check what was happening (_geometry in the image). Id is idential selected attribute is identical, expected this to be "Unchanged"?

 

Original

C58EB68A-8A5F-4066-80E0-369DD5E59BA9

LINESTRING Z (571767.46 7036380.85 27,571765.61 7036377.7 27,571764.34 7036378.45 28)

 

Reviced

c58eb68a-8a5f-4066-80e0-369dd5e59ba9

LINESTRING Z (571767.46 7036380.85 27,571765.61 7036377.7 27,571764.34 7036378.45 28)

This is the setup of ChangeDetector. I cannot understand what I am doing wrong here?

 

2021-02-11 13_33_42-ChangeDetector Parameters

The UUIDs you have posted do not match, the second one has lowercase rather than uppercase characters, that is why you aren't getting the results you expect


The UUIDs you have posted do not match, the second one has lowercase rather than uppercase characters, that is why you aren't getting the results you expect

I did use a StringCaseChanger on the UUID at first because of the reason you are saying. But it did not change anything at the time (must been cached input without realizing or something). As FME in general dont seem to care about case sensitivity i removed the transformer.

I added it back now again to "prove you wrong", but as it turns out when I rerun it I got elements to the updated stream. whoops! Ok let me validate my results 😅


I did use a StringCaseChanger on the UUID at first because of the reason you are saying. But it did not change anything at the time (must been cached input without realizing or something). As FME in general dont seem to care about case sensitivity i removed the transformer.

I added it back now again to "prove you wrong", but as it turns out when I rerun it I got elements to the updated stream. whoops! Ok let me validate my results 😅

Using the values from your post, the feature exits the unchanged port as you would expect

CaptureIf you are wanting to check geometry with a tolerance, then untick the check attributes box you have set to geometry. As this will just do a string comparison and would not allow for any tolerance


I did use a StringCaseChanger on the UUID at first because of the reason you are saying. But it did not change anything at the time (must been cached input without realizing or something). As FME in general dont seem to care about case sensitivity i removed the transformer.

I added it back now again to "prove you wrong", but as it turns out when I rerun it I got elements to the updated stream. whoops! Ok let me validate my results 😅

Yup you are right. Getting the same now and it work as expected. Must been a case of feature caching even if it thought I re-ran it several times avoiding the cache. Thanks for going to the length of creating a WB for it! Must been a silly misstake on my side


Reply