Skip to main content
Question

Change Detector for Geometry Updates

  • September 18, 2018
  • 5 replies
  • 180 views

I have two versions of GeoJSON data for the same floor where I need to identify changes for both geometries and attributes (example original data has 73 rooms and later modified like two rooms merged into single,two more rooms created by partitioning of one room and revised data makes it to 72 rooms). Now I have tried to check these changes using Change detector tool the output result differs for attributes and geometries.I have used latest beta 2019 desktop as the enhanced version of Change detector available.Please suggest me I have attached the workbench snapshots with results.Where for only attributes I get fairly good result for deleted,added areas but not for the updated areas. Where for only geometries I get everything to be updated .Please note the work-space reads original data queried from SQL database and the revised data from GeoJSON reader but both data has been extracted as GeoJSON with parameter precision 7 in the workspace.Please suggest how to get the proper result.

5 replies

mark2atsafe
Safer
Forum|alt.badge.img+44
  • Safer
  • September 18, 2018

I think we'd really need to see the parameters used in the ChangeDetector. I would say the 3 rooms are showing up as Deleted (the original) and Inserted (the new ones). You'll only get Updated if you have a Join attribute set (ie the rooms have an ID number that will match so FME can tell that this is a change, and not a deletion/addition).

The other potential issues would be the Check Geometry settings. What do you have for Match Geometry? Do you have Lenient Matching turned on? And what tolerance do you have?


  • Author
  • September 19, 2018

Thanks for your reply @Mark2AtSafe.

Attribute Compare : I have attached snapshots for the parameters used.Original rooms have unique ID values but I need to check these rooms with revised rooms where revised data has all rooms with new ID generated from other workbench (I cannot match common ID).I need to check only for changes in the other Attributes and update the database columns for the changes and keeping other unchanged columns.I think Change detector satisfy the result here.

Geometry Compare : I have attached snapshots from two workbenches with parameters

1. I have two Geo Database (original and Revised) for the same earlier example where change detector outputs desired result (Workbench_GDB_Compare.png,Desired_Result.png).This is what actually required for me to write/update the existing database with changes.

2. Earlier Original Geo database was written to sql database after converting it to GeoJson format as per the requirement and now revised Geodatabase also converted to GeoJson format but need to be checked for any changes with original data in sql database.But I am not getting same desired output once the original/revised data are converted to other formats.Please suggest .desired-result.pngworkbench-gdb-compare.pngchangedetector-lenientgeometry.pngchangedetector-vectortolerance.png(Attached ChangeDetector_LenientGeometry.png,ChangeDetector_VectorTolerance.png)


  • Author
  • September 19, 2018
mark2atsafe wrote:

I think we'd really need to see the parameters used in the ChangeDetector. I would say the 3 rooms are showing up as Deleted (the original) and Inserted (the new ones). You'll only get Updated if you have a Join attribute set (ie the rooms have an ID number that will match so FME can tell that this is a change, and not a deletion/addition).

The other potential issues would be the Check Geometry settings. What do you have for Match Geometry? Do you have Lenient Matching turned on? And what tolerance do you have?

Thanks for your reply @Mark2AtSafe.

 

Attribute Compare : I have attached snapshots for the parameters used.

 

Geometry Compare : I have checked with direct Geo Database reader (original gdb and Revised gdb) where change detector outputs desired result.(Workbench_GDB_Compare.png,Desired_Result.png).This is what actually required for me to write/update the existing database with changes.

 

Now the issue is these original gdb features has been written to sql db after converting it to GeoJson format with added attribute information and Now I need to check these with the revised data which is also converted from gdb to GeoJson format with same attributes or changed. Change detector geometry output differs,Is this due to number of decimal places?

 

(Attached ChangeDetector_LenientGeometry.png,ChangeDetector_VectorTolerance.png)

 


mark2atsafe
Safer
Forum|alt.badge.img+44
  • Safer
  • September 20, 2018
ragh wrote:
Thanks for your reply @Mark2AtSafe.

 

Attribute Compare : I have attached snapshots for the parameters used.

 

Geometry Compare : I have checked with direct Geo Database reader (original gdb and Revised gdb) where change detector outputs desired result.(Workbench_GDB_Compare.png,Desired_Result.png).This is what actually required for me to write/update the existing database with changes.

 

Now the issue is these original gdb features has been written to sql db after converting it to GeoJson format with added attribute information and Now I need to check these with the revised data which is also converted from gdb to GeoJson format with same attributes or changed. Change detector geometry output differs,Is this due to number of decimal places?

 

(Attached ChangeDetector_LenientGeometry.png,ChangeDetector_VectorTolerance.png)

 

Yes, it sounds like the number of decimal places is different. This can happen when you write to different formats, where one format stores data as integers and the other as floating point. I think you are correct to use a CoordinateRounder in that scenario. You can round the coordinates to a common number of decimal places without affecting their accuracy.

 

 


  • Author
  • September 25, 2018
mark2atsafe wrote:
Yes, it sounds like the number of decimal places is different. This can happen when you write to different formats, where one format stores data as integers and the other as floating point. I think you are correct to use a CoordinateRounder in that scenario. You can round the coordinates to a common number of decimal places without affecting their accuracy.

 

 

Thanks for your reply.I could able to get the desired result with CoordinateRounder 5,5,5 with lenient geometry parameter 'yes' but the output geometry shape looks distorted however with the resultant output geometry ID I can go back and get the proper geometry shapes for further process.

 

 


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