Solved

Change Detector - Length Tolerance

  • 13 September 2016
  • 6 replies
  • 7 views

Badge

When working through determining the differences between line segments for two different Feature Classes, I'm hoping to omit the differences between line segments whose lengths are within a given tolerance values (e.g. listing those Features whose difference in length is within 5 meters as Not Changed). Is there a way to set a tolerance of 5 meters for assessing the difference between line segments from different feature classes?

icon

Best answer by itay 13 September 2016, 20:23

View original

6 replies

Badge +16

Hi,

Dont know if I understand you correctly, but if you want to compare line features lengths and test to see if they are within a specific tolerance, then using the In range operator in the Tester or TestFilter might be what you are looking for.

Badge

Hi,

Dont know if I understand you correctly, but if you want to compare line features lengths and test to see if they are within a specific tolerance, then using the In range operator in the Tester or TestFilter might be what you are looking for.

To clarify, I have a feature in a feature class belonging to a 2014 data set. The same feature appears in the most recent edition of the same data set. The difference between the feature as it exists in 2014 and as it exists in 2016 is a minuscule difference in shape length (e.g. 0.001 meters, for example). What I am looking to do is compare them to ensure that I tag the feature as being unchanged if the difference between 2014 and 2016 is within a defined measurement tolerance (e.g 5 meters). Please be aware that the 2014 data belongs to a different feature class than the 2016 data (meaning that I am making a comparison between two feature classes).

 

 

Badge +22

Could you use a coordinate rounder prior to the ChangeDetector?

 

 

If not, a slightly more complicated scenario would be to use a FeatureMerger (prefix merged Attributes) so that you have one feature with both the 2014 line length and 2016 line length as attributes, and then you can use a tester to see if the difference between them is less than your tolerance.
Badge +16
To clarify, I have a feature in a feature class belonging to a 2014 data set. The same feature appears in the most recent edition of the same data set. The difference between the feature as it exists in 2014 and as it exists in 2016 is a minuscule difference in shape length (e.g. 0.001 meters, for example). What I am looking to do is compare them to ensure that I tag the feature as being unchanged if the difference between 2014 and 2016 is within a defined measurement tolerance (e.g 5 meters). Please be aware that the 2014 data belongs to a different feature class than the 2016 data (meaning that I am making a comparison between two feature classes).

 

 

Comparing between two different feature classes is not an issue, but what should be taken in account are the resolution and tolerance of the input feature classes.

 

 

I would first eliminate features that are completely equal, using the spatial relator, after that its a matter of relating the features between the datasets to test for differences. one way, if a common ID is present between the datasets, is as described below by @jdh in that scenario the In range operator can be used to compare beteween the 2014 and 2016 lenghts

 

 

Hope this helps.

 

Badge
Comparing between two different feature classes is not an issue, but what should be taken in account are the resolution and tolerance of the input feature classes.

 

 

I would first eliminate features that are completely equal, using the spatial relator, after that its a matter of relating the features between the datasets to test for differences. one way, if a common ID is present between the datasets, is as described below by @jdh in that scenario the In range operator can be used to compare beteween the 2014 and 2016 lenghts

 

 

Hope this helps.

 

Hi @itay. Your suggestion helps. The only issue that I still need to figure out is this: I only want to compare the lengths of line segments that perfectly overlap if not for the minuscule difference in length. There are several features whose length falls within the specified tolerance level whose geometries do not perfectly overlap (e.g. there are line segments whose only differences are determined by length whereas others are different, both in length and how the geometry overlaps). May I ask if you have any familiarity with how to account for those differences within FME?

 

Badge +16
Hi @itay. Your suggestion helps. The only issue that I still need to figure out is this: I only want to compare the lengths of line segments that perfectly overlap if not for the minuscule difference in length. There are several features whose length falls within the specified tolerance level whose geometries do not perfectly overlap (e.g. there are line segments whose only differences are determined by length whereas others are different, both in length and how the geometry overlaps). May I ask if you have any familiarity with how to account for those differences within FME?

 

Hi @je6thoma sounds to me like you what to determine how the lines are overlapping.

 

Not something easy to do, one way I can think of is by buffering the lines segments and relating the buffer polygons and lines to try and find out the type of spatial relationship (crosses or contains)

 

Hope this helps.

 

Reply